[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 05/09 18:10 / Filesize : 92 KB / Number-of Response : 402
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Lisp Scheme Part25



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/
ほれ

184 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 23:02:05 ]
うわーっ!びっくりした
と避ける

185 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 08:31:34 ]
>>169
ふむふむ、勉強になります。
そういえば関係あるかわからないけど、 scheme じゃなくて elisp も、
Emacs19 のころは

`(foo ,bar)

とはかけなくて、

(` (foo (, bar)))

と書いていたような。

186 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 13:41:36 ]
関係ないけどチャイティンのLispでは'はシンボルで
(QUOTE X) == (' X)
って書いてたな

187 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 14:53:09 ]
(define (% num1 num2) (remainder num1 num2))
としてるんですが、関数に別名与えるもっと良い方法はありますか?

188 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:21:52 ]
引数の数が一致しているのなら
(define % remainder)

189 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 17:06:46 ]
それでいいんですね。
気づきませんでした。

ありがとうございます。

190 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 19:07:14 ]
指定のクロージャが束縛されているシンボルを探す方法ってありますか?

191 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 20:08:34 ]
処理系によってはあるかもしれないけどRnRSにはないんじゃないかなぁ。
CLにはあるかもしれませんけどSchemerだから知らないです。
シンボルのリストを引数に与えるのであれば
グローバル束縛されているクロージャをevalで取り出してeq?して調べられるけど
グローバル変数のリストはどうやって得ればいいかわかりません。
それにローカル束縛も含めるとなると不可能じゃないでしょうか。



192 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 20:28:40 ]
CL なら do-symbols で探せるんじゃないかと。

193 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 22:01:31 ]
Haskellとlispの得意不得意ってどんなところなのでしょうか?

194 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 22:44:15 ]
別に無いよ?

195 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 22:53:19 ]
>>193
特にないんじゃないの?
文字列を扱うとめちゃくちゃメモリ食うってのがHaskellの弱点かもしれんけど
今時のマシンだったら何の問題も無いし。



196 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 22:56:48 ]
Haskellとlispを戦わせたくてしょうがないらしい

197 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 23:04:03 ]
ムシキングか何かでやってください

198 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 23:39:04 ]
[Lisp] 攻撃:85 素早さ:94 防御:96 命中:68 運:32 HP:154
[Haskell] 攻撃:68 素早さ:55 防御:65 命中:52 運:31 HP:233

Lisp vs Haskell 戦闘開始!!
[Lisp]の攻撃 HIT [Haskell]は91のダメージを受けた。
[Haskell]の攻撃 HIT [Lisp]は11のダメージを受けた。
[Lisp]の攻撃 HIT [Haskell]は109のダメージを受けた。
[Haskell]の攻撃 HIT [Lisp]は0のダメージを受けた。
[Lisp]の攻撃 HIT [Haskell]は76のダメージを受けた。
[Lisp]が[Haskell]を倒しました(ラウンド数:3)。
魔法のMD5 - MD5バトル www.newspace21.com/mix/btl.php

199 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 23:41:50 ]
いちいち貼らなくていいよ

200 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 23:49:28 ]
>>193
Haskellは近くのコンビニにぬり絵が売ってます。
Lispはドンキホーテに行けばぬいぐるみが売っています。
>>193君はどちらが好きですか?

201 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 00:02:40 ]
外に出なくても済む方がいいです



202 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 07:17:52 ]
λ

203 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 08:13:10 ]
maximaの中に面白いのみっけた

(defun for-eval-then-quote (var)
`(list 'quote ,var))

(setq x 1)
(for-eval-then-quote x)
-> '1


204 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 12:37:31 ]
>>203
えーと、ほんとにそれを動かしたら'1になったのかい?
正しい結果は(list 'quote 1)になるのでは。
関数とマクロの評価はごっちゃにしないように。
この辺り何か思い違いしてると思うよ。
ちなみに'1を期待するなら関数の中身は`',var または(list 'quote var)

205 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:23:49 ]
>>204
間違えました
(eval (for-eval-then-quote x))
->'1

206 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:08:08 ]
loopマクロ勉強したのにiterateの方が使われてたり
言語の発展はゆるやかだ
とか言ってたのどこのどいつだ

207 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:52:43 ]
>>206
それ言語じゃなくてライブラリの発展だと思うんだが……。

208 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 02:14:28 ]
>>206
これ読め。
pc11.2ch.net/test/read.cgi/tech/1203096230/251

209 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 12:06:52 ]
[clojure] 攻撃:28 素早さ:67 防御:78 命中:87 運:55 HP:202
[Qi II] 攻撃:51 素早さ:21 防御:48 命中:69 運:23 HP:189

