D言語

D言語でMVarしだした

前に参加したHaskellによる並列・並行プログラミングの読書会にて、 #heyhey_haskell 7.5の無制限チャネルはC言語みたいなポイント操作が素敵でした— にへまk (@nihemak) January 24, 2015 ×ポイント操作 ◯ポインタ操作— にへまk (@nihemak) 2015, 1月 24 で…

非決定性 with 例外

『On Lisp』の非決定性が面白い。 (define (two-numbers) (list (choose '(0 1 2 3 4 5)) (choose '(0 1 2 3 4 5)))) (define (parlor-trick sum) (let ((nums (two-numbers))) (if (= (apply + nums) sum) `(the sum of ,@nums) (fail)))) > (parlor-trick …

Perlで遅延評価

遅延評価とは、HaskellやD言語なんかにある「アレ」のことだ。 遅延評価(ちえんひょうか、lazy evaluation、delayed evaluation)とは、計算機科学におけるプログラムの評価手法の一つ。主に関数型言語で使用される。対義語は先行評価(eager evaluation、s…

クロージャによるクラスの代替

個人的にクロージャが使えればクラスの構文は要らないと思っている。例としてスタックを表すクラスをクロージャを使って定義してみる。まず、D言語で。