Skip to content

Instantly share code, notes, and snippets.

@Gab-km
Gab-km / mailboxProcessorSample.fs
Created August 6, 2014 08:25
MailboxProcessor<'Message> の調べ物
type Message = string * AsyncReplyChannel<string>
let agent = new MailboxProcessor<Message>(fun inbox ->
let rec loop count =
async {
System.Threading.Thread.Sleep(1000) // something busy
let! msg, replyChannel = inbox.Receive()
printfn "%s" msg
replyChannel.Reply(msg + msg)
return! loop (count + 1)
namespace FSharp.Monad
type CoYoneda<'U> =
abstract Run: obj -> 'U
type CoYoneda<'F, 'A>(fi: 'F, k: CoYoneda<'A>) = class end
module CoYoneda =
let apply fa k =
@Gab-km
Gab-km / mongodb.ps1
Created June 3, 2014 11:32
MongDB の C# Driver を PowerShell から使ってみた
[System.Reflection.Assembly]::LoadFile('/path/to/MongoDB.Driver.dll')
[System.Reflection.Assembly]::LoadFile('/path/to/MongoDB.Bson.dll')
$client = New-Object MongoDB.Driver.MongoClient("mongodb://hostname")
$server = $client.GetServer()
$db = $server.GetDatabase("test")
$user = $db.GetCollection("User")
foreach($doc in $user.FindAll() {
[System.Console]::WriteLine($doc)
@Gab-km
Gab-km / Callable.fs
Last active August 29, 2015 14:01
This is a sample implementation of Callable in F#.
// Interface
type ICallable<'a, 'b> =
abstract member callback: 'a -> 'b
// concrete class
type Callable<'a, 'b>(f: 'a -> 'b) =
interface ICallable<'a, 'b> with
member self.callback x = f x
// computation builder
@Gab-km
Gab-km / 00_fsharp_tips_for_newbies.rst
Last active August 29, 2015 14:00
F# Tips inspired by @kmizu's Scala Tips for newbies

これは、 @kmizu さんの「初学者向けの Scala Tips」を勝手に F# にポートした記事です。

@Gab-km
Gab-km / fizzbuzz.scala
Last active August 29, 2015 14:00
Scala で Active Patterns っぽいことやってみた
class FizzBuzzExtractor[T](f: T => Boolean){
def unapply(t: T) = f(t)
}
val FizzBuzz = new FizzBuzzExtractor[Int](_ % 15 == 0)
object Fizz extends FizzBuzzExtractor[Int](_ % 3 == 0)
object Buzz extends FizzBuzzExtractor[Int](_ % 5 == 0)
object FizzBuzzRunner {
def run(num: Int) = num match {
@Gab-km
Gab-km / decorator.py
Created September 30, 2013 01:18
賢明なる Pythonista の諸兄に於かれましては、どちらの書き方をなさいますでしょうか。
# -*- coding: utf-8 -*-
def class_extender(cls):
def __init__(self, value):
self.value = value
cls.__init__ = __init__
return cls
@class_extender
class Hoge:
@Gab-km
Gab-km / fake_undefined.fs
Created August 6, 2013 12:24
Haskell の undefined の真似事
let undefined _ = failwith "undefined"
let hoge (x : string) : int = undefined()
@Gab-km
Gab-km / whyILeftHeroku.rst
Last active December 30, 2022 10:56
何故私は Heroku から離れたか、および新しい AWS セットアップのメモ

何故私は Heroku から離れたか、および新しい AWS セットアップのメモ

原著者

Adrian Holovaty

原文

Why I left Heroku, and notes on my new AWS setup

金曜日、私は Heroku から Amazon Web Services(AWS) を直接使うように Soundslice を移行しました。私はこの変更ができてとても、そうとても嬉しくて、私がどうやったかということと、もし皆さんが同じような立場だったら何故それを検討すべきかということについて広く伝えたいと思います。

@Gab-km
Gab-km / IOSample.fs
Last active December 17, 2015 08:39
人様の作品をいじっているだけです
open System
//============================================
// IOモナド
//============================================
module IO =
type IO<'a> = IO of (unit -> 'a)
type IOBuilder() =
member this.Bind (IO x, f) = f (x())