clojure vs Qi II 戦闘開始!!
[clojure]の攻撃 HIT [Qi II]は1のダメージを受けた。
[Qi II]の攻撃 HIT [clojure]は16のダメージを受けた。
[clojure]の攻撃 HIT [Qi II]は56のダメージを受けた。
[Qi II]の攻撃 HIT [clojure]は1のダメージを受けた。
[clojure]の攻撃 HIT [Qi II]は56のダメージを受けた。
[Qi II]の攻撃 HIT [clojure]は10のダメージを受けた。
[clojure]の攻撃 HIT [Qi II]は38のダメージを受けた。
[Qi II]の攻撃 HIT [clojure]は1のダメージを受けた。
[clojure]の攻撃 HIT [Qi II]は25のダメージを受けた。
[Qi II]の攻撃 HIT [clojure]は1のダメージを受けた。
[clojure]の攻撃 HIT [Qi II]は57のダメージを受けた。
[clojure]が[Qi II]を倒しました(ラウンド数:6)。
魔法のMD5 - MD5バトル www.newspace21.com/mix/btl.php

210 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 13:48:31 ]
kill

211 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 15:30:33 ]
連邦のモビルスーツは化け物か!?



212 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 05:14:36 ]
array->list 変換関数がみつからない
自分で書くものなの?
(array->list
#2a((1 2)(3 4)))
->((1 2)(3 4))

213 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:55:21 ]
>>自分で書くものなの?
R5RSには記述がないからそうだと思うけど,
それより#2a(...の2aって何?

214 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 00:02:23 ]
#2A(..)ってのはCommon Lispの二次元配列かな。
ARRAY (2)のリストになってほしいのか、リストのリストになってほしいのか。
まぁ、結論からいうと>>212ARRAY (2 2)はLISTと互換性がないからムリ。自分で書く。
ベクタとかなら (coerce #(1 2 3) 'list) で変換できる。

215 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 03:21:33 ]
lispに興味があるんですが、
いまからlispを勉強するならなんの書籍がお勧めですか?
SICPってのがお勧めっぽいんですが、MITで使われてるとなると・・・
読みこなせるかなー

216 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 05:29:30 ]
オンラインで読める無料の
・独習Scheme三週間 ttp://www.sampou.org/scheme/t-y-scheme/
・入門Scheme ttp://www4.ocn.ne.jp/~inukai/scheme_primer_j.html

書籍じゃないけど
・もうひとつのScheme ttp://www.shido.info/lisp/idx_scm.html
あたりを読んでから買えばいいんじゃないでしょうか。

217 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 05:46:35 ]
>>215
SICP読んでみて、自分に合いそうなら買うのがいいとおも。
mitpress.mit.edu/sicp/

218 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 10:05:25 ]
SICP日本語版はちょっと高い

219 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 10:48:56 ]
なんでいきなりSICPなんじゃーー

220 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 11:11:47 ]
「良い本だ」ってよくScheme関連のWEBに載ってるから。

221 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 11:20:35 ]
良い本には違いないけど、
SICPも買いたいなら、別の本と併読した方がいいと思う。
言語仕様書が日本語化されているからそれでいいか、
って人ならSICPだけで問題なし。



222 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 12:06:25 ]
maximaが使いたいだけだったので
on lispはじっくり読んだが
SICPは問題もやらずに流し読み

223 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:13:48 ]
SICP は Scheme の本というわけではない。
Scheme を使って解説してる本。

224 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:19:01 ]
>>223
え、そうなんですか?
自分はアルゴリズムの勉強のために買いました。

序盤の関数 f(x) の話とか、大学の数学が懐かしいです。

225 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:22:09 ]
SICPにアルゴリズムの話が出てないわけではないが、
SICPをやってもアルゴリズムを勉強したとは言えない。


226 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:22:39 ]
>>223
何を解説してるの? w

227 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:28:22 ]
>>226

っ人生

228 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:36:31 ]
>>226
本のタイトル

229 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:44:04 ]
>>226
降り続く雨
きしむ廊下
立ち止まる足音
遠のく意識

230 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 01:35:07 ]
SICP読んだら魔法使いになれますか?

231 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 07:26:27 ]
>>230
なれません。



232 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 07:45:20 ]
>>230
なれます。
就活に有利です。

233 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 11:01:41 ]
>>230
さあ、30歳になるまで貞操を守る作業に戻るんだ

234 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 14:39:58 ]
30歳を越えてるのですがSICPは読めますか?

235 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 14:51:53 ]
読めなかったら困ると思いますよ

236 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 15:01:35 ]
60歳とかでも読めるらしいですよ
読めなかったら数学勉強してから再挑戦しましょう

