Lisp,Scheme
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)))みたいな感じになると。みたいな感じって言うのは、どっかにトップレベルに戻るため…
「リスト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*)で…
からの眺め。 竹内先生は高血圧だそうだ。 結構、近くにいたから本持って行ってサイン貰えばよかった。
竹内先生のセッション聞くために。 駅直結のバーガーキングで昼飯。 完全分煙で喫煙席広い。 なによりも安い。 肉三枚で690円安すぎやろ!
このルールベースの文法規則の件。 スゲーな! generate関数はそのままで、文法規則を変えれば、生成される文が 豊になっていく。 さらに*grammer*で*simple-grammer*と*bigger-grammer*を切り替える所とか・・・
(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は演算子の優先順位とか無いぜ。 ということは、計算する場合、数学では書かないカッコも書く必要が…
と思って、やり始めました。 使うのはlispbox-0.7のCLISPで。 でも、普通(defun first-name (name) (...))という関数を書く場合 カッコがあるので、閉じ忘れ防止のため最初に開きカッコと閉じカッコを 書いておきたい。 これは今までやってきた言語でもそう…
外人がしゃべったけど、全く分からず。 ほんやくコンニャクを。
Lispセミナーを聞きに。
でも買うて、Emacs使いになろうか・・・
数理システムさんで http://jp.franz.com/base/seminar-2010-11-19.html 2日目はなんとLispの仏様、竹内郁雄先生のセッション! 行ってみたい。
という処理系をインスコしてみた。
英語版読んだよ。
いちおうscheme系でGaucheの本があるけど日本限定だしなぁ。
LISPと言えば、言わずと知れたプログラミング言語である。 同名のユニットがデビューしたことで グーグルアラートが、アイドル一色になりましたorz 困った。
メタプログラミングRubyに書かれてる内容と根底がカブるなぁ。 Matz、Ruby作る時にかなりLispからパクっとるなぁ。
継続とモナド連鎖。 計算式ビルダとマクロ。 は同じ概念?
Lispで言うところのマクロ?
途中までの不完全な状態を関数値として保存して、次の処理に渡す事かな?
社内の部門向けに資料を作成するかも。・関数型の特徴 ・実例 ・MapReduceなどのトレンド等を紹介できればと考えています。
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…
; 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…
今まで何冊が読んでるだけあって内容は理解できる。 決して初学者には薦められないが、内容は素晴らしいなぁ。
Lisperでもないのに。 さすがに9660円は高いス。
何回入門すれば気が済むのだろうか?
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行の関数呼び出しに 節約できた。書い…