- 1 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 23:16:33 ]
- ※ ここはCommon Lisp、SchemeをはじめとするLisp族全般のスレです ※
Part24: ttp://pc11.2ch.net/test/read.cgi/tech/1224939205/ Part23: ttp://pc11.2ch.net/test/read.cgi/tech/1215875388/ Part22: ttp://pc11.2ch.net/test/read.cgi/tech/1211381920/ Part21: ttp://pc11.2ch.net/test/read.cgi/tech/1207300697/ Part20: ttp://pc11.2ch.net/test/read.cgi/tech/1205021786/ Part19: ttp://pc11.2ch.net/test/read.cgi/tech/1200237296/ Part18: ttp://pc11.2ch.net/test/read.cgi/tech/1186922295/ Part17: ttp://pc11.2ch.net/test/read.cgi/tech/1177065699/ Part16: ttp://pc11.2ch.net/test/read.cgi/tech/1172404795/ Part15: ttp://pc10.2ch.net/test/read.cgi/tech/1151025773/ Part14: ttp://pc8.2ch.net/test/read.cgi/tech/1132275726/ Part13: ttp://pc8.2ch.net/test/read.cgi/tech/1115901841/ Part12: ttp://pc8.2ch.net/test/read.cgi/tech/1100229366/ Part11: ttp://pc5.2ch.net/test/read.cgi/tech/1091456033/ Part10: ttp://pc5.2ch.net/test/read.cgi/tech/1075630259/ Part09: ttp://pc2.2ch.net/test/read.cgi/tech/1069594582/ Part08: ttp://pc5.2ch.net/tech/kako/1058/10582/1058263391.html Part07: ttp://pc5.2ch.net/tech/kako/1042/10421/1042167213.html Part06: ttp://pc3.2ch.net/tech/kako/1031/10315/1031560687.html Part05: ttp://pc3.2ch.net/tech/kako/1023/10230/1023091882.html Part04: ttp://pc.2ch.net/tech/kako/1016/10162/1016211619.html Part03: ttp://pc.2ch.net/tech/kako/1008/10082/1008220265.html Part02: ttp://pc.2ch.net/tech/kako/1002/10025/1002584344.html Part01: ttp://piza2.2ch.net/tech/kako/987/987169286.html
- 83 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 03:26:34 ]
- Lisp 系言語だと emacs か vi しか選択肢が無いのは事実だけど、
あらたに統合環境を用意する積極的な理由ってのも無いんだよなー。 欲しいのはデバッガみたいだけど、 仮にデバッガが便利だとしても Scheme にふさわしいデバッガのモデル は過去事例を研究したところで容易に決められるとは思わんのだよなー。 これだけ長い Lisp の歴史の中でいわゆる「デバッガ」が言及された ことがそんなにないってのはただの偶然だとでも思ってんだろうか。
- 84 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 06:25:23 ]
- pltはそのへんがんばってるんじゃないの
- 85 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 06:30:20 ]
- なんでlispは歴史的にデバッガが言及されないの?
- 86 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 08:36:47 ]
- >>85
文脈嫁。 >>83 は、GCを考案し、動的言語の先駆けとなったLisp に、デバッガの話が持ち上がらなかったのは、Lispにデバッガが不要だから、と云いたいんだろ。
- 87 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 08:47:36 ]
- >>83は、これだけ長い Lisp (スレ)の歴史の中で、と言いたかったんだよ。
- 88 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 09:10:02 ]
- >>83
Schemeの話をLisp系と一般化しないでくれ。Emacs Lispのデバッガはなかなかいい、 CL系は昔から規格に最適化オプションで debug 指定ができたりと、デバッガは 売りにしてたよ。SchemeでもPLTやGuileはがんばってるじゃん。
- 89 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 09:43:29 ]
- DebuggerのないLisp machineなど存在しない。
もともとsmalltalk実装のモデルになったような 統合プログラミング環境を持っていたのがLisp。 今はむしろLLみたいな軽い環境が流行りで、 外界とのインターフェースは昔より豊か。
- 90 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 16:54:11 ]
- eclipseあたりに自力で作ってみたらいいのに
- 91 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 17:19:03 ]
- 調べるのめんどくさいんでここで聞きますがscheme ってバイトコードはけるの
- 92 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 17:42:27 ]
- >>91
Kawa, JSchemeでググレカス
- 93 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 18:42:50 ]
- >>89
Smalltalkより前にIDEを持っていたLispってどんなLispだよw
- 94 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 18:46:35 ]
- つ ttp://ja.wikipedia.org/wiki/Interlisp
- 95 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 19:05:55 ]
- まったく関係ないがh抜き不便
- 96 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 19:15:49 ]
- アセンブラ使え
- 97 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 19:23:10 ]
- >>93
TECO+MacLisp 後継のEmacsがSmalltalk-76と同時期。
- 98 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 21:57:10 ]
- 超古代文明の発掘みたいな。
断絶があるのはなぜだろう。
- 99 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 21:58:24 ]
- 車輪の再発明と言ってだな、
- 100 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 00:28:22 ]
- >>82
別にどんな主張をしようが構わないが、 「デバッガ」っていう重要なカテゴリ以下を私物化してるのがちょっと……。 あれのどこがGaucheのデバッガの話なのよ? 何で、自分のページとか作って、そこでやらないんだろうね?
- 101 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 11:20:53 ]
- まあWiLilki的にひどすぎるということになれば管理者のShiroさんが強権発動するでしょ
- 102 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 13:43:07 ]
- 俺はffiの項目を私物化したいぞおお
ジョジョオ〜
- 103 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:30:00 ]
- 継続渡しマクロなんて作るぐらいなら
common lispの上にscheme作っちゃえばいいのに
- 104 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 23:30:15 ]
- みんながACL使えばみんなが幸せ
- 105 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 23:39:46 ]
- もっとお手頃価格でACL売ってくれ。
俺も使うから。
- 106 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 02:43:48 ]
- 一方、ロシアのSchemerは黒板を使った。
- 107 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 03:34:23 ]
- >一方、ロシアのSchemerは黒板を使った。
作らないところが寂しいよな >もっとお手頃価格でACL売ってくれ。 なんであんなに高いんだろうね? 年間売り上げみてみたいよ。 株主になっても一票そこに投じられそうもないのが悲しいやね
- 108 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 13:46:02 ]
- ロシアのLisp事情ってどんな感じなんだろう。
あそこは数学も物理も凄いんでしょ?
- 109 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 14:21:33 ]
- 行って確かめてこいよ
- 110 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 16:10:27 ]
- ロシアは遠いし言葉がわからないから
かわりにロシアンパブ行ってきます。
- 111 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 21:13:51 ]
- ttp://sourceforge.jp/magazine/09/01/27/0039208
あとまあ、これもある意味予想通りではあるが、LispやScheme、Haskellと言ったあたりは、 結局のところ「語られる」言語であって、「使われる」言語ではないようだ。 HaskellにしろCommon Lispにしろ、近年ではライブラリも相当揃ってきており、 パフォーマンスの面から言っても実用言語として遜色ないものになりつつあるので、個人的には残念なのだが。
- 112 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 21:22:15 ]
- Emacs Lispも仲間に入れてほしいんですけど。
- 113 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 21:52:50 ]
- だが断る
- 114 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 22:17:45 ]
- 各個人の問題として何故使わないのか。
- 115 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 22:35:50 ]
- 先週新聞に載ってたセンター試験の数学UAをやってみたんだけど
21世紀になって10年たとうというのにひどいBASICのプログラムが載ってたんだわ 高校生に勉強させるなら COMETでもMIPSでもいいからアセンブラでやらせるか BFで難易度高めにするか LispやHaskelやForthで教養を身につけさせるかすればいいのに あるいはスパコンのためにFortranを教えるか
- 116 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 22:50:30 ]
- >>114
次々と新たな処理系が開発されるのは、既にある処理系を使いたくないのかもな。 勉強のためだとしても、なんで人のソースを読むことより自分で書くことを選ぶのか。 それが問題だと思うよ。
- 117 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 22:52:42 ]
- IT音痴大国の名に恥じないな。
- 118 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 22:58:36 ]
- Lispはラテン語ではない。と誰かが言ったとか言わないとか。
- 119 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 20:26:19 ]
- むしろラテン語だろ
- 120 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 22:59:04 ]
- まあもう少し待ってれば予想外の変化が起きるかもよ
- 121 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 23:03:38 ]
- Lisp/Scheme類は法律で禁止され、地下で開発するしかないのだ。
- 122 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 00:02:26 ]
- >>115
あれはなんの冗談なんだろうと思ったな。 釣りじゃないのか、とか日付を確認したりとか。 徐々にその事実が恐ろしくなっていった。 >LispやHaskelやForthで教養を身につけさせるかすればいいのに お前は俺かw
- 123 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 00:06:09 ]
- BFで難易度をってところにワロタ
- 124 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 06:22:02 ]
- d.hatena.ne.jp/niitsuma/20080209/1233260146
- 125 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 00:58:37 ]
- Lisperだけで会社作ったら、経営していけるかな。
- 126 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 01:03:15 ]
- codepad.org/7ozb95V2
- 127 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 05:02:34 ]
- 漢詩って何かいいね。
- 128 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 05:15:40 ]
- 情景が目に浮かぶようだね。霜ってのがまた良いな。
……ところで、ここ何のスレだっけ?
- 129 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 15:23:31 ]
- comp.lang.lispに何度か書き込みしてるはずなのに反映されない
なんでだろ
- 130 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 16:48:38 ]
- ネットニュースだから配送の問題とか?
- 131 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 13:40:24 ]
- quasiquote.org/log2/Scheme/Gauche/Gauche-lazy-ffi
をconfigure make make installしてから gosh> (use lazy-ffi) *** ERROR: Compile Error: failed to link "lazy-ffi" dynamically: /usr/lib/gauche/site/0.8.12/i486-pc-linux-gnu/lazy-ffi.so: undefined symbol: strlcpy "(stdin)":2:(use lazy-ffi) Stack Trace: _______________________________________ gosh> 何が問題なのでしょうか
- 132 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 13:44:27 ]
- だからここはサポート掲示板じゃねえっつーの
またどうせバージョン違うんだろ
- 133 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 14:06:25 ]
- >>131
glibcにOpenBSD由来のstrlcpy(3)はありません。 www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/string/ から持ってきてリンクしてください。 デストリによってはパッケージで提供されているかも知れませんが。
- 134 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 14:12:09 ]
- やっぱlinuxってきもいなー
- 135 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 04:35:42 ]
- gimp2.6.3(ほぼR5RS互換) のscript-fu で
(let ((foo 2) (bar 3)) (display foo) (display bar)) ->23#t これと同じ事がしたくて(返り値は無視して) 下のように書きましたが変数ではなく 文字列として扱われてしまいます。 (let ((foo 2) (bar 3)) (mapcar (lambda (arg) (display arg)) '(foo bar))) ->foobar(#t #t) 上に書いたlispと同じ動作にするにはどう書けば良いでしょうか?
- 136 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 06:59:00 ]
- >>135
「'」(クォート)をつかわず、 (list foo bar) としたら良いのでは。 あるいは `(,foo ,bar) (先頭はバッククォートね)かな。
- 137 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 09:54:45 ]
- letやmapcarが出てくるのにquoteが判らないとは
えらい偏った学び方したんだな quoteはLISPの基礎
- 138 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 13:39:03 ]
- >>137
偏ってない。変数とシンボルを混同するのはLISPの名物。 変数とimmutableな文字列なら、混同することはあまりないのだが。 最近思うんだが、LISPは動的スコープに戻したほうがいいんじゃないか? 変数は常に(eval シンボル)と等価で、関数は常にS式と等価。 静的スコープではこれが成立しない。
- 139 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 14:13:37 ]
- '(1 2)と(list 1 2)の結果が同じだし、勘違いしちゃうことってあるよね
- 140 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 16:24:19 ]
-
'multiple-value-bindについてるクオートがよくわからない. (defmacro mvbind (&rest args) (let ((name 'multiple-value-bind)) `(,name ,@args)))
- 141 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 17:07:30 ]
- これでうまくいった
(let ((foo 2) (bar 3)) (mapcar (lambda (arg) (display (eval arg))) '(foo bar)))
- 142 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 17:31:30 ]
- >>138
かなり偏ってるね 混同するのが名物とか、変な偏見も持ってそうだが 多分>>140-141もお前じゃないか? きちんとした処理系で基礎から勉強し直した方がいいと思うね
- 143 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 18:38:40 ]
- >>136
そうだね。前スレ372-390でも話題になってたよね。 (list foo bar) == (list `,foo `,bar) == `(,foo ,bar) quasiquoteの分配則では気をつけないとね。
- 144 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 18:43:43 ]
- データとコードの違いは最初に叩き込まれると思っていたがそうでもないのか?
- 145 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 18:48:15 ]
- >>139
>結果が同じだし 微妙な違いは理解してるのか? 同じ臭いがするんだよ>>138-141はよ。
- 146 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 19:05:17 ]
- マクロの勉強でもしてみれ
- 147 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 19:11:52 ]
- eval使って解決した気になれるとか、初心者の特権だねえ。
- 148 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 19:15:57 ]
- >>135
それよりmapcarの使い所を間違えてないかね? 処理系変えるとうまく動かないかもよ。 quoteはちゃんと理解した方がいいよ。 >>140 どんだけ頓珍漢なことやってるのかって 最初は気付かないもんだよ。
- 149 名前:135 mailto:sage [2009/02/03(火) 20:15:17 ]
- ありがとうございます。
もう一度 quote の部分を見直しましたが まだいまいちわかっていないので もう一度じっくり読んでみます。 >>148 mapcar の使い方を確認しようと Revised5 Report on the Algorithmic Language Scheme を見てみたところ mapcar は乗っていなかったので map を使うことにしました。
- 150 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:12:28 ]
- >>135は展開すると
'(foo bar) == (list 'foo 'bar) となる。 これと>>143を比べると違うことは明白。 (list 'foo 'bar)ではlistの要素はシンボルになっている。>>135 (list foo bar)ではlistの要素は変数になっている。>>136,>>143
- 151 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:34:33 ]
- 初心者ならそこまで気を回さなくてもいいかもしれないけど
(equal? '(foo bar) (list 'foo 'bar)) => #t だけど (eq? '(foo bar) (list 'foo 'bar)) => #f ; ほとんどの場合 quoteはquoteでlistとは別物(返り値も含めて、書き換え可能かどうか等も) 返ってくる値がequalなだけ
- 152 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:03:12 ]
- それからR5RSのmapは返り値の順序は規定されているけど
評価順序は未規定 だから (map display '(A B C)) => '(#<undef> #<undef #<undef>) 標準出力にはABC、ACB、BAC、BCA、CAB、CBAのいずれか 評価順序をリストの順通りにしたいのならfor-eachを使う (for-each display '(A B C)) => #<undef> 標準出力には必ずABC 評価順序と戻り値のデータ構造内の順序の区別は HaskelのIOモナドにもつながる (たぶん) R5RSでは関数の引数の評価順さえ未規定
- 153 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 23:52:11 ]
- >>152
>>それからR5RSのmapは返り値の順序は規定されているけど >>評価順序は未規定 うわ…これ今ごろ知ったよ、ありがとう。つかこの仕様で誰が得するんだろ。 慌てて調べたけど、Gauche は独自仕様で常にリスト内の順番どおり、なのね。 ちょっと安心。
- 154 名前:デフォルトの名無しさん [2009/02/04(水) 00:06:16 ]
- 並列処理が楽になるとは聞いたな。
- 155 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 12:25:14 ]
- 少しActorも意識してるんだろうね。
各要素に並行にfがメッセージパッシングされて。 >>138 funarg問題の時代までタイムスリップかよ。
- 156 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 13:04:44 ]
- funarg問題の例: compose
(lambda (f g) '(lambda (x) (f (g x)))) こうすればいいんじゃないの? (lambda (f g) `(lambda (x) (,f (,g x))))
- 157 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:50:12 ]
- quoteが嫌いな人はクロージャやsyntax-rulesを使う
quoteが大嫌いな人はPythonやRubyを使う そんな気がする
- 158 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:05:31 ]
- quasi-quoteの便利さは異常。
そんな嫌いになるなんて、これが本当のくぉーつ嫌いってやつか・・・
- 159 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:51:16 ]
- 昔のマクロにはバッククォートなんてなかったよな
ひたすらlistでS式をこさえてたっけw
- 160 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 03:32:58 ]
- どんだけ昔の人だよ
- 161 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 03:40:10 ]
- Lisp-85とかって言っても分からんだろうなw
- 162 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 03:53:31 ]
- そんな最近かよ
とっくにバッククオートあるよw
- 163 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 04:06:48 ]
- Lisp-85ってS-OSというZ-80のOS上で動く奴なんだが
fexpr形式やmacro形式はあってもバッククォートは無かったぞ
- 164 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 08:52:25 ]
- Alan Bawden, "Quasiquotation in Lisp"によれば、
現在とは少し記号法が違うが、1972年のConniverが現代的な quasi-quoteの起源。 少なくとも1977年ごろのLisp machineには、現在使われているのと ほぼ同じquasi-quoteがあった。 ということらしい。 D. V. McDermott and G. J. Sussman, "The Conniver reference manual," 1972 ftp://publications.ai.mit.edu/ai-publications/0-499/AIM-259a.ps Alan Bawden, "Quasiquotation in Lisp," 1999 citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.5.2566
- 165 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 10:11:52 ]
- 'の逆はevalだと思ってた
- 166 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 10:29:33 ]
- >>163
Z80には荷が重かったのでは メモリどんだけ積んでたとか知らないけど 展開後は再帰関数のかたまりだし
- 167 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 10:39:22 ]
- 全然問題ない。
- 168 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 10:57:09 ]
- あっそ
ならLisp-85作った人が入れ忘れたんだね
- 169 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 11:05:52 ]
- quasi-quoteを効率を保ってきちんと実装するのは意外と難しい。
80年代になってもマクロと組み合わせた時の実装手法の論文があった。 アンチquasi-quote派というのが昔はいた。Common Lispで決着。
- 170 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 11:51:35 ]
- Gauche WiLiLiのあんまり目立たないとこに自分の作ったパッケージ書き足す方法はないものだろうか
- 171 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 16:28:07 ]
- >>156
その関数の引数f,gにシンボルxを引数として渡すと死ねる。
- 172 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 18:05:14 ]
- やっぱり gensym が必要なんだね。
- 173 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 18:47:23 ]
- 関数名じゃなく、関数「値」を式に埋め込めばいい。
gosh> (define x (list + 1 2)) x gosh> (define y (list '+ 1 2)) y gosh> (define + -) + gosh> (+ 1 2) -1 gosh> (eval x (current-module)) 3 gosh> (eval y (current-module)) -1
- 174 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 20:23:37 ]
- 再帰関数だったら?
- 175 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 21:49:55 ]
- そこまで行くとR5RSでも解決できてるかどうか怪しい
R6RSは再定義禁止だっけ
- 176 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 21:59:07 ]
- R5RSの件は
(define f (letrec ((f ...)) f)) と書けば安全かも
- 177 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 08:10:38 ]
- 仕様に自由があるから面白い。
- 178 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 16:01:07 ]
- >>173
で'の使い方わかった気がするけど 本格的に勉強するならどの本がいいのでしょうか?
- 179 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 17:53:52 ]
- >>178
SICPがいいよ マクロの話題は一切ないけど、マクロは遊ぶものであって勉強するものではない それでもSICPがSchemeを使ってる理由を考えながら読めばおもしろいかもね
- 180 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 18:39:03 ]
- 俺はOnLispをお勧めする。
- 181 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 19:54:30 ]
- ふつうにあのお魚の本でよくないか?
- 182 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 20:48:41 ]
- 処理系のソースで十分
- 183 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 21:37:03 ]
- ttp://user.ecc.u-tokyo.ac.jp/~tt076524/onlispjhtml/
ほれ
|

|