237 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 19:19:40 ]
30歳過ぎてもSICP読むと童貞になりますか?

238 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 19:34:56 ]
俺はSICPを読んで、背が10cm伸びたよ

239 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 19:49:08 ]
SICP読んで宝くじ当たったよ。


240 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 19:50:51 ]
もしかして訳者の和田さんってスーフリの和田さん?

241 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 19:52:39 ]
プログラマ50人に1人ぐらいはSICP読んでるよね。



242 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 19:54:25 ]
>>250
和田って俺のことだけど。

243 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 20:28:13 ]
SICP未読で許されるのは小学生までだよね!

244 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 22:31:02 ]
ちょっと待ってくれ。「人生に必要な知恵はぜんぶ幼稚園の砂場で学んだ」とあるように、幼稚園のうちに読んでおくべきものではないだろうか?

245 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 22:34:17 ]
なんてこったい/(^o^)\

246 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 22:52:02 ]
人生に必要な知恵はぜんぶサンドボックで学んだ。


247 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 22:55:25 ]
俺、人生に必要な知恵はぜんぶ死後の世界で学ぶんだ…

248 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 23:02:42 ]
次はアメンボに生まれてきたりして

249 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 23:07:08 ]
おれも人生に必要なことは幼稚園で一通り学んだ覚えがあるな

250 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 23:14:11 ]
>>249
ってことは、幼稚園で、チュー済ませたタイプか。

251 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 23:45:23 ]
登り棒オナニーなら幼稚園の時に覚えました



252 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 00:48:59 ]
SICP以外誇れるものはないのか

253 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 00:54:55 ]
essential of なんたらとかreasoned schemerとかもいいかも

254 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 01:00:19 ]
時代は宝石の名前の言語じゃね?

255 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 01:05:57 ]
党員の友人とMercuryを学んでいます。

256 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 01:13:10 ]
Perlのことですね、わかります

257 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 01:27:06 ]
あのバージョン6がすべった言語のことか

258 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 01:28:03 ]
>>255
それは金属であって宝石ではない(゚д゚)!

259 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 01:28:14 ]
真珠の綴りはPerlじゃないぞ・・・

260 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 01:32:50 ]
まぁなんにせよ変な宗教言語は使いたくないわなw

261 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 05:43:57 ]
()とか幼稚園じゃ習わなかった



262 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 09:40:03 ]
幼稚園の時、世の中はすべてnilだと習った。

263 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 09:44:22 ]
うちの幼稚園ではnil派と()派が闘争を繰り返していた。

264 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 10:01:49 ]
little schemerって幼稚園児でも理解できるように書かれたんだっけ

265 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 11:41:33 ]
誰が象のラムダ君役をするかで喧嘩になってみっちゃんが泣いた。

266 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 11:43:25 ]
ここは幼稚園で人生のすべてが再帰的だと悟ったみなさんが集まるスレですかね。

267 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 11:45:16 ]
継続渡しスタイルで幼稚園ドロップアウトした。

268 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 12:36:37 ]
ところで、
チョコはいくつもらえましたか

269 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 12:38:38 ]
カーチャンから一個、姉さんから一個

