Skip to content

Instantly share code, notes, and snippets.

@pocketberserker
pocketberserker / homo.fs
Last active September 13, 2015 04:05
コンピュテーション式でてきとーに日本語を使ってみる
type ホモビルダー() =
member __.Delay(f: unit -> _) = f
member __.Run(f) = f ()
member __.Yield(()) = ""
member __.Yield(x: string) = x
[<CustomOperation("攻め")>]
member inline __.攻め(_, case) = case
[<CustomOperation("受け")>]
member inline __.受け(source: string, case) = (source, case)
[<CustomOperation("┌(┌^o^)┐")>]
type NonEmptyList<'T> = 'T * 'T list
type FlowControl = Break | Continue
type Case<'T> =
| Unit
| Value of 'T
type TestResult<'T> =
| Success of 'T
@pocketberserker
pocketberserker / gist:e65189f78f398a145ddd
Last active August 29, 2015 14:06
函数型なんたらの集い関連 発表者抽選用
#include <iostream>
#include <sstream>
#include <vector>
#include <iterator>
#include <random>
#include <boost/assign/list_of.hpp>
#include <boost/range/algorithm/copy.hpp>
#include <boost/range/adaptor/indexed.hpp>
#include <boost/range/adaptor/transformed.hpp>
@pocketberserker
pocketberserker / gist:95765b00080394a24f18
Created September 2, 2014 09:15
第9回 Functional忍者の資料だったもの

第9回Functional忍者

この資料は 第9回 Functional忍者 の資料だったものの残滓です。

注意事項

  • 限定継続については触れません。

はじめに

@pocketberserker
pocketberserker / ChruchFree.fs
Last active August 29, 2015 14:05
Church-encoded free monad for F# (64bit release build only)
type _1<'F, 'A> = interface end
type Bind<'F, 'R> =
abstract member Apply: _1<'F, 'B> * ('B -> 'R) -> 'R
type Monad<'F> =
abstract member Return : 'T -> _1<'F, 'T>
abstract member Bind: _1<'F, 'A> * ('A -> _1<'F, 'B>) -> _1<'F, 'B>
type Free<'F, 'A> =
namespace FsCheck.Ext
module Test =
open System
open FsCheck
open FsCheck.Arb
type JapaneseChar = char
type MyGenerators =
@pocketberserker
pocketberserker / gist:bb5059a58ddf182bf5a2
Created July 13, 2014 07:00
Scalaz勉強会 データ構造ひと巡り
@pocketberserker
pocketberserker / free.rst
Created June 23, 2014 08:50
@zakky_dev さん歓迎会に使う資料

Functional忍者 5!

更新日:2014/03/14
書いた人:@pocketberserker

ひとまず試したい方へ