2007-10-01から1ヶ月間の記事一覧

継続渡しによる階乗計算をトレースしてみる

僕のカニみそ級の脳みそでは、無名関数が混じっていると混乱してしまうっぽいので、適当に名前を付けながらトレースしてみました。 (define fact/cps (lambda (n cont) (cond ((= n 0) (cont 1)) (else (fact/cps (- n 1) (lambda (m) (cont (* m n)))))))) …

フィボナッチ数を求める関数をC++で継続渡しで書いてみる足掻き

C++

再帰の練習長6+をみて、C++で書いてみたいと思い、やってみた。 これも翻訳しているに過ぎないのだけど。 #include <iostream> #include <functional> #include <boost/function.hpp> #include <boost/bind.hpp> #include <boost/lambda/lambda.hpp> namespace { // 継続渡しでフィボナッチ数を求める int FibonacciCps(int n, boost::function<int(int)> </int(int)></boost/lambda/lambda.hpp></boost/bind.hpp></boost/function.hpp></functional></iostream>…

階乗を求める関数をC++で継続渡しで書いてみる足掻き

C++

今まで何度か書いた継続渡しによる階乗計算。 C++でやってみようと思い立ち、やってみました。 っていうか、慣れてきたとは言え、継続渡し自体まだ理解できてない。 単なる翻訳です。 #include <iostream> #include <functional> #include <boost/function.hpp> #include <boost/bind.hpp> #include <boost/lambda/lambda.hpp> namespace { // 継</boost/lambda/lambda.hpp></boost/bind.hpp></boost/function.hpp></functional></iostream>…

DrSchemeからMeadow+Gaucheへ

今までDrSchemeを使ってSchemeのコーディングをやってたんだけど、開発者のはしくれとしてemacsに憧れがあって、「emacs使わんで何が漢ぞ!!」とばかりにやってみました。 ってかemacsじゃなくてMeadowなんだけども。 あ、あとDrSchemeってファイルを開くダイ…