270 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 12:44:26 ]
(´;ω;`)

271 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 12:46:02 ]
ええい、FOR文でもらえた奴はいないのか!



272 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 12:50:04 ]
「末尾再帰!」と叫んで保母さんのスカートをめくったのはいい思い出

273 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 13:14:52 ]
Next Boston Lisp Meeting: Monday February 23th 2009 at 1800 at MIT 34-401B
fare.livejournal.com/139926.html

vyzo will talk about gerbil, a little language for distributedprogramming
using PLT-Scheme. Gerbil is a macro language that provides facilities
for actor-based distributed programs and transparent network simulation.

これおもしろそうね。



274 名前:デフォルトの名無しさん [2009/02/14(土) 18:38:38 ]
Seasoned Schemer ってどうですか?

275 名前:デフォルトの名無しさん [2009/02/14(土) 18:39:22 ]
Let Over the Lambda ってどうですか?

276 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 22:52:52 ]
海は死にますか?

277 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 23:11:19 ]
nilもそうですか?

278 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 23:18:17 ]
水曜どうですか?

279 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 00:06:17 ]
明日来てくれるかな?

280 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 00:43:26 ]
このスレのネタの応酬はハイレベル過ぎて

281 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 00:50:07 ]
終いますか〜?



282 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 00:58:25 ]
括弧の山を愛する連中の嗜好が平凡なわけがなかった・・・・

283 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 01:02:23 ]
別に愛してるわけじゃないけど、無いと不安になるというか不安定に感じる。

284 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 01:44:31 ]
十分平凡でないです!

285 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 17:10:57 ]
アイちゃんも冗談を言うようになったか。

286 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 20:27:36 ]
>>274
何が?
俺は好きだよ?

287 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 23:07:40 ]
hogehoge

288 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 23:40:17 ]
(hage? >287)

289 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 23:54:06 ]
一連の1行の糞レスをあぼーんするプログラムを作れ

290 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 23:59:14 ]
(waha >>288)

291 名前:あぼ〜ん mailto:あぼ〜ん [2009/02/16(月) 00:38:22 ]
あぼ〜ん



292 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 02:11:17 ]
>>289
navi2chちょっといじればいいだけ

293 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 03:08:12 ]
iPhone/iPod touch用のLisp/Schemeを発見。次スレのテンプレに入れて。

www.turbozen.com/sourceCode/TinyLisp/
programming.nu/

294 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 04:15:12 ]
こういうlist が返ってくるときに
((1 2 3) (1 2 3) (1 2 3))

こういう処理にするにはどうすればできますか?
(map + '(1 2 3) '(1 2 3) '(1 2 3))

295 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 04:25:47 ]
(apply map (cons + list))

296 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 04:36:47 ]
>>295
ありがとうございます!

297 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 10:24:17 ]
>>293
wikiのテンプレに書き加えておいて。

298 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 00:27:38 ]
(setq list1 '((message "X") (message "Y")))
があったとして、list1 の各要素を順番に実行していく方法を教えてください。


299 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 00:38:32 ]
(eval (cons 'progn list1))
こういう話?
それともこんなのをお望み?
(mapcar #'(lambda (x) (apply (car x) (cdr x))) list1)

300 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 00:44:13 ]
(mapcar #'eval '((message "X") (message "Y")))
とかでもいいのか。

301 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 01:01:05 ]
仮定が分からないな。
messageというのが関数なのか?
(setf *func-hash* (make-hash-table))
(setf (gethash 'message *func-hash*) #'(lambda (x) (princ x)))
(setf list1 '((message "x") (message "y")))
(mapc #'(lambda(x)(funcall (gethash (car x) *func-hash*) (cadr x))) list1)
=> 以下が結果 maximaとかはこの手のことをやってるね。
xy
("x" "y")



302 名前:298 mailto:sage [2009/02/20(金) 03:13:07 ]
>>299
>(eval (cons 'progn list1))

すごいです。これでできました。
ありがとうございました。

303 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 05:52:44 ]
Scheme

(let ((list1 '((display "X") (display "Y"))))
 (map eval list1))
⇒XY(#<void> #<void>)

304 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 01:33:52 ]
(cons 1 '(2 3))
-> (1 2 3)

となりますが

(cons '(1 2) 3)
-> ((1 2) . 3)

になりますよね

今は (append '(1 2) '(3)) と書いてますが
(cons 1 '(2 3)) に比べて冗長だと感じます
もっと良い書き方はありますか?

305 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 01:51:17 ]
書き方というか、片方向リストの仕様だから

306 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 03:11:26 ]
(define (wahacons a b) (append a (list b)))
(wahacons '(1 2) 3)

307 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 05:12:06 ]
>>305
仕様ですか…。
>>306
関数を書いてしまえば良かったんですね
ありがとうございます

308 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 06:25:59 ]
>>307
quasiquoteは?

> (define x '(1 2))
x
> `(,x 3)
((1 2) 3)

309 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 06:28:27 ]
肝心な部分コピペし忘れとかどうなのよ、俺……orz

