Skip to content

Instantly share code, notes, and snippets.

View Guvalif's full-sized avatar

TAKASE Kazuyuki Guvalif

View GitHub Profile
@Guvalif
Guvalif / functional-blackjack.js
Last active July 17, 2023 02:41
Functional Blackjack Implementation on JavaScript
/**
* @file Functional Blackjack Implementation on JavaScript
* @author Kazuyuki TAKASE
* @copyright Kazuyuki TAKASE
* @license The MIT License (See also : http://opensource.org/licenses/mit-license.php)
*/
const R = require('ramda');
const Maybe = require('folktale/maybe');
const Result = require('folktale/result');
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS_HTML.js"></script>
<script type="text/x-mathjax-config">
MathJax.Ajax.config.path.xyjax = '//sonoisa.github.io/xyjax_ext';
MathJax.Ajax.config.path.Contrib = '//cdn.mathjax.org/mathjax/contrib';
MathJax.Hub.Config({
extensions: [ 'tex2jax.js' ],
jax: [ 'input/TeX', 'output/HTML-CSS' ],
tex2jax: {
inlineMath: [ [ '$', '$' ], [ '\\(', '\\)' ] ],
// FP in Scala の map2 から apply (<*> 演算子) を導出する型パズル,スタート!
def map2[F[_], A, B, C](fa: F[A], fb: F[B])(f: (A, B) => C): F[C] = ???
// A に X => Y を代入
def map2[F[_], X => Y, B, C](fxy: F[X => Y], fb: F[B])(f: (X => Y, B) => C): F[C] = ???
// B に A を代入
def map2[F[_], X => Y, A, C](fxy: F[X => Y], fa: F[A])(f: (X => Y, A) => C): F[C] = ???
// C に B を代入
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Single-file Markdown Viewer</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/skeleton.css@2.0.4/skeleton.min.css">
<script src="https://cdn.jsdelivr.net/npm/markdown-wasm@1.2.0/dist/markdown.min.js"></script>
<style>