- 1 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 21:41:07 ]
- lispを触ってみたい入門者のQ&A
初心者のQ&A 本スレでは恥ずかしくて聞けない人のQ&A 本スレは高度すぎて割り込めない人のQ&A linuxでなくてwindowsでやりたいんですが・・・Q&A lispを使用してC#やJAVAの代替にするための方法(おまけ) ま、ゆっくりたりましょう。 「いいものの本質は、いかなる時代においても変わらない」byパワーズ (list (url pc8.2ch.net/test/read.cgi/tech/1101386936/l50 :part 1) (url pc11.2ch.net/test/read.so/tech/1140012484/l50 :part 2))
- 830 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 22:54:23 ]
- >>829
slimeのビデオって何か知らないけど、、 「#<HASH-TABLE :TEST EQL :COUNT 0 {ACEED81}>」は手で入力したの? 「#<」ってのは read して元に戻らないものを表示するための記号。 (もとに戻るのは配列とかリストとかね) よって、手で入力したんだとしたら何か勘違いしてるんだと思う。
- 831 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 23:48:25 ]
- >>830
> >>829 > slimeのビデオって何か知らないけど、、 slimeのビデオです(サイズ150MBほどあります)。 ttp://common-lisp.net/movies/slime.mov これによると CL-USER> #<HASH-TABLE :TEST EQL :COUNT 0 {ACEED81}> の後に CL-USER> (eq #<HASH-TABLE :TEST EQL :COUNT 0 {ACEED81}> #<HASH-TABLE :TEST EQL :COUNT 0 {ACEED81}>) T こんなことしてるんですが 私の環境ではコケてしまいます。
- 832 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 14:01:23 ]
- 829の勘違いというかビデオを理解していないで終了。
- 833 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 15:10:34 ]
- 830を1兆回読むべきだろうな
- 834 名前:810 mailto:sage [2007/11/27(火) 19:27:26 ]
- 原著者の Peter さんに勢いで
「日本のフォーラムに翻訳を投下したいんだけど許可くれ」 ってメールしてみたんだけど、数日経った今日返信キタ 日本語化の動きは既にあるんで グループを手伝うかどうかは君に任せるよ、とのこと
- 835 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 21:29:18 ]
- 829です。
>>830 手で入力しなおして気付きました。 >>832 > 829の勘違いというかビデオを理解していないで終了。 はい、理解してませんね もうちょっと勉強します。 >>833 > 830を1兆回読むべきだろうな さすがに1兆回はw でも3回ほど読み直しました。 Emacs側の設定 face? mouse? 見直してみます。 みなさんコメントありあがとうございました。 お騒がせしました。
- 836 名前:デフォルトの名無しさん [2007/11/27(火) 22:15:54 ]
- >>834
その翻訳グループの詳細plz
- 837 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 01:21:11 ]
- なんか、ひどい言われようだな。
slimeの#<で始まるのは、手入力やC-yで張ったものではないと思われます。 面倒くさいので、videoは見ていませんが。 私の環境では、 > CL-USER> (make-hash-table) > #<HASH-TABLE :TEST EQL :COUNT 0 {ACEED81}> の、返り値表示の上にカーソル置いてEnter、若しくはマウスで中クリックを することによって、#<で始まる文字列が新規のプロンプト上にコピーされます。 この文字列は、lispのobjectとして評価可能です。 eqで比較も出来ます。 ちなみに、マウスの右クリックでメニューを出すと、色々選べて面白いです。
- 838 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 01:57:25 ]
- >>837
どこがひどい言われようなんだ? 質問者の方に問題ありすぎで、829のような質問じゃ仕方ない流れだろう。
- 839 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 18:59:01 ]
- 流れをぶった切ってしまって申し訳ないのですが、ちょっと質問させてください。
たとえばPythonにはrange関数があって、0〜10のリストとか簡単に作れますが、 Common Lispにはrangeのような関数はないのでしょうか? そのようなリストが欲しければmake-sequenceでリスト作ってdolistで回して初期化とかそんな感じなんですかね??
- 840 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 19:25:37 ]
- loop はどうかね?
(loop for i from 0 below 10 collect i)
- 841 名前:839 mailto:sage [2007/11/28(水) 21:27:44 ]
- >>840
おおお、ありがとうございます! loopマクロでできないかチラッと見てみたことはあったんですが、 浅く踏み込んだだけだったのでbelowを知りませんでした。 前々から気になっていたイディオム(?)なのでスッキリしました。 どうもありがとうございます。
- 842 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 22:39:55 ]
- >>841
www.unixuser.org/~euske/doc/cl/loop.html
- 843 名前:839 mailto:sage [2007/11/29(木) 01:58:10 ]
- >>842
どうもありがとうございます。 勉強してきます。 loopマクロって結構面白いですね。
- 844 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 03:06:35 ]
- マクロの活用による典型的なミニ言語だよね。
みんなが好き勝手にこんなもの作りだしたら煩雑になってたまらん、って 思いとどまったのがschemerでいいじゃん別に便利なんだから、って 開き直ったのがlisperなんじゃないかと個人的には理解している。 LOOPマクロマンセー
- 845 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 17:15:09 ]
- 829です。
>>837 > の、返り値表示の上にカーソル置いてEnter、若しくはマウスで中クリックを > することによって、#<で始まる文字列が新規のプロンプト上にコピーされます。 私の環境ではこれがうまく機能していませんでした。 そこで、slimw-2.0を入れてみたところ出来るようになりました。 > > この文字列は、lispのobjectとして評価可能です。 > eqで比較も出来ます。 そういう事なのですね。 > > ちなみに、マウスの右クリックでメニューを出すと、色々選べて面白いです。 これから試してみます。 コメントありがとうございました。
- 846 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 14:24:01 ]
- 日本語文字コードの変換とかPOP3とかMD5とかGUIとか
そういう実用的なライブラリはあるんでしょうか・・・ 有象無象に見える多数の処理系に様々な機能が分散して るように見えて何がなんだかわかりません・・・。 今までPerlとTclを使ってやってたことを、Lispでやりたいんですが・・・
- 847 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 14:47:51 ]
- >>846
www.cliki.net/index あたりで探してみたら? ASDFが使える処理系なら、 asdf-installをガンガンインストールすればいいので手間もかからんし。 ただし、もともとテキスト処理のために作られた言語でないので、 そこら辺はperlのような充実っぷりを期待しても無駄です。 GUI環境の整備も主たる言語の中では相当遅れていると言って良いです。 McCLIMも最近ようやくあまり落ちなくなったという程度だしw
- 848 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 19:08:42 ]
- >>846
847の書いてる通り。 商用のAllegroCLなら、さすがに大分まし、だよ。
- 849 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 00:10:26 ]
- オープンソースでフリーな商用CLに期待しましょう
- 850 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 02:30:21 ]
- どうやって商売成り立たせんの、それ。
- 851 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 13:50:46 ]
- MySQL方式かな
- 852 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 20:46:35 ]
- いちおう、最後の砦として、ffi というのもあるけど、
なんでもかんでもリンクし始めたら、lisp を使ってる意味が無くなるかな。
- 853 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 23:31:43 ]
- 質問です。CLの正しいプログラムexprは
(or (atom expr) (symbolp (car expr)) (eq 'lambda (caar expr)) を必ず満たしますか?
- 854 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 23:44:30 ]
- >>853
正しいプログラムってどういう意味? 正しい式の意味?
- 855 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 23:55:41 ]
- >>854
(1 2 3)のようなものを式と呼ぶのか分かりませんが、 要するにevalを適用してエラーが出ないもののことです。 あと括弧閉じ忘れてますねすいません
- 856 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 05:53:16 ]
- >>853
貴方の意図を汲み取るのが非常に難しい。 とりあえず答えてみると、 exprの部分を例えば(list 2 3 4)で置き換えた場合、 その式を満たしていないことになるけど、 それは自明だからたぶん意図を外しているのだろう。 一々、S式で書かないで、言葉で説明してみたら?
- 857 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 07:51:02 ]
- >>856
予想すると、>>853はlisp処理系をlispで書こうとしているのでは。 知りたいのはフォームの定義と見た。 で、CLHS: Section 3.1.2.1 を見ると、>>853の定義でだいたい 当っているような気がする。
- 858 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 09:25:01 ]
- (,,゚Д゚)∩先生、S式って何ですか?
(´ー` ) >>853 ( ゚д゚) …… ( ゚д゚ )
- 859 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 09:59:34 ]
- 処理系を書くとか、そういうのって適当にやると結局後で困るんだよね。
最初から定義を見て形式保ってやっていく方がいい。
- 860 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 19:19:23 ]
- そうだLispを作ろう
↓ 第一級でないオブジェクトってなんなの? ↓ リストの先頭に現れるらしい ↓ むしろリストの先頭に第一級オブジェクトが現れるのがおかしい ↓ リストは全部スペシャルフォームってことにすれば…… ↓ ……リストの先頭は必ずシンボルになる ↓ それなんてCL ←今このへん
- 861 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 19:22:00 ]
- オブジェクトはすべて平等ですよ。
第一級オブジェクトという考え方自体がオブジェクト差別主義に毒されてます。
- 862 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 19:24:24 ]
- ウィンストンのlispの3版に
lispでlisp処理系を作るとか そういうのが載っていそうな気がする
- 863 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 21:55:00 ]
- 残念でした〜。CLではシンボル以外にlambda式もフォーム先頭にこれるんだな。
- 864 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 21:57:49 ]
- ああそれはわかっているのか、ごめん。
- 865 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 21:58:02 ]
- >>863
>>853にはちゃんとそう書いてありますね。 lispでlispを作るって一見無駄に見えますけど、 xyzzy lispでxyzzy schemeを作ったら便利そうですね。 とっくの昔に誰かが書いてそうですが。
- 866 名前:デフォルトの名無しさん mailto:sage [2007/12/06(木) 01:47:04 ]
- なぜ便利そうだと思ったのかkwsk
|

|