> `(,@x 3)
(1 2 3)

310 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 23:02:45 ]
Luaスレがschemeネタで盛り上がってるw

311 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:35:49 ]
ちょっと見てくルア



312 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 01:21:09 ]
見てきたけど、あんまり面白い流れでも無かった。
速いなら実装を参考にしよう、とか建設的な意見が出る訳でもなく、
単にSchemeイラネ、だし。

313 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 04:20:15 ]
括弧うぜえとか。

314 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 09:18:44 ]
Schemeは作るの簡単とか。

315 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 09:36:45 ]
>>312
Luaってのはどういう言語かもよく知らないんだが、
処理系は結構よくできているみたいで遅くはないよ。
shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=all&box=1

316 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 14:35:16 ]
ypsilon軍団とgauche軍団どっちが多い?

317 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 14:36:35 ]
[gauche] 攻撃:52 素早さ:32 防御:27 命中:74 運:17 HP:258
[Ypsilon] 攻撃:88 素早さ:69 防御:92 命中:95 運:96 HP:144

gauche vs Ypsilon 戦闘開始!!
[Ypsilon]の攻撃 HIT [gauche]は154のダメージを受けた。
[gauche]の攻撃 HIT [Ypsilon]は1のダメージを受けた。
[Ypsilon]の攻撃 HIT [gauche]は173のダメージを受けた。
[Ypsilon]が[gauche]を倒しました(ラウンド数:2)。
魔法のMD5 - MD5バトル www.newspace21.com/mix/btl.php




318 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 14:38:19 ]
何という二番煎じ、お前は車輪の再発明でもしてろ

319 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 20:43:41 ]
車輪の再発明はハッカーの大好物

320 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 21:09:19 ]
>>315
遅くないのは知ってるけど、向こうの話題の発端がそういう話だった。

俺の場合、VCSのmonotoneで組み込まれてて知ったんだけど、
かなり評価高い言語だよね。Adobeとかも採用してるとか。

321 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 21:14:55 ]
Lispが早いとか



322 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:30:29 ]
CLでもSchemeでもいいので話題のHSPみたいに簡単にゲーム作れるソフトはありますか?

323 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:38:44 ]
>>322
CL/scheme はしらんが、どこぞのメーカは
ゲーム開発ベッドで専用 Lisp 使ってなかったっけ?


324 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:56:50 ]
>>322
LispやSchemeをゲーム制作に生かしている企業とかはあるみたいだけど、
誰でも分かり易いライブラリだの、特化した処理系だのはないんじゃない?
一応、SDLとかOpenGLとか使ってゲーム作るのは、大抵の処理系で出来ると思うけど。

というか、HSPが話題っていつの話だ。

325 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:41:31 ]
>>323
これね。
en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp

326 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 02:25:21 ]
LuaとかSquirrelは遅かったらC++に書き直せばいいだけだからな

327 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 02:48:48 ]
Lisp/Schemeも同じことができると思うんだが……。

328 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 03:01:43 ]
書き直す際に
実装が多いのが弱点ではないかと。


329 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 03:04:34 ]
Squirrelは書き直すのが楽そうだ

330 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 06:21:26 ]
StalinならCより速くなることもあるんじゃなかったっけ?


331 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 09:01:55 ]
Stalinって実際どんな感じ?



332 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 09:49:25 ]
StalinってCを出力するんでしょ?
Cより速くなる事は無いと思うけど…
Cで「人間が」書くより速くなる事ならあるかもしれないけど

333 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 10:13:08 ]
stalin ... それは、かつてソ連で大量虐殺をおこなった恐怖の支配者。。。
だから
非人間的な行動(コード)だろ?人間が書くCのコードより速いってことじゃ?

334 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 12:45:31 ]
Stalinは、人間がかくCコードよりかなり早い場合も多い。
ただし、継続が使えないとか制限が多いし、コンパイル時間がめっちゃかかる。

>>332
> Cより速くなる事は無いと思うけど…
> Cで「人間が」書くより速くなる事ならあるかもしれないけど
こんなこというやつ初めて見た。

335 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 13:00:30 ]
そうか?理論値と実情を別に語るのは良くあると思うが。

336 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 14:49:32 ]
だって、人間が書いたものではないCを含めて 「C言語より速い」
を語るなら、それって実質的にCコンパイラの最適化の差に帰着するじゃん。

コンパイラによってはCから (ほぼ)最小のアセンブリを生成できることだってできるし、
そうすると何をもって「Cのソース」とするのかって話になって、
「Cのソースを吐くんだからCより速いはずがない」 っていう議論は空虚じゃない?

まぁ言い出しておいてアレだけどスレチだな。すまん

337 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 15:49:25 ]
Stalinの話は定期的にでてくるけど、流れとしては・・・

「同じ問題を解くのに俺様の書いたCよりXXにあるStalinのコードの方が速かった!」
「でも俺様のCのコードがヘボいことはありえない!そんなことは考えられない!」<- これが間違い
「Stalinはどんな魔法を使ってるんだ!スゲーよStalin!」

一部で盛り上がるけどスルーする人も多い。
同じ速度を出すのにStalinを使った方が簡潔に短時間で書けるというのはあると思う。
だからあれほどコンパイル時間がかかってもユーザーは気にしないんじゃないかな。



338 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 17:31:09 ]
まぁStalinはある種の一発モノだからな。
研究とか勉強の材料としてはすごいけど、プロダクションでは使えないから
盛り上がるのは一部にとどまる。

俺は盛り上がった派だけどw
最適化の解説の論文は勉強になった

339 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 21:26:10 ]
schemeのマクロを使って 
見た目から括弧を無くしていくことって出来ますか? 
例えば括弧のない1 + 2を3と評価するとか 
for リスト do 処理 done 
みたいな構文がmapの意味で動くようにしてみたい 


340 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 21:34:29 ]
>>339
まえにどっかでみたことがある。srfiなんとか だったと思う。

341 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 01:17:57 ]
SRFI 49のI-expressionsは、インデントで構文木を表す表記法であって、
マクロは関係なかった気がするんだけど、違ったっけ?



342 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 06:02:54 ]
SRFI 49: Indentation-sensitive syntax
srfi.schemers.org/srfi-49/srfi-49.html

最高にキモい Lisp コードを書いてみよう with 100 行リーダーマクロ
lispuser.net/memo/lisp/2006-03-30-23-58.html

343 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 12:45:19 ]
つ Standard Lispの記号モード

344 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 15:44:53 ]
>>339
「schemeのマクロを使って」も
マクロ使用を囲う括弧と、マクロ名さえあれば中置記法もできます。
ただしこの3つをなくするのはRnRSではできない。
処理系によってはリーダマクロをサポートしているのでそれを使うと可。

345 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 20:11:25 ]
なるほど、やはり出来ないのかー
リーダーマクロ、存在だけは知ってましたが
コンパクトでかっこいいSchemeで出来たらなぁって思いまして

昨日考えてたんですが、
Schemeには演算子の優先順位がないのが原因でしょうね
もし優先順位がつけば、括弧省略出来る
それはそれで、F#やらHaskellやらでみかける
パイプライン演算子みたいなのが定義出来たり、と夢が膨らむが
言葉に表せない大切な物が犠牲になってしまう気がします

>マクロ使用を囲う括弧と、マクロ名さえあれば中置記法もできます。
これ非常に興味あるんですが、どういうことでしょうか?

適当に試してはみたんですが、わかりません
(define-syntax plus
(syntax-rules ()
; ((x _ y) (+ x y))))
; ((x (_) y) (+ x y))))
; (((x _ y))(+ x y))))

Gaucheの拡張で優先順位を計算して括弧を省略ってページなら見つけましたが
そういった話でしょうか?


346 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 20:42:16 ]
こういうことじゃないの
(define-syntax calc
(syntax-rules (+ -)
((_ a + . rest) (+ a (calc . rest)))
((_ a - . rest) (- a (calc . rest)))
((_ a) a)
)
)
> (calc 1 + 10 - 5)
5

347 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 20:44:04 ]
5かよ

348 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 20:44:55 ]
> Schemeには演算子の優先順位がないのが原因でしょうね
> >マクロ使用を囲う括弧と、マクロ名さえあれば中置記法もできます。
> これ非常に興味あるんですが、どういうことでしょうか?
そうゆう reader を作ればいいじゃね?
作るだけだったら誰でも作れると思うし…


349 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 20:45:29 ]
>>345
俺は344じゃないけど、344の言ってることは違う。

344が言ってるのは、「一番その側のカッコがあれば」 ということ。
いちばん外側のカッコは、どう頑張ってもRnRSでは省略不可能。
しかし、一番外側のカッコとマクロ名を許容すれば、
そのマクロの引数を全部自力で解釈すれば、そういうことは可能ということ。

文字通り、言語をもう1つ作るようなもんだけど。



350 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 20:46:54 ]
× 一番その側
○ 一番外側

351 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 21:16:51 ]
>>344
これ面白いなぁ。
引き算は
(calc 1 - 2 - 3)
こう展開されてしまうから
(- 1 (- 2 3))
正しい値にならないね
けど、面白いからちょっと考えてみます

>>349
なるほど、勉強になります。
「マクロ使用を囲う括弧と、マクロ名さえあれば」
というのは、344氏の例でいけば、
一番外側の()とマクロ名であるcalcっていう意味なわけですね
そして、それより内側であれば、がんばり次第で自由自在だ、と。



352 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 21:51:26 ]
('A`)y-~

353 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 02:20:27 ]
そもそも、何で括弧なくしたいんだ?
知的好奇心満たしたいだけなら何も言わんが。

354 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 07:19:11 ]
Lisp Scheme初心者です。マグロウヒルの「プログラムの構造と実行」をテキストに
Schemeを勉強しようと思っています。
そこで皆様のアドバイスをお願いしたいのですが、どのScheme処理系がお勧めでしょうか?
あまりにもたくさんありすぎて判断できません。
OSはWindows XPです。よろしくお願いします。

355 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 08:44:21 ]
>>354
windows上で勉強目的なら統合環境のほうが楽だろうしPLT schemeで良いんじゃないかな。
さもないなら、linux上でemacs+gauche(日本語の本があるから)とかでも良いように思うん
だけどね。

356 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 15:03:43 ]
>>338
stalinがダメなら
記述力と速度を同時に達成できるのって
ocamleぐらい?

357 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 16:11:06 ]
GCの停止時間がなくて
記述力も同時に達成できるのはC++しかないんだぜ

358 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 16:19:51 ]
確か2月前半ぐらいに
comp.lang.lisp
でreadable なlisp -> C 変換の話がでてたはずなのに見つからない


359 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 16:55:36 ]
C++はOOPの振りをした関数型言語だからな

