Lisp,Scheme

紫藤さんのところのschemeの継続渡しスタイルの一番簡単な例をscalaで書いてみた。

scala> def my_return(x : Any) = x my_return: (x: Any)Anyscala> def k_plus(a : Int, b : Int, c : Int => Any) = c(a + b) k_plus: (a: Int, b: Int, c: (Int) => Any)Anyscala> def k_mult(a : Int, b : Int, c : Int => Any) = c(a * b) k_mult: (a: I…

gosh> (* (+ 1 (call/cc (lambda(cc) (set! *save* cc) 2))) (- 10 5)) 15 gosh> (*save* 3) 20これも同様に、*save*に束縛された段階で (lambda(x) (* (+ 1 x) (- 10 5)))みたいな感じになると。みたいな感じって言うのは、どっかにトップレベルに戻るため…

プログラミングGaucheの19章で継続のお勉強

「リストlisから述語pred?が真になる要素を見つけ、その要素とseedに手続きprocを適用する」 を普通の自己再帰で記述すると以下のようになる。(define (find-fold pred? proc seed lis) (cond [(null? lis) seed] [(pred? (car lis)) (let *1]))この関数を使…

スペシャル変数っていつ束縛されんの?スコープは?

実用Common Lispの第4章のGPSバージョン1に疑問 *state*、*ops*というスペシャル変数を定義しているが 何時このスペシャル変数に値が設定されるのか?というのも、わざわざスペシャル変数を用意しているのに gps関数では引数に(*state* goals *ops*)で…

ヒルズ49階

からの眺め。 竹内先生は高血圧だそうだ。 結構、近くにいたから本持って行ってサイン貰えばよかった。

ギロッポンなう

竹内先生のセッション聞くために。 駅直結のバーガーキングで昼飯。 完全分煙で喫煙席広い。 なによりも安い。 肉三枚で690円安すぎやろ!

実用CommonLisp 第2章

このルールベースの文法規則の件。 スゲーな! generate関数はそのままで、文法規則を変えれば、生成される文が 豊になっていく。 さらに*grammer*で*simple-grammer*と*bigger-grammer*を切り替える所とか・・・

実用CommonLisp P.15 タイポやろコレ

(defun first-name (name) (if (member (first name) *titles*) (first-name (rest name)) (first-name))) ; ←ここ'-'いらん (defun first-name (name) (if (member (first name) *titles*) (first-name (rest name)) (first name)))

とある講演者の発言

Lispはカッコがあって書きにくい言語って言われてますが、 数学屋なんで、最初から【カッコが見えませんでした】。。。だとぉ! そんなわけあるかい。 Lispは演算子の優先順位とか無いぜ。 ということは、計算する場合、数学では書かないカッコも書く必要が…

実用CommonLispをちゃんとやる!

と思って、やり始めました。 使うのはlispbox-0.7のCLISPで。 でも、普通(defun first-name (name) (...))という関数を書く場合 カッコがあるので、閉じ忘れ防止のため最初に開きカッコと閉じカッコを 書いておきたい。 これは今までやってきた言語でもそう…

Lispセミナー

外人がしゃべったけど、全く分からず。 ほんやくコンニャクを。

新宿なう

Lispセミナーを聞きに。

Emacsテクニックバイブル

でも買うて、Emacs使いになろうか・・・

Lispのセミナー

数理システムさんで http://jp.franz.com/base/seminar-2010-11-19.html 2日目はなんとLispの仏様、竹内郁雄先生のセッション! 行ってみたい。

Mosh

という処理系をインスコしてみた。

Scheme手習い(The Little Schemer)が復刊する。

英語版読んだよ。

オライリーにLispの本が無いのは何故か?

いちおうscheme系でGaucheの本があるけど日本限定だしなぁ。

LISPというアイドル(声優?)ユニットがデビューした・・・

LISPと言えば、言わずと知れたプログラミング言語である。 同名のユニットがデビューしたことで グーグルアラートが、アイドル一色になりましたorz 困った。

Common Lispオブジェクトシステム―CLOSとその周辺―買うた

メタプログラミングRubyに書かれてる内容と根底がカブるなぁ。 Matz、Ruby作る時にかなりLispからパクっとるなぁ。

多分

継続とモナド連鎖。 計算式ビルダとマクロ。 は同じ概念?

計算式ビルダーって

Lispで言うところのマクロ?

継続って

途中までの不完全な状態を関数値として保存して、次の処理に渡す事かな?

関数型に関する紹介資料を作成するかも

社内の部門向けに資料を作成するかも。・関数型の特徴 ・実例 ・MapReduceなどのトレンド等を紹介できればと考えています。

実用CommonLisp GPS バージョン2 写経

CL-USER> (defun executing-p (x) "Is x of the form: (executing ...) ?" (starts-with x 'executing)) EXECUTING-P CL-USER> (defun starts-with (list x) "Is this a list whose first element is x?" (and (consp list) (eql (first list) x))) STARTS-W…

実用CommonLisp GPS バージョン1 写経

; SLIME 2005-12-27 CL-USER> (defvar *state* nil "The current state: a list of conditions.") *STATE* CL-USER> (defvar *ops* nil "A list of available operators.") *OPS* CL-USER> (defstruct op "An operation" (action nil) (preconds nil) (add-l…

実用CommonLispを読み進める

今まで何冊が読んでるだけあって内容は理解できる。 決して初学者には薦められないが、内容は素晴らしいなぁ。

実用CommonLispを買ってしまった

Lisperでもないのに。 さすがに9660円は高いス。

Common Lisp 入門 (岩波コンピュータサイエンス)を買った。

何回入門すれば気が済むのだろうか?

ファイルを読んでみる2

http://d.hatena.ne.jp/skalabe/20100313/1268487042 では、S式でないテキストを読んだ。 結論としては、 ・空白が区切り文字になる ・改行が区切り文字になるためしに、ファイルの中身がS式であるものを読んでみる。 C:\s-exp.txt (setf x '(1 2 3 4 5))…

関数型言語の特徴 まとめ

Javaのコードを Scala、Clojure、Lisp、Haskellで書いてみたけど、 基本的には、リスト作成の部分で差があるけど リストを操作する部分では、map関数やreduceもしくはfoldをつかって Javaで1メソッドとしていた部分を1行の関数呼び出しに 節約できた。書い…