Skip to content

Instantly share code, notes, and snippets.

@camlspotter
camlspotter / haha.md
Last active Jul 4, 2018
OCaml zippy tutorial in Japanese
View x.ml
(** Generation of typerep methods for tag-checking *)
(* XXX simply moved to sig.ml ? *)
open Typerep_lib.Std
module Sig = struct
open Sig
type res = [%import: Sig.res]
and ftypekind = [%import: Sig.ftypekind]
View hoge.ml
match x with
| OpeExp (e1, op, e2) ->
begin match op with
| Plus -> ...
| Minus -> ...
end
| Root (e1, e2) -> ...
View gist:7968496
module Id = struct
let name = "pa_fun_fields"
let version = "1.0"
end
open Camlp4
module Make (Syntax : Sig.Camlp4Syntax) = struct
include Syntax
View gist:5779445
open Spotlib.Spot
open GapiUtils.Infix
open GapiLens.Infix
open GapiLens.StateInfix
open GapiMonad.SessionM
module OAuth2 = GapiOAuth2
module Conv = GapiConversation
module Service = GapiService
@camlspotter
camlspotter / gist:5629762
Last active Dec 17, 2015
適当に重み付けして高得点から並べてみました。うーん。納得できるのもあるし、えってのもある。 えええ俺だけ行った事の無い、わひろ閉店?ああ、住所が違うから移転前のか。焦った。 Yong Huat は… Joo Chiat と East coast の交差点にあるきちゃないホッケンミーの店だがそんな美味いのか? Puteri Mas はドリアンパフの店。納得の高得点。 Coriander は洋風の店、つい最近出来た Geylang Lor 29 は有名なホッケンミー Katsuya はトンカツの店なんだけど…日本人としてはどうもねえ Easter & Northern Dumpling は納得。ただこないだビールをハルビンからカールスバーグに変えた。残念すぎ Joo Chiat Prawn…
View gist:5629762
[ { "score": 300, "name": "(Closed) Wahiro",
"address": "112 East Coast Road",
"geo": [ 1.30501126709, 103.905173164 ] },
{ "score": 300, "name": "Yong Huat", "address": "125/127 East Coast Road",
"geo": [ 1.306044, 103.904794 ] },
{ "score": 300, "name": "Puteri Mas (Joo Chiat)",
"address": "475A Joo Chiat Road", "geo": [ 1.3063423, 103.904712 ] },
{ "score": 297, "name": "Coriander", "address": "220 East Coast Road",
"geo": [ 1.3073885145, 103.907421243 ] },
{ "score": 294, "name": "Geylang Lor 29 Fried Hokkien Mee",
View gist:d8e9492373739f300d35
(let
((Fib/0
(let*
((fib/1008
(lambda (n/1009)
(if (not (equal n/1009 0))
(if (not(equal n/1009 1))
(+ (funcall fib/1008 (- n/1009 1)) (funcall fib/1008 (- n/1009 2)))
1)
0))))
@camlspotter
camlspotter / gist:6c8a70ddd2b5fce04d6a
Last active Oct 14, 2015
How fib is compiled in OCaml, and a hand compilation of it to Elisp
View gist:6c8a70ddd2b5fce04d6a
let rec fib = function | 0 -> 0 | 1 -> 1 | n -> fib (n-1) + fib (n-2)
(* Output of -dlambda *)
(setglobal Fib!
(letrec
(fib/1008
(function n/1009
(if (!= n/1009 0)
(if (!= n/1009 1)
@camlspotter
camlspotter / gist:3121708
Created Jul 16, 2012
相互再帰した二つの型を別モジュールで定義する方法二つ
View gist:3121708
module Ex1 = struct
(* まず相互再帰した型を一モジュールで作り、その後別モジュールに分離する例 *)
module AB = struct
type a = A | AA of b
and b = B | BB of a
let a_f = function A -> B | AA b -> b
let b_f = function B -> A | BB a -> a
end
View fx_quote_filler.ml
(*
(* CR jfuruse: なんたら *) というのは前職でのコードレビューの書き方で、私の癖になっている。すべて、「私ならば…こうするかな?」が省略されています。
私ならやっつけモードでこう書く、という例です。人様のコードを元にしているので、ほんとにこう書くのかよ?という突っ込みはありかと思います。
元コードも実際のものを簡略化されたものだそうですので、私の提案コードのように書きたいけれども実は書けないんだ!ということもあるでしょう。
OCaml のプログラミングスタイルは決まったものはなくいろいろと流儀があります。その一つと思ってください。
*)
You can’t perform that action at this time.