360 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 17:34:58 ]
>>359
テンプレートで遊ぶ分にはそうだけどな

361 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 18:16:37 ]
OOPは言語関係ねーす



362 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 18:20:23 ]
c++でoneceonlyマクロって書けるんだろうか
前にoneconleyできない関係で何度も代入評価されてる
「そんなエラー絶対みつかんないだろう」ってエラーがboost関係で報告されてた

363 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 19:39:11 ]
>>353
どっちかっていうと実用的な理由
 ・タイプ量を減らしたい
 ・括弧がネストすると、対応が激しくおいづらい

364 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 19:48:59 ]
emacsを使えばそんなこと屁でもないな
むしろ()がある方がタイプ量が減るし、移動が楽ってぐらいになる
逆にエディタの支援が無いとなるとなるほどそれは確かに致命的だ

365 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 20:09:55 ]
エディタの機能でどうのこうのっていうのは
言語の話とは別のような・・
俺もemacsは使ってるが

>()があるほうがタイプ量が減る
それはない
letよりlet1のほうが読みやすいし打ちやすい

366 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 20:26:16 ]
>>363
実用的な理由で括弧を消すのはないだろー。
前者の理由なら、そのために高階関数やマクロがある。
後者の理由なら、そのためにエディタの支援機能がある。
というか、インデントで対応を追うのが普通。

まあ、実際にやってみて、構文を増やす度に複雑化する、
仕様やリーダーマクロのメンテにうんざりしてみれば、
その辺良く分かるとは思うけど。

367 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 20:34:54 ]
実用ってことはコードを編集することを含むだろう?
ならエディタは関係あるじゃないか

368 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 20:52:06 ]
emacsの括弧うんぬんはいじる方の腕しだいで楽になる。

369 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 20:56:54 ]
emacs はこのへんを組み込んでるかどうかでも全然ちがうよ。
1. insert-parentheses を使ってるかどうか
2. show-paren-mode を使ってるかどうか
3. transient-mark-mode を使ってるかどうか

370 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 20:57:00 ]
>>365
プログラムのコードのタイプ量は減るだろうけど、
編集作業全体のタイプ量は驚きの増加量、って感じになる気がするよ。
S式単位での編集を使わないと、移動に掛かる手間が段違い。

371 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 21:03:44 ]
emacs userは1匹見ると10匹いると思え



372 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 21:06:15 ]
>>371
ごきぶりみたいにいうな にがわらひ
370みたいなべてらんもいるけど、C-F C-B C-N C-Pもままならずマウスな初心者も
いるから。
viでもlispモードは普通にあるよ。

373 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 21:36:25 ]
>>371
むしろ1匹しかいない絶滅危惧種扱いの所が多いよ。

374 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 22:18:10 ]
google trendsをみても検索数の指数は減ってるけど、多い地域はアカデミックなところが
多いね。日本も亜米利加もね。

375 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 23:15:14 ]
俺ベテランじゃなくて異端。
viper-modeで、viとEmacs両方のキーバインドを同程度に使う変態。

376 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 23:19:42 ]
vipperかお?

377 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 23:22:13 ]
お じゃない。

378 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 23:27:08 ]
>>375
viper-modeかぁ。15年以上起動したことがない。笑い

379 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 23:31:02 ]
>>375
   ___l___   /、`二//-‐''"´::l|::l       l! ';!u ';/:::l ', ';::::::l ';:::::i:::::
   ノ l Jヽ   レ/::/ /:イ:\/l:l l::l   u   !. l / ';:::l ', ';:::::l. ';::::l:::::
    ノヌ     レ  /:l l:::::lヽ|l l:l し      !/  ';:l,、-‐、::::l ';::::l::::
    / ヽ、_      /::l l:::::l  l\l      ヽ-'  / ';!-ー 、';::ト、';::::l:::
   ム ヒ       /::::l/l::::lニ‐-、``        / /;;;;;;;;;;;;;ヽ!   i::::l:::
   月 ヒ      /i::/  l::l;;;;;ヽ \             i;;;;;;;;;;;;;;;;;;;l   l::l:::
   ノ l ヽヽノ    /:::l/:l /;;l:!;;;;;;;;;',               ';;;;;;;;;;;;;;;;;ノ    l:l::
      ̄ ̄    /::::;ィ::l. l;;;;!;;;;;;;;;;;l            `‐--‐'´.....:::::::::!l
   __|_ ヽヽ   /イ//l::l ヽ、;;;;;;;ノ....      し   :::::::::::::::::::::ヽ /!リ l
    | ー      /::::l';!::::::::::::::::::::  u               ', i ノ l
    | ヽー     /イ';::l          ’         し u.  i l  l
     |       /';:';:!,.イ   し    入               l l U
     |      /,、-'´/ し      /  ヽ、   u    し ,' ,'  l
     |        /l し     _,.ノ     `フ"       ,' ,'  ,ィ::/:
     |       /::::::ヽ       ヽ    /     し ,' ,' / l::
     |      /::::::::::::`‐、 し      ',  /    u   ,、-'´  l,、-
     |      ``‐-、._::::::::::` ‐ 、     ',/       , -'´`'´ ,-'´
     |      _,、-‐'"´';:::::::::イ:l';:::` ‐ 、._____,、-‐'"´  u /
   | | | |    \ l::/ l::::::/リ ';:::::lリ:::::l';:::l l:l:::::l\  u /
   | | | |

