1 名前:デフォルトの名無しさん [2011/07/06(水) 17:15:15.55 ] 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) (url pc11.2ch.net/test/read.so/tech/1181479267/l50 :part 3) (url pc11.2ch.net/test/read.cgi/tech/1201402366/l50 :part 4) (url pc11.2ch.net/test/read.cgi/tech/1215834213/l50 :part 5) (url pc12.2ch.net/test/read.cgi/tech/1234884136/l50 :part 6) (url hibari.2ch.net/test/read.cgi/tech/1270370267/l50 :part 7) □テンプレート置き場□ ttp://wiki.fdiary.net/lisp/ (id:guest pass:cl)
2 名前:デフォルトの名無しさん mailto:sage [2011/07/06(水) 18:51:29.38 ] ((お勧めの Common Lisp 処理系) (SBCL: www.sbcl.org/ :プラットフォーム Linux, Mac OS, Solaris, *BSD, Windows :開発 活発 :日本語 UCS-2, UCS-4, UTF-8, UTF-16, UTF-32, Shift_JIS, EUC-JP :特徴 一番お勧めのネイティブコードコンパイラ。) (CLISP: clisp.org/ :プラットフォーム Linux, Mac OS, UNIX, *BSD, Windows, etc. :開発 そこそこ活発 :日本語 UCS-2, UCS-4, UTF-8, UTF-16, ISO-2022-JP, Shift_JIS, CP932, EUC-JP :特徴 バイトコードコンパイラ。遅いがフットプリントが小さい。) (CMUCL: www.cons.org/cmucl/ :プラットフォーム Linux, Mac OS, UNIX, *BSD :開発 そこそこ活発 :日本語 UTF-8, UTF-16, UTF-32 :特徴 高速ネイティブコードコンパイラ。SBCL の元になった。) (Clozure CL: trac.clozure.com/ccl :プラットフォーム Mac OS, Linux, FreeBSD, Solaris, Windows :開発 そこそこ活発 :日本語 UCS-2, UTF-8, UTF-16, UTF-32, CP932、EUC-JP :特徴 元々商用のネイティブコードコンパイラ。))
3 名前:デフォルトの名無しさん mailto:sage [2011/07/06(水) 19:12:33.30 ] ((商用の処理系) (Allegro CL: jp.franz.com/index.html :プラットフォーム Linux, Mac OS, FreeBSD, Solaris, AIX, Windows :開発 最大手 :日本語 UTF-8, UTF-16, ISO-2022-JP, Shift_JIS, CP932, EUC-JP :特徴 お高いがもっとも頼れる。申し込みが必要だがFree Express Editionあり。) (LispWorks: www.lispworks.com/products/lispworks.html :プラットフォーム Linux, Mac OS, FreeBSD, Solaris, HP-UX, Windows :開発 半年にいっぺんくらいアップデート :日本語 UCS-2, UTF-8, ISO-2022-JP, Shift_JIS, EUC-JP :特徴 IDEベース。フリー版はconsセルの上限が来るとダイアログがでる。 SDLとかで遊ぶとすぐに引っかかる。) (Corman CL: www.cormanlisp.com/index.html :プラットフォーム Windows :特徴 Windows専門の処理系。Allegro CLやLispWorksに比べると安価。)) ((その他) (ABCL: armedbear-j.sourceforge.net/ :特徴 JavaVM 上で動く。JavaVM のバイトコードを生成。) (GCL: www.gnu.org/software/gcl/ :特徴 日本発 Kyoto Common Lisp の直系。) (ECL: ecls.sourceforge.net/ :特徴 Lisp->C コンパイラ。組み込み可能。こちらもKCLの系譜。))
4 名前:デフォルトの名無しさん mailto:sage [2011/07/06(水) 19:21:15.55 ] ■ANSI Commn Lisp 仕様関係 HyperSpec (CLHS) www.lispworks.com/documentation/HyperSpec/Front/ Common Lisp the Language, 2nd Edition (CLtL2) www.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html lispdoc lispdoc.com/ Common Lisp Quick Reference clqr.berlios.de/index.php ■日本語のチュートリアル xyzzy Lisp Programming ttp://www.geocities.jp/m_hiroi/xyzzy_lisp.html ファイヤープロジェクト: Common Lisp ttp://www.fireproject.jp/feature/common-lisp/index.html LISP and PROLOG ttp://home.soka.ac.jp/~unemi/LispProlog/ Lisp 一夜漬け ttp://www.haun.org/kent/lisp1/ Lisp入門 ttp://wisdom.sakura.ne.jp/programming/lisp/index.html
5 名前:デフォルトの名無しさん mailto:sage [2011/07/06(水) 19:28:45.96 ] ■進んだ話題が欲しい人に (和文) ja.wikipedia.org/wiki/Common_Lisp www.komaba.utmc.or.jp/~flatline/onlispjhtml/ ttp://lispuser.net ttp://www.geocities.co.jp/SiliconValley-SanJose/7474/index.html (英文) wiki.alu.org:80/ groups.google.co.jp/group/comp.lang.lisp www.cliki.net/index www.common-lisp.net cl-cookbook.sourceforge.net/ planet.lisp.org/ www.gigamonkeys.com/book/ letoverlambda.com/ landoflisp.com/ www.psg.com/~dlamkins/sl/cover.html www.cs.cmu.edu/~dst/LispBook/index.html
6 名前:デフォルトの名無しさん mailto:sage [2011/07/06(水) 19:34:24.68 ] ((おまけの処理系 (POPLOG: www.cs.bham.ac.uk/research/poplog/freepoplog.html Lisp, Prolog, ML のコンパイラ) (WCL: wcl.kontiki.com/ Shared Library として使える Lisp) (Movitz: common-lisp.net/project/movitz/movitz.html フルスクラッチの Lisp OS) (CADR LispM: www.heeltoe.com/retro/mit/mit_cadr_lmss.html MIT で使われていた LispM のソースを公開したもの))) ((その他のリンク (Common Lisp JP: practical-scheme.net/chaton/common-lisp-jp/ チャット) (lush: lush.sourceforge.net/ Lisp Universal Shell) (「実践 Common Lisp」非公式サポートページ: ttp://pcl.lispuser.net/) (Paul Graham の ANSI Common Lisp: www.pej-hed.jp/washo/288.html Common Lisp の 参考書を探しているならこれ一択)))
7 名前:デフォルトの名無しさん mailto:sage [2011/07/06(水) 19:44:12.30 ] テンプレ終わり。以上、漏れ、ミス等あったら指摘よろしく。 この長いテンプレを貼るのも二度目だと思うが、テンプレ代わりに ttp://wiki.fdiary.net/lisp/ ttp://cl.cddddr.org/ 書いとくだけじゃ駄目なん? Lisp Schemeスレみたいに。
8 名前:デフォルトの名無しさん mailto:sage [2011/07/06(水) 21:44:00.33 ] >>1 乙です。 > ま、ゆっくりたりましょう。 ってなってるけど、「ゆっくり『や』りましょう」かな テンプレ置き場から間違っているみたいだけど テンプレは短くてもいいと思う
9 名前:デフォルトの名無しさん mailto:sage [2011/07/07(木) 00:48:28.48 ] 長いと貼るのが大変だから短くていいと思う。 できるだけスレ立てする人の負担を軽くすべし。
10 名前:デフォルトの名無しさん mailto:sage [2011/07/08(金) 23:31:48.61 ] >1乙
11 名前:デフォルトの名無しさん [2011/07/09(土) 09:50:21.47 ] >>1 スレ立て乙
12 名前:デフォルトの名無しさん [2011/07/09(土) 22:37:19.25 ] しかしネタがないage
13 名前:デフォルトの名無しさん mailto:sage [2011/07/10(日) 00:10:47.65 ] じゃあ、そろそろ出そうなCCL 1.7の話でも。 - Darwin/ppcのサポート終了の予定 - 付属のASDFが2.016になった - ASDF-Installの同梱終了。Quicklispを代わりに推奨 - CCLの32-bitのバイナリが64-bit Windowsでも動くようになった - ARMへの対応が大幅に前進 - *gensym-counter*がスレッドローカルからグローバルに - ccl:*disassemble-verbose*追加
14 名前:デフォルトの名無しさん mailto:sage [2011/07/10(日) 00:17:18.16 ] あと、trunkではアセンブラ周りとかに色々手が入っていて、 FASLのバージョンも上がってイメージやFASLの互換性が無くなった。 1.7に入るかは不明。
15 名前:デフォルトの名無しさん mailto:sage [2011/07/12(火) 14:30:35.80 ] exe化したcommon lisp処理系のスクリプトを配布したいとき、 (動作環境はwindows 7/vistaです) ライセンス的に緩いものはどれでしょうか?
16 名前:デフォルトの名無しさん mailto:sage [2011/07/13(水) 01:22:23.15 ] * SBCL - パブリックドメイン(一部BSD) * CMUCL - パブリックドメイン * CLISP - GPL(附則あり) * CCL - LLGPL * ECL - LGPL * ABCL - GPL(附則あり) だから、実行形式作る分には好きなの使えば良いと思う。 むしろ気を付けるべきなのは、処理系よりも使うライブラリじゃないか?
17 名前:デフォルトの名無しさん mailto:sage [2011/07/16(土) 09:14:00.44 ] #:keyword はキーワードだと思うのですが、 :keyword と書くのと何か違うのでしょうか?
18 名前:デフォルトの名無しさん mailto:sage [2011/07/16(土) 11:39:48.66 ] >>17 キーワードではない #: introduces an uninterned symbol whose name is symbol-name. Every time this syntax is encountered, a distinct uninterned symbol is created. The symbol-name must have the syntax of a symbol with no package prefix.
19 名前:デフォルトの名無しさん mailto:sage [2011/07/16(土) 11:39:56.49 ] >>16 それは処理系のライセンスでしょ? CLの場合、実行形式作ると処理系も含まれるよね? まあ実行形式は別のライセンスになってるケースもあると思うが。
20 名前:デフォルトの名無しさん mailto:sage [2011/07/16(土) 13:53:16.43 ] あるシンボルがtype-specifierかどうかは どうすれば知ることが出来ますか?
21 名前:デフォルトの名無しさん mailto:sage [2011/07/16(土) 14:03:59.08 ] >>19 それはひょっとしてギャグで言っているのか。 処理系のライセンスが、例えばパブリックドメインとかBSDとかMITなら、 実行形式にカーネル含めようが何しようが問題ないのは分かるよね? あとは、LLGPLというのは、まさにその、Lisp特有のリンク事情について定義を明確にした、 LGPL+附則というライセンスだし、CLISPなどの「GPL+附則」の附則部分は、 実行形式を作ったりするときの例外事項の規定の訳だが。 とりあえず、自分で実際に読めば分かるよ。 LLGPL ttp://opensource.franz.com/preamble.html CLISPのライセンス ttp://clisp.hg.sourceforge.net/hgweb/clisp/clisp/raw-file/tip/COPYRIGHT ABCLが採用しているクラスパス例外 ttp://www.gnu.org/software/classpath/license.html
22 名前:デフォルトの名無しさん mailto:sage [2011/07/16(土) 14:31:51.10 ] >>20 どういうことがやりたいの? HyperSpecを流し読みしてみたけど、ドンピシャの関数とかはないみたい。 CCLなら、ccl:type-specifier-pという関数があったよ。
23 名前:デフォルトの名無しさん mailto:sage [2011/07/16(土) 16:02:33.06 ] >>22 あるクラスのサブクラスのオブジェクトについて (defun make-hoge (type &rest args) ...) みたいな感じのコンストラクタを書きたいと思い ここでtypeにtype-specとニックネームのような短い名前の 両方を入れられるようにしたいと思いました typeはtype-specと1対1に対応しているわけではなく、 typeを参考にargsの内容から実際のtype-specを推測します。 ここで、typeがtype-specだった場合に 対応しているものか調べるために、subtypepを呼ぶと、 typeがtype-specで無い場合にエラーが起きてしまいます 誰もご存知ないようなら例外処理か何かで対応しようと思います ありがとうございました
24 名前:デフォルトの名無しさん mailto:sage [2011/07/16(土) 19:08:06.55 ] >>23 なるほど。力になれずに申し訳ないけど、ポータブルなやり方は分からない。 subtypepのエラーを捕捉するのが、泥臭いけど一番良いのかな。 >>22 で挙げたccl:type-specifier-pでは、 (defun type-specifier-p (form &aux sym) (cond ((symbolp form) (or (type-predicate form) (structure-class-p form) (%deftype-expander form) (find-class form nil))) ((consp form) (setq sym (%car form)) (or (type-specifier-p sym) (memq sym '(member satisfies mod)) (and (memq sym '(and or not)) (dolist (spec (%cdr form) t) (unless (type-specifier-p spec) (return nil)))))) (t (typep form 'class)))) こんな風に判断してた。
25 名前:デフォルトの名無しさん mailto:sage [2011/07/16(土) 23:37:49.07 ] Lispというと、なんだかリストばかりを使うイメージがあります。 実際には配列も多く使用するのですか。
26 名前:デフォルトの名無しさん mailto:sage [2011/07/17(日) 05:28:59.34 ] 基本はリストだけど配列のほうが適している場面では使うかと 「サイズ不変」かつ「ランダムアクセス多発」なんてときはそりゃ配列のが良いさ C言語とかだと組み込みとかの極小メモリ環境意識するし 標準では配列しか使えないから配列がメインだろうけど あれだって「要素数が常に変化する」「シーケンシャルアクセスがメイン」なんて場合はリストも使うっしょ
27 名前:デフォルトの名無しさん mailto:sage [2011/07/17(日) 06:59:05.59 ] Clojure なんて見てると、プログラムをデータとして扱う(要はマクロ)とき は確かにリストだけど、それ以外は何でもありって感じ。 Lisp の進化形なのか、変種にすぎないのか、良く分からんね。
28 名前:デフォルトの名無しさん mailto:sage [2011/07/17(日) 07:27:39.63 ] リストはメモリの消費が激しいから、配列も多用するよー。 リストの場合、32ビットでもコンスセルあたり8バイトとか使うし。64ビットだともう凄い。 32ビットで1024要素くらいでも、リストが8 kb強、ベクタなら4 kb弱とダブルスコア。 ただ、遅延ストリームとか循環リストとか便利だし、木構造も表現できるし、 なんだかんだ言ってalistもplistもお手軽で便利だから、リスト使うよ。 >>26 の言うように、シーケンシャルアクセスなら速いし。
29 名前:デフォルトの名無しさん mailto:sage [2011/07/17(日) 08:39:23.30 ] Lisp で手軽に扱えるデータ構造というとリストだからね。 まぁ、そのように作られた言語だから当然なんだけど。 ざっくりとしたものをまず作るってときにリストの柔軟性っていうのはすごくマッチしてるんだよ。 プログラムを書く序盤っていうのはどんなデータ構造が適切なのか、 どこがボトルネックになるのかはわからない。 わかってるつもりがやってみたら違うってこともある。 だから序盤ではリストで作ってみて効率に効いてくるところを配列や構造体で置換えるというのはよくある。 機能や性能が不足だろうととにかく「まず動くもの」を作ってから改良していくのが Lisp 的なスタイルだし、 そのスタイルにリストはよく合うってこと。
30 名前:デフォルトの名無しさん mailto:sage [2011/07/17(日) 12:46:05.02 ] >>24 ありがとうございます。 参考になります。
31 名前:25 mailto:sage [2011/07/17(日) 17:38:02.06 ] 25です。 皆様ご回答ありがとうございました。 勉強になりました。
32 名前:デフォルトの名無しさん mailto:sage [2011/07/19(火) 12:30:42.10 ] common lispの挙動を理解するために common lisp の(簡単な)サブセットを vbs で作って見たいのですが、 どこから着手すればよいのかわかりません できれば動作を確認しながら実装したいです lispのサブセットを作成したことがある方の意見をお聞かせください
33 名前:デフォルトの名無しさん mailto:sage [2011/07/19(火) 14:35:01.66 ] vbsで書かれたyaccでも探すとか?
34 名前:デフォルトの名無しさん mailto:sage [2011/07/19(火) 16:05:02.70 ] >>32 Lisp1.5から始めたら? Lisp自体初めてでも3日とかからないでしょ。
35 名前:デフォルトの名無しさん mailto:sage [2011/07/19(火) 21:04:48.95 ] >>32 何で CL の挙動を理解するのに vbs でサブセットを実装するという話になるのか分からんけど、 Lisp の処理系を作った事がないなら、まずは↓この記事が参考になると思います。 www.oki-osk.jp/esc/go.html CL の実装はその後で。 それより CL の処理系をインストールしてガシガシ弄った方が勉強になると思うけど...
36 名前:デフォルトの名無しさん mailto:sage [2011/07/19(火) 21:35:27.97 ] 好きなやり方でやればいい。
37 名前:デフォルトの名無しさん mailto:sage [2011/07/20(水) 01:14:41.07 ] サブセットでも、Common Lispの処理系を作るとかマジ勇者だな。LispとかSchemeならともかく。 Visual Basicとかから来たのなら、規格に溢れる概念や用語を把握するだけでもきつい気がする。 応援してるから頑張ってくれ。もし手応えを得たら、日本発の処理系再びって展開を期待。
38 名前:デフォルトの名無しさん mailto:sage [2011/07/21(木) 13:45:40.59 ] blog.bugyo.tk/lyrical/archives/126 ニコニコ動画のスクリプトでLispインタプリタ作ったそうだ
39 名前:デフォルトの名無しさん [2011/07/21(木) 15:12:46.41 ] いつの話題だよ
40 名前:デフォルトの名無しさん mailto:sage [2011/07/21(木) 22:06:16.45 ] 書いてあるよ?
41 名前:デフォルトの名無しさん mailto:sage [2011/07/21(木) 22:42:11.72 ] 確かに「いつの話題だよ」って文を額面通りに読めばいつの話題なのか訊ねてることになるが……
42 名前:デフォルトの名無しさん mailto:sage [2011/07/21(木) 22:56:32.95 ] 人工知能なんだろう
43 名前:デフォルトの名無しさん mailto:sage [2011/07/22(金) 03:22:46.85 ] ナンセンスギャグの王道的手法だな
44 名前:デフォルトの名無しさん mailto:sage [2011/07/22(金) 08:29:49.03 ] >>41 修辞疑問だな。
45 名前:デフォルトの名無しさん mailto:sage [2011/07/22(金) 14:11:09.96 ] このスレッドは天才チンパンジー「アイちゃん」が 言語訓練のために立てたものです。 アイと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。
46 名前:デフォルトの名無しさん mailto:sage [2011/07/22(金) 21:07:56.93 ] このスレッドはCommon Lispによる人工知能「AIちゃん」が 言語訓練のために立てたものです。 AIと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。
47 名前:デフォルトの名無しさん mailto:sage [2011/07/23(土) 01:28:34.64 ] そこはElizaちゃんでだなぁ
48 名前:デフォルトの名無しさん mailto:sage [2011/07/24(日) 18:26:29.09 ] Common Lispって実際に使われてるの?
49 名前:デフォルトの名無しさん mailto:sage [2011/07/24(日) 19:34:32.07 ] その質問定期的に出るNE! しかも過去ログを読もうともしないし、グーグル先生にお伺いを立てることもないんだ。
50 名前:デフォルトの名無しさん mailto:sage [2011/07/24(日) 19:44:05.18 ] stumpwmで動作はぎこちないが現在のグループに表示してあるウィンドウを すべてfnextにずらすもの作ったんだけど需要ありますか?
51 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 16:22:49.31 ] >>48 ↓ >>46
52 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 17:03:18.43 ] >>50 stumpwm 改造の参考に、見てみたいです。
53 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 18:38:25.47 ] >>52 参考にならないほどのやっつけですが www.dotup.org/uploda/www.dotup.org1828277.gz.html 自分用としてはいまのところ問題ないです。
54 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 19:55:32.39 ] >>53 stumpwmってしらなかった、wmiiからこっちにひっこそうかしら
55 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 21:04:37.62 ] Lispを今日始めたものなのですが、 (defun foo (lst) (car lst)) (setq var (list 2 4 6 8 1 3 5 7 9 10) ) (foo var) でfooという関数はないと言われるのですが、何故でしょうか?
56 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 21:12:22.21 ] >>55 Mac OS X 上の CCL だと実行出来ましたよ
57 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 21:13:39.35 ] (setq var (list 2 4 6 8 1 3 5 7 9 10) ) ってなんか意味あんの?それを挟まなければエラーが出ないとか?
58 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 21:14:26.54 ] う、見間違えた。すまん
59 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 21:44:57.55 ] ideone.com/TeUAw ?
60 名前:55 mailto:sage [2011/07/31(日) 21:49:00.12 ] おお…本当ですね xyzzyというエディタ付属のLispが手軽と聞いたのでそちらでやっていたのですが、そちらだと怒られるようで・・・ ありがとうございます
61 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 22:08:29.48 ] 便乗して... ideone.com/fu2He これが動かないのは何故でしょう?
62 名前:55==61 mailto:sage [2011/07/31(日) 22:13:24.18 ] 名前入れ忘れた エラー文を調べたら局所変数にアクセスが云々と出てきたのですが、 外からアクセスはしてないように見えるのです
63 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 22:49:44.40 ] >>61 CL はlisp-2だから ideone.com/lLwg2 あと、>>55 はxyzzyでも動くよ。 評価し忘れとかじゃない?
64 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 23:01:58.21 ] >>55 >>63 に補足すると、*scratch*で (defun foo (lst) (car lst)) を入力したらC-j(ctrlを押下中にj) (setq var (list 2 4 6 8 1 3 5 7 9 10) ) を入力したらC-j(ctrlを押下中にj) (foo var) を入力したらC-j(ctrlを押下中にj) このようにして一行ずつC-jを押すこと
65 名前:デフォルトの名無しさん mailto:sage [2011/08/03(水) 02:44:38.45 ] >>61 funcall の後ろに#’つけたら動いたよ
66 名前: 忍法帖【Lv=12,xxxPT】 mailto:sage [2011/08/03(水) 06:10:12.50 ] いや、なんつーか、>>63 も>>65 も (defun qsort (lst) ... (append (qsort ...) ...) ...) って感じに呼べることをまず教えてやれよ……。
67 名前:デフォルトの名無しさん mailto:sage [2011/08/03(水) 06:43:28.89 ] こんな感じ。 ideone.com/fPEnC
68 名前:デフォルトの名無しさん mailto:sage [2011/08/04(木) 09:34:28.69 ] ECLだとquicklispからdrakma使えませんでした。 解決エロい人たすけて
69 名前:デフォルトの名無しさん mailto:sage [2011/08/04(木) 09:37:08.37 ] 解決エロい人 >> 解決できるエロい人 に直してください
70 名前:デフォルトの名無しさん mailto:sage [2011/08/04(木) 10:30:59.09 ] >>68 エラーメッセージは?
71 名前:デフォルトの名無しさん mailto:sage [2011/08/04(木) 11:29:14.64 ] Your Lisp does not support weak key hash-tables. [Condition of type SIMPLE-ERROR] ECL 10.3.1 をapt-get install で入れて使っています。
72 名前:デフォルトの名無しさん mailto:sage [2011/08/04(木) 14:00:50.29 ] まんま書いてるじゃないですかー! Drakmaが利用してるCL+SSLってライブラリがあって、 さらにそれが利用してるtrivial-garbageというライブラリが出してるエラー。 ECLがウィークハッシュテーブルに対応してないから出てる。 あるいは、ECLが実はウィークハッシュテーブル使えるってんなら、 簡単に使えるようになるから、バグレポートでもすればすぐ修正してくれると思う。 報告するのはDrakma相手じゃなくて、trivial-garbageの方ね。
73 名前:デフォルトの名無しさん mailto:sage [2011/08/04(木) 14:21:48.11 ] ttp://osdir.com/ml/lisp.ecl.general/2008-04/msg00171.html 読むと、ウィークハッシュテーブルに対応する予定はなさそうなんで、 ECL側の修正は割と無理っぽいんじゃないかと思う。 考えられる対応策: - CL+SSLに報告してECLだけ特別扱いしてもらう - curlのプロセスを実行して出力を読む - libcurlをFFI経由で使う - 別の処理系を使う - 別の言語を使う
74 名前:デフォルトの名無しさん mailto:sage [2011/08/04(木) 15:37:21.44 ] >>72 ,73 今後はdrakmaを使う時には別の処理系を使うようにします いろいろありがとうございました
75 名前:デフォルトの名無しさん mailto:sage [2011/08/04(木) 16:18:55.06 ] 解決エロい人がいるスレですね。
76 名前:デフォルトの名無しさん mailto:sage [2011/08/04(木) 16:44:41.51 ] かいけつゾロリとか快傑ズバットの亜種か。
77 名前:デフォルトの名無しさん mailto:sage [2011/08/04(木) 19:43:24.53 ] cl-annotで@export はしっかりできてるんですが@docなど他の使い方が分からない cl-annotが使えるパッケージ内で(annot:enable-annot-syntax)を書くだけじゃもしや駄目? Undefined function SCRIPT-TES::DOC called with arguments ("shellscript ls ==") . [Condition of type CCL::UNDEFINED-FUNCTION-CALL]
78 名前:77 mailto:sage [2011/08/04(木) 20:09:57.53 ] 解決しました。 〜.asd のファイルには書かなくていいけど〜.lispの方に付け加えるだけで良かったみたいです。
79 名前:デフォルトの名無しさん mailto:sage [2011/08/04(木) 21:28:33.55 ] cl-annotとかは、 ttps://github.com/arielnetworks にあるコードでいっぱい使ってるので、見ると参考になると思う。
80 名前:デフォルトの名無しさん mailto:sage [2011/08/05(金) 00:15:37.50 ] >>53 自分のやり方が違うかもしれないが、テキストファイルにならない。
81 名前:デフォルトの名無しさん mailto:sage [2011/08/05(金) 00:55:25.96 ] >>80 dump-group-to-fileで作られるファイルのことですか?
82 名前:デフォルトの名無しさん mailto:sage [2011/08/05(金) 03:50:16.17 ] ll.la/LQ4F 中のファイルすべてHOMEにつっこんで sbclにquicklispインストール、cl-ppcreとtrivial-shellも一度quickloadで再起動でいけるはず。
83 名前:デフォルトの名無しさん mailto:sage [2011/08/05(金) 10:53:30.37 ] abclでmaximaが動くのはいつになるんだ
84 名前:デフォルトの名無しさん mailto:sage [2011/08/12(金) 00:53:45.82 ] 連想リストからある値の取得がうまくいかないので質問です。 以下のような状況です。 (setq list_a (list "a0" "a1" "a2")) (setq list_b (list "b0" "b1" "b2")) (setq list_c (list '('a . list_a) '('b . list_a) )) ここまで。 で、list_cに対して (cdr (car list_c)) を評価すると list_a が取れるのですが (car (cdr (car list_c))) にして、list_aの"a0" を取得したいのですが評価するとbacktraceになってしまいうまくいきません。 これはどうすればいいんでしょうか?
85 名前:デフォルトの名無しさん mailto:sage [2011/08/12(金) 01:15:31.43 ] >>84 なぜ二重にクォートしたし。 (setq list_c (list `(a . ,list_a) `(b . ,list_a))) ;; あるいは (setq list_c (list `(a ,@list_a) `(b ,@list_a))) (setq list_c (list (cons 'a list_a) (cons 'b list_a))) (car (cdr (car list_c))) ;; なぜ連想リストのアクセスにassocを使わないのか (cadr (assoc 'a list_c)) ;=> "a0" あと、Lisp界ではx_y_zじゃなくてx-y-zみたいに区切るのが普通。
86 名前:デフォルトの名無しさん mailto:sage [2011/08/12(金) 01:17:20.15 ] ああ、一番普通なの忘れてたわ。 (setq list_c `((a ,@list_a) (b ,@list_a)))
87 名前:84 mailto:sage [2011/08/12(金) 01:23:54.85 ] >>85 ありがとう、理解できました。
88 名前:デフォルトの名無しさん mailto:sage [2011/08/15(月) 02:27:11.12 ] labelsでエラーがでるのですが理由がわからいので教えてください。 scratchで以下の式を評価すると正常に動くのですが (defun foo () (labels ( (bar () (print "foo test") ) ) (bar) ) ) (foo) で "foo test"が表示される これをこのまま .emacsファイルに記述するとbacktraceになってしまいます。 ↓メッセージ Debugger entered--Lisp error: (void-function labels) (labels ((bar nil ...)) (bar)) foo() これはなぜでしょうか。またどのように解決したらよいでしょうか?
89 名前:デフォルトの名無しさん mailto:sage [2011/08/15(月) 02:38:59.99 ] >>88 そのプログラムの前に (requre 'cl) を付けると解決出来るんじゃないかな
90 名前:デフォルトの名無しさん mailto:sage [2011/08/15(月) 02:50:37.63 ] もちろん >>89 は (require 'cl) の typo です。。。 Emacs Lisp と Common Lisp は別物なので、もし emacs lisp を勉強したいなら、 Emacs Lisp 3 hibari.2ch.net/test/read.cgi/tech/1191875993/ に行くと良いと思います。 Common Lisp を勉強したいなら、Common Lisp 用の環境を整えると色々と 捗ると思います。
91 名前:デフォルトの名無しさん mailto:sage [2011/08/15(月) 03:18:26.75 ] >>90 ありがとう解決しました。 今後はEmacs Lispのほうで聞きますね。
92 名前:デフォルトの名無しさん mailto:sage [2011/08/15(月) 22:39:41.10 ] 時代はlispよりもhaskell 教養としてのプログラミングならこっちを勧めたい
93 名前:デフォルトの名無しさん mailto:sage [2011/08/16(火) 03:07:18.49 ] 自分の知る限り、Haskell は少なくとも 5 年前には注目を受けていたし、 Haskell に無い Lisp の特徴として S 式とマクロは知っておいた方が良いと思われ
94 名前:デフォルトの名無しさん mailto:sage [2011/08/16(火) 12:52:53.95 ] lispが理解できないとHaskellは無理だと思う
95 名前:デフォルトの名無しさん mailto:sage [2011/08/16(火) 18:01:20.91 ] Haskellが無理ならLispも無理だろう
96 名前:デフォルトの名無しさん mailto:sage [2011/08/16(火) 18:08:14.77 ] >>92-95 忍者より酷い
97 名前:デフォルトの名無しさん mailto:sage [2011/08/16(火) 18:10:31.20 ] どっちか勉強するのにもう一つの知識が必要みたいな議論がおかしい まっさらな状態で今はじめるならHaskellの方が得るものは大きい
98 名前:デフォルトの名無しさん mailto:sage [2011/08/16(火) 18:32:14.29 ] そんな単純な比較が可能とは思えないが…
99 名前:デフォルトの名無しさん mailto:sage [2011/08/16(火) 18:46:49.49 ] カレーとおにぎりを比べるようなものだな
100 名前:デフォルトの名無しさん mailto:sage [2011/08/16(火) 18:56:45.41 ] で、どっちがカレーなんだ
101 名前:デフォルトの名無しさん mailto:sage [2011/08/16(火) 19:02:30.24 ] Haskellの説明でカリー化ってしょっちゅうくらいだからやはりHaskellがカレーじゃなかろか? ;;;ごめんなさい、ワタシが悪うございました。