Lisp Scheme Part19
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2008/01/14(月) 00:14:56Part18: 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/
Part9: ttp://pc2.2ch.net/test/read.cgi/tech/1069594582/
Part8: ttp://pc5.2ch.net/tech/kako/1058/10582/1058263391.html
Part7: ttp://pc5.2ch.net/tech/kako/1042/10421/1042167213.html
Part6: ttp://pc3.2ch.net/tech/kako/1031/10315/1031560687.html
Part5: ttp://pc3.2ch.net/tech/kako/1023/10230/1023091882.html
Part4: ttp://pc.2ch.net/tech/kako/1016/10162/1016211619.html
Part3: ttp://pc.2ch.net/tech/kako/1008/10082/1008220265.html
Part2: ttp://pc.2ch.net/tech/kako/1002/10025/1002584344.html
Part1: ttp://piza2.2ch.net/tech/kako/987/987169286.html
0655デフォルトの名無しさん
2008/02/20(水) 21:44:42C/C++は習得済みで業務で使用してます。
Schemeでプロダクトコード書くわけではないので。
0656デフォルトの名無しさん
2008/02/20(水) 21:58:03だからやりたい
とか言う程の物さ
0657デフォルトの名無しさん
2008/02/20(水) 22:16:40言語の話とライブラリの話がごっちゃになってないかな。
言語の特徴としては、再帰的な処理の記述とか、
メタなプログラミングが楽とか色々あるけど。
そういうことが知りたいんじゃないんだろうし。
Schemeのアプリケーションって言われても、
ウェブアプリケーションサーバ書いてる人もいれば、
.NET向けのアプリケーションを書くために処理系を実装してたり、
日常的に使うスクリプトをSchemeで書いてる人もいたりして様々。
0658デフォルトの名無しさん
2008/02/20(水) 22:22:45>再帰的な処理の記述とか、 メタなプログラミング
ここが勉強したいと思ったきっかけです。
>Schemeのアプリケーションって言われても、
>ウェブアプリケーションサーバ書いてる人もいれば、
>.NET向けのアプリケーションを書くために処理系を実装してたり、
>日常的に使うスクリプトをSchemeで書いてる人もいたりして様々。
色々できるんですね。ありがとうございます。
0659デフォルトの名無しさん
2008/02/20(水) 22:30:23ttp://practical-scheme.net/index-j.html
にある文章をいくつか読んでみたらどうだろう。ここのスレの人とかが、
何故敢えてLispやSchemeを使うのか、理解する助けになると思う。
0660デフォルトの名無しさん
2008/02/20(水) 22:32:48SchemeよりEmacs Lispの方が楽しめると思う。
CL使わないとLispらしさのかけらもないコードになっちゃうけど。
0661デフォルトの名無しさん
2008/02/20(水) 22:52:37>言語の特徴としては、再帰的な処理の記述とか、
>メタなプログラミングが楽とか色々あるけど。
>そういうことが知りたいんじゃないんだろうし。
とオレも思ったのだが
>>658
>>再帰的な処理の記述とか、 メタなプログラミング
>ここが勉強したいと思ったきっかけです。
という意外な応答
真意がつかめない
0662デフォルトの名無しさん
2008/02/20(水) 22:58:39Larcenyでtraceは使えるんですが、再帰関数をtraceしても
再帰的にtraceしてくれません
何かうまい使い方があるのでしょうか?
0663デフォルトの名無しさん
2008/02/21(木) 00:40:01読んで見ます。
>>661
C++でテンプレート使ってライブラリ書きたいんですが
再帰とメタファンクションを使わなければいけないんですよ。
で、そもそも再帰とベースとする言語として関数型言語
を覗いたわけです。
0664デフォルトの名無しさん
2008/02/21(木) 07:29:08そうなんだよね、traceがちょっと他と違っている。
libにtrace.schがあるんでこれをハックしてみるとか。
0665デフォルトの名無しさん
2008/02/21(木) 12:55:30Gimpのスクリプトで遊んでみるのもいいかも
0666デフォルトの名無しさん
2008/02/21(木) 14:52:33やっぱりあれだけ赤が入ると無理だったのでしょうか。
0667デフォルトの名無しさん
2008/02/21(木) 16:23:220668デフォルトの名無しさん
2008/02/21(木) 17:23:120669デフォルトの名無しさん
2008/02/21(木) 17:24:080670デフォルトの名無しさん
2008/02/21(木) 17:49:470671デフォルトの名無しさん
2008/02/21(木) 18:54:27ナカーマ
象さん分かりやすいが、文法のリファレンスも欲しい今日この頃。
お勧めありますか?
0672デフォルトの名無しさん
2008/02/21(木) 19:05:40自分はA5用紙に印刷して綴じて常に携帯してる
ついでに電子辞書にもtxtファイルで入れてる
0673デフォルトの名無しさん
2008/02/21(木) 20:28:28カーとクダーでいいですか?
0674デフォルトの名無しさん
2008/02/21(木) 20:29:03thx 日本語訳あったんで落とした。
0675デフォルトの名無しさん
2008/02/21(木) 21:29:24おk
0676デフォルトの名無しさん
2008/02/21(木) 22:12:42漏れはネットのあちこち入門サイトにお世話になってるお
0677デフォルトの名無しさん
2008/02/21(木) 22:23:570678デフォルトの名無しさん
2008/02/21(木) 22:56:02Scheme勉強するのは楽しいです。
仕事の時間は無駄な時間に感じます。
0679デフォルトの名無しさん
2008/02/21(木) 23:04:030680デフォルトの名無しさん
2008/02/21(木) 23:17:53金をもらえるんだものね。
金なしでやる人が大勢いるようなことなら、誰も金を出すわけない。
0681デフォルトの名無しさん
2008/02/21(木) 23:25:36ようやって作ったScheme版で独立すれば?という夢ぐらいは持ちたいものだw
0682デフォルトの名無しさん
2008/02/21(木) 23:27:080683デフォルトの名無しさん
2008/02/22(金) 00:15:56CLは細かいところまでよくできてるっぽいし
見かけによらないものだなーと
0684デフォルトの名無しさん
2008/02/22(金) 00:50:01先頭の再と末尾の帰が!
0685デフォルトの名無しさん
2008/02/22(金) 00:52:27>CLは細かいところまでよくできてるっぽい
と思えない俺は異常かおrz
0686デフォルトの名無しさん
2008/02/22(金) 01:13:300687デフォルトの名無しさん
2008/02/22(金) 01:13:33Schemeみたいにsymbol-valueとsymbol-functionを統合しとけば良かったなあ
けど互換性を重視したから難しかったんだよ
そう言っておられたぞ。
0688デフォルトの名無しさん
2008/02/22(金) 01:35:56Gauche c-wrapperはswigみたいなもの?
なんでswigにしなかったの?
0689デフォルトの名無しさん
2008/02/22(金) 05:46:08へー、初耳だ。
どこで言ってたの?
0690デフォルトの名無しさん
2008/02/22(金) 09:35:15それでよし
0691デフォルトの名無しさん
2008/02/22(金) 09:37:24>symbol-valueとsymbol-function
CL最醜の汚点だと思う
0692デフォルトの名無しさん
2008/02/22(金) 11:14:06bitの井田さんのインタビューかな?
0693デフォルトの名無しさん
2008/02/22(金) 12:06:12ちなみに、funcallを書くのは面倒だけど
フォームの頭に構文の名前 (funcallやlambdaやifやマクロの名前) を必ず書きましょう
と考えると汚くはない
funcallが汚いんじゃなくて、funcallを省略できる設計が汚い
0694デフォルトの名無しさん
2008/02/22(金) 12:10:21SPECIAL変数付近の扱いはちょっと汚いかなと思う。
0695デフォルトの名無しさん
2008/02/22(金) 12:54:19関数とその他の値とを区別無くfirst class objectとして扱うコードを
書きたいときに柔軟性を制約する一因とはならないのだろうか?
0696デフォルトの名無しさん
2008/02/22(金) 12:58:11その話は関連する話ではあるけど、
symbolがsymbol-valueとsymbol-functionの二つ持つという話そのものから、
ちょっと離れていっていると思います。
一つしかない場合もその種の議論は成立するのですから。
>>694
スペシャル変数は、スレッドローカルな変数とか、
elispみたいなバッファーローカルな変数と同様の「パターン」で、
ある種のライブラリ、応用にはとても自然なeval拡張だと思う。
別の機構も考えられるけども、とてもLisp的だと思う。
(拡張というのはレキシカルスコープなevalに対して)
0697デフォルトの名無しさん
2008/02/22(金) 13:01:00そういう「特殊な」ことをやる場所ではfuncallを使う。
そういうとこへ関数を渡すときは #' を付けてましょう。
というのが CL 的発想だと思う。大きなプログラムの中での可読性を
考えれば、そんなに悪くないと思う。
純潔なSchemerには我慢できないだろうけど。w
0698デフォルトの名無しさん
2008/02/22(金) 13:29:54> 関数とその他の値とを区別無くfirst class objectとして扱うコードを
CLが違うのはシンボルにセルが2つあるのと関数を適用するときの特別扱いであって、
「区別無くfirst class objectとして扱う」こと自体は普通に書けるじゃん。
0699デフォルトの名無しさん
2008/02/22(金) 13:40:160700デフォルトの名無しさん
2008/02/22(金) 13:43:02>一つしかない場合もその種の議論は成立する
そうです
Schemeでも関数なのかマクロなのか判断できなくて困ることがある
CLを汚いと言えるほどSchemeは綺麗じゃない
変数と関数じゃなくて
コンパイル時と実行時とで名前空間を分ければいいのかな?
0701デフォルトの名無しさん
2008/02/22(金) 13:44:440703デフォルトの名無しさん
2008/02/23(土) 12:21:19>Gauche c-wrapperはswigみたいなもの?
そう、ヘッダファイルからスタブを自動生成して関数やデータやマクロなんかをGaucheで使えるようにするもの。
>なんでswigにしなかったの?
最初swigを見たとき、バインディングの作り方がよく分からなかったから。
あと、コンパイルとかInterfaceファイルを作るのが面倒そうだったから。
0704デフォルトの名無しさん
2008/02/23(土) 17:07:34この本はどのような人を対象としてるか読んだ人分かりますか?
なんかProlog的なコーディングをSchemeでもできるという紹介
文でしたが、これはScheme的ではない異色の内容なんですかね?
0705デフォルトの名無しさん
2008/02/23(土) 17:21:57言語プリミティブ的なものが応用対象だから。
0706デフォルトの名無しさん
2008/02/24(日) 17:18:06On LispでもPrologやってるし。
0707デフォルトの名無しさん
2008/02/24(日) 17:20:490708デフォルトの名無しさん
2008/02/24(日) 17:30:57ML/Haskellはパターンマッチ渡しがあるから、
論理型言語とは「項書換えシステム」で統一的な見方ができる。
The Reasoned Schemerはその点でも面白い。S式は面白い。
0709デフォルトの名無しさん
2008/02/24(日) 17:50:240710デフォルトの名無しさん
2008/02/24(日) 17:58:541> (apples peaches pumpkin pie) はrelではない。なぜならペアのリストではないから。
2> ((apples peaches) (pumpkin pie) (apples peaches)) はrelではない。ペアのセットではないから。
3> ((apples peaches) (pumpkin pie)) はrelですか? yes
4> ((4 3) (4 2) (7 6) (6 2) (3 4)) はrelですか? yes
どういうことなのかさっぱりわかりません。
0711デフォルトの名無しさん
2008/02/24(日) 18:02:25まだそこまで読んでない。
0712デフォルトの名無しさん
2008/02/24(日) 18:09:41;; カッコに全角を使うのは辞めてください。釣りかと思います。
0713デフォルトの名無しさん
2008/02/24(日) 18:15:06サンクス!そういうことか!
ていうか、章の始めで教わってんじゃん・・・1日悩んじまったorz
全角ゴメン。気をつけます!
てかP.121じゃなくてP.119だし・・・
0714デフォルトの名無しさん
2008/02/25(月) 19:07:240715デフォルトの名無しさん
2008/02/25(月) 19:39:240716デフォルトの名無しさん
2008/02/25(月) 19:40:14ecmaスレで聞けよw
0717デフォルトの名無しさん
2008/02/25(月) 20:31:440718デフォルトの名無しさん
2008/02/25(月) 20:35:09まあいいや
0719デフォルトの名無しさん
2008/02/25(月) 20:37:180720デフォルトの名無しさん
2008/02/25(月) 21:01:450721デフォルトの名無しさん
2008/02/25(月) 21:11:190722デフォルトの名無しさん
2008/02/25(月) 21:19:450723デフォルトの名無しさん
2008/02/26(火) 00:19:15チューリング完全性だけが重要なら、抽象化はどうでもいいはずだが、現実は違う
0724デフォルトの名無しさん
2008/02/26(火) 00:48:20JavascriptのクラスシステムはJavascriptで書かれてます。
次のバージョンからは組み込みになりますが。
prototype base object systemあたりでググってください。
0725デフォルトの名無しさん
2008/02/26(火) 13:22:52Go and get one!
Or better yet, make your own.
は
”先へ進んで、完璧を目指せ!
もっといいのは、自分の力でやることだ。”
という意味であってる?
0726デフォルトの名無しさん
2008/02/26(火) 22:17:26邦訳の「Scheme手習い」元吉文男、横山晶一訳
たぶん、7章の最後の文だと思うんだけど。
「自分で行って手に入れよ。
さもなくば、独自のものを作れ」
となっている。
0727デフォルトの名無しさん
2008/02/26(火) 22:34:52「ここで一休み、お菓子取ってきなよ♪
でなきゃ、自分で作ってみてはどうかな?」
という意味に取ったけど。
0728デフォルトの名無しさん
2008/02/26(火) 22:38:29全然違ってた。。
邦訳なんかあったんだ
まあ内容には関係ないからいいか
>>727
お菓子はないだろw
0729デフォルトの名無しさん
2008/02/26(火) 22:41:23いや、まじめに。だってクッキーの作り方書いてあるじゃん。
0730デフォルトの名無しさん
2008/02/26(火) 22:50:15その訳でクッキーのレシピはどうなってるの?
0731デフォルトの名無しさん
2008/02/26(火) 22:53:27ああ、あの囲みのコード?
おれはてっきりあれを自分で完成させろということかと思った。
アメリカンジョーク?
0732デフォルトの名無しさん
2008/02/26(火) 22:55:26あのコードをみて Make your own cokkies.ということかと・・・・
てか、度々「一休みしてお菓子食べなよ!マスタード忘れないようにNE!」
みたいなメッセージが出てきてるじゃん?
0733デフォルトの名無しさん
2008/02/26(火) 22:58:15クッキーのレシピがlambda式風に書かれている。
戒律風に訳されているので、この部分も戒律風にわざと訳したのかもね。
0734デフォルトの名無しさん
2008/02/26(火) 23:00:22(lambda ()
(焼く
(quote (180 度))
(quote (12 分))
0735デフォルトの名無しさん
2008/02/26(火) 23:02:47そんな風になってるのか。
0736デフォルトの名無しさん
2008/02/26(火) 23:02:510737デフォルトの名無しさん
2008/02/26(火) 23:03:450738デフォルトの名無しさん
2008/02/27(水) 01:17:17後半は、
「まだまだいいのがあると思うなら、自分で作ることだね」
0739デフォルトの名無しさん
2008/02/27(水) 01:45:50> A Food Preparation Place
0740デフォルトの名無しさん
2008/02/28(木) 10:57:55Seasoned Schemer
Reasoned Schemer
があるんだけど、Little Schemerだけ紙質が悪いんだが
何で?わら半紙みたいでツルツルしてない。
0741デフォルトの名無しさん
2008/02/28(木) 11:25:16それが一番しっくりくるかな
0742デフォルトの名無しさん
2008/02/28(木) 13:49:27学生用のテキストは安いのを作ることがある。
0743デフォルトの名無しさん
2008/02/28(木) 14:04:29ツルツル版もあるの?
0744デフォルトの名無しさん
2008/02/28(木) 14:05:50はげまるくーん
0745デフォルトの名無しさん
2008/02/28(木) 14:16:050746デフォルトの名無しさん
2008/02/28(木) 14:17:46ものがあったな。
0747デフォルトの名無しさん
2008/02/28(木) 20:41:320748デフォルトの名無しさん
2008/02/28(木) 23:13:03Cでスタックを使うところにヒープを使えば自然と思いつきそうなものだが
Schemeみたいな高級言語で教えるのとどっちが分かりやすいのかね
0749デフォルトの名無しさん
2008/02/28(木) 23:15:36ポインタはね。関数は無理なのよ。しかも定義を呼び出し関数内に書ける
のがいい。C++のBOOST_FOREACHに似てる感覚。
0750デフォルトの名無しさん
2008/02/28(木) 23:56:380751デフォルトの名無しさん
2008/02/29(金) 00:05:370752デフォルトの名無しさん
2008/02/29(金) 00:22:340753デフォルトの名無しさん
2008/02/29(金) 03:20:15巷ではJavaScriptって、高級低級で二分するなら低級のほうに入るのか?
0754デフォルトの名無しさん
2008/02/29(金) 03:29:40■ このスレッドは過去ログ倉庫に格納されています