380 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 23:56:13 ]
>>375
viperモードたまに使うけど、完全に終了させる方法教えて下さい。
viper-go-away しても別のファイル開いたらまたviperになってて、
仕方ないからemacs毎再起動してる。

381 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 02:13:24 ]
>>380
せっかくなので、ソースコードを読んで原因を探ってきました。

viper-go-awayを呼ぶと、viper.elのviper-remove-hooksで、
仕掛けていた各メジャーモードのフックを解除していくのですが、
コードを見ればお分かりの通り、とても素敵なバグがありまして、
find-file-hooksとかは完全スルーです。

なので、自分でコードを修正するか、本家にフィードバックするか、
俺のようにVIPER常駐野郎になるか選んでください。



382 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 04:40:02 ]
と思ったんだけど、追加で調べていったら、
デフォルトのメジャーモードを元に戻さないってバグもあって、
これが本筋っぽい。CVS最新版では修正されてる。
↓を.emacsに追加でひとつ。

(defadvice viper-go-away (after revert-default-major-mode activate)
(setq default-major-mode 'fundamental-mode))

383 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 08:37:29 ]
maximaの細かいbugが未だに放置なのは
common lispの問題なんだろうか
schemeで書かれてるならbugは少なくなるんだろうか

384 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 11:34:14 ]
妄想はそのくらいに

385 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 19:45:52 ]
もともと"Common Lisp"じゃないものをGCLに、そして"Common Lisp"に書き直したからじゃない?
最初から"Common Lisp"で書かれていたら違っていたかも
Maxima使ってないからよくわからないけど

386 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 23:21:25 ]
質問。この2つに違いってありますか?

(define (f x)
(define g 10)
(+ x g))

(define (g x)
(let ((h 10))
(+ x h)))

387 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 23:29:49 ]
5.2.2 internal definitionsに変らないと書いてある。

> A <body> containing internal definitions can always be converted
> into acompletely equivalent letrec expression.

388 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 23:45:33 ]
(define (g x)
 (letrec ((h 10))
  (+ x h)))
となら同じ、が正しいのでは?
letとletrecは違う
この例はたまたまコンビネータ式が束縛されているに過ぎない
(正確には式が束縛されているわけではないけど)

389 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 23:53:51 ]
質問の意図によるだろうけど
最終的な機械語に落とす段階では同じコードになる

390 名前:388 mailto:sage [2009/02/26(木) 23:57:23 ]
とはいったものの、束縛する式が1つならSchemeレベルではletとletrecは等価ですね

391 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 00:01:31 ]
>>387
ありがとうございます
自分の知らない、
何か違う意味があるんだろうと思って質問したんですが
letrecと同じ意味なんですね



392 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 00:01:49 ]
おっちょこちょいですね。

393 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 00:04:11 ]
>>391
>>386の例ではletで問題ない。

394 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 00:11:24 ]
>>393
了解です。Schemeってシンプルですね。ありがとうございます

395 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 00:20:22 ]
>>387
編集ミスった。
acompletely→a completely

否定のa-に見えてしまう すまん

396 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 10:00:52 ]
さしずめ「うは宇宙のう」

397 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 21:31:01 ]
>>382
遅くなったけどありがとう。これでviperモードと仲良く暮らせそうです。

398 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 08:07:26 ]


399 名前:デフォルトの名無しさん [2009/02/28(土) 09:35:38 ]
399

400 名前:デフォルトの名無しさん [2009/02/28(土) 09:36:03 ]
400

401 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 18:05:35 ]
shibuya.lisp ストリーミング中!
って今ごろ気付いたorz








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<92KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef