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))
752 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 20:09:46 ] >>750 =旧よろずやの中の人
753 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 20:14:50 ] >>750 FreeBSD ユーザーな Lisper の一人としてあんたには感謝しているぜ! SBCL のスレッドに釣られて Linux に走る Lisp 仲間は多かったからな。
754 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 20:18:36 ] >>752 >>750 は SBCL だろ? よろずやの人は CLISP じゃなかったっけ。
755 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 20:55:29 ] >>754 よろずやの人はcmucl -> sbclメイン他いろいろ です....って何かストーカーみたいだなw
756 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 22:15:31 ] >>744 つうか数人のデベロッパしかないLisp系プロジェクトでは数ヶ月〜数年commitがないなんて良くあること。 基本的にLispのみで喰えてる人はいないんで、みんな余暇にしか作業しないからな。 先にRubyとかを見ていると止っているように見えるのかもね。 >>755 754はデベロッパーとしての話なんじゃないか。
757 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 00:11:05 ] まあGCLはいろいろあったからね
758 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 01:00:01 ] って何?
759 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 01:22:30 ] 確かメインの開発者が事故で亡くなられた。
760 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 01:28:23 ] GCLってGNU Common Lisp?
761 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 01:45:23 ] (質問は)そっちかよ…
762 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 02:07:02 ] >>759 >亡くなられた 偉いなw 俺だったら"逝っちゃった"とか平気で書きそうな気がorz
763 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 15:33:05 ] KCL な神たちはかかわってないの? GCL になってからは
764 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 16:08:11 ] かかわってない
765 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 16:11:49 ] LISPってリアルタイムの制御とかには使えるんですか。
766 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 16:47:41 ] ゲームとかロボットで使ってる例はあるけど GC とメモリフットプリントの問題を何とか しなくてはいけない
767 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 18:28:20 ] ロケットか衛星の制御に使ってて宇宙空間にあるのを地上からデバッグした という話がどっかにあった。
768 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 00:36:44 ] なんでもLispなんだよ あっちに見えてる掃除用ロボットだってそうだよ 再帰できたらやりてえんだよ おれ人工知能が書けるほどハッカーになれねえかな 計算機科学の巨人だよ でもそうなったら自分で作った知能とやっちゃうかもしれねえな 機械だって色っぽいよお
769 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 18:30:51 ] リストをシャッフルする以下のような関数を書いてみたんですけど、コンスがあったりしてあんまり上手くないと…… 他に上手い書き方ってないでしょうか? (defun shuffle (lst) (labels ((shffl (lst acc) (if (null lst) acc (let ((*random-state* (make-random-state t)) (len (length lst))) (let ((rand (random len))) (let ((nthrand (nth rand lst))) (shffl (remove nthrand lst :count 1) (cons nthrand acc)))))))) (shffl lst nil)))
770 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 22:49:39 ] >>769 破壊的にやってみた (defun shuffle (list) (let ((st (make-random-state t)) (len (length list))) (dotimes (i len list) (rotatef (car (nthcdr (random len st) list)) (car (nthcdr (random len st) list))))))
771 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 20:25:05 ] ありがとうございます。参考にします。
772 名前:デフォルトの名無しさん [2007/10/25(木) 22:56:58 ] 8パズルを盲目的探索、深さ優先探索、幅優先探索を用いて解け 盲目的探索 初期状態#(8 3 1 0 4 7 6 5 2) 深さ優先探索 初期状態#(0 8 1 4 3 7 6 5 2) 幅優先探索 初期状態#(4 8 1 0 3 7 6 5 2) この3つの目標状態は#(1 2 3 4 5 6 7 8 0)とする 実行フォームは(time...)で囲むこと この問題が全くわかりません。。。どなたかお願いします
773 名前:デフォルトの名無しさん [2007/10/25(木) 23:35:20 ] SBCLに組み込まれている関数のリファレンスとかありませんか? あと、現在定義されている変数の一覧とか確認できると便利なんですが・・・ →トップレベルで (setf xxx 111)で定義したxxxの一覧とか
774 名前:デフォルトの名無しさん mailto:sage [2007/10/25(木) 23:57:23 ] HyperSpec
775 名前:773 mailto:sage [2007/10/25(木) 23:58:15 ] 自己レスだが、リファレンス見つけた 全部英語だが・・・ orz ttp://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node1.html#SECTION00100000000000000000 >あと、現在定義されている変数の一覧とか確認できると便利なんですが・・・ >→トップレベルで (setf xxx 111)で定義したxxxの一覧とか ↑これはご存知のかた教えてください m(_ _)m
776 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 01:32:57 ] (loop for s being the symbols in *package* if (boundp s) collect s) とか?
777 名前:デフォルトの名無しさん mailto:sage [2007/10/26(金) 16:55:01 ] 777ゲット!
778 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 16:24:23 ] 与えられた引数が文字列であるか数値であるかを判断する…ってのはどないしたらいいんでしょうか。。
779 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 16:29:18 ] numberpとかstringpじゃだめなの?
780 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 16:33:16 ] >>779 ありがとうございました。
781 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 00:36:22 ] Lispからテーブル形式のデータを出力して、エクセルなどで開いたり、逆に表形式のデータを読み込んで変数に値を貼り付けたりしたいのですが、そういうことは可能なのでしょうか。 Lispは、Allegro Common Lispを使っています。
782 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 00:53:10 ] >>781 CSV
783 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 01:35:10 ] CSVファイルを読み書きするプログラムを書けばいいんですね。 頑張ってみます。ありがとうございます。
784 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 00:19:42 ] 2つ以上続くアルファベットを、文字列に変換するにはどうしたらいいですか。 例えば以下のように。 abc -> "abc" coerseだと一文字の場合しか変換できなくて困ってます。
785 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 00:28:39 ] (string 'abc) "abc" とか (format nil "~A" 'abc) "abc" とか? xyzzyだとできるけど、他のはわからん できないならスレ違いすまんw
786 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 00:32:07 ] >>784 エスパーレスすると、君の知りたいのは symbol-name
787 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 15:32:34 ] >>785 string使えました。ありがとうございます。 >>786 symbol-nameで、やりたかったことができました。 勉強不足ですみません。
788 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 21:48:52 ] Lispって何ができますか?
789 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 22:33:52 ] プログラムの記述ができます
790 名前:デフォルトの名無しさん [2007/11/05(月) 01:29:11 ] 初心者に適した本はない? もしくはサイトでもOK。 興味が沸いてきた。
791 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 01:34:58 ] usir.kobe-c.ac.jp/users/miura/2001/Sc289/index.html
792 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 01:44:58 ] いまANSI Common Lisp読んでる
793 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 01:54:11 ] >>791 GIFアニメが鬱陶しくて集中できないw
794 名前:デフォルトの名無しさん [2007/11/10(土) 17:44:40 ] www.ibm.com/developerworks/jp/opensource/library/os-eclipse-lispcusp/index.html きたぁぁぁぁぁぁっぁぁぁぁぁぁぁぁlっぁああああああぁぁぁぁl!!!!!!!!!!!!!!!!!!!!!!
795 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 07:56:47 ] >>794 I love emacs だけど Cusp は気になるなー。
796 名前:デフォルトの名無しさん [2007/11/11(日) 10:52:05 ] 気になるが、本スレ向けの話題じゃね?w
797 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 17:00:05 ] 本スレは最近調子がわるいのだ
798 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 18:10:04 ] Eclipse自体が重いうえに、ちょっとした拡張にも手間がすげーかかるんで正直あんまり魅力を感じない…。 でもEmacs使わない層には評判いいね。見た目とか、IDEをマウスで操作したい層にはいいのかも。
799 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 16:20:48 ] Emacs + slimeで十分だろ,常識的に考えて...
800 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 19:02:27 ] JavaとかC++とかそのへんの、人間が面倒な手間を強要される言語だと かなり便利なんだよ、IDE。
801 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 00:45:43 ] >>799 emacsの代わりにeclipseなだけで基本slimeだから エディタとのインターフェースにelisp使うかjava使うかってだけな話だよねぇ?
802 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 21:15:11 ] newlisp使ってる香具師いる?
803 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 00:50:35 ] CMUCLやSBCLでPOSIX Pipeなどを使って外部プロセスと データのやり取りをするにはどうすればいいのでしょうか?
804 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 11:09:27 ] doxygen みたいな自動ドキュメント化ツールってありますか? 日本語が使えると嬉しいのですが.
805 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 22:11:15 ] >>804 作ればいいだろ。 それがLispクオリティ
806 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 22:25:20 ] 確かに Lisp でなら3日で作れそうな気がするな 気がするだけだがw
807 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 22:43:22 ] >>806 (loop for x being each symbols in :mypkg when (and (fboundp x) (eql (symbol-package x) (find-package :mypkg))) collect (list x (documentation x 'function))) とりあえずドキュメント文字列取りだしたから、後は任せた
808 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 23:30:25 ] >>804 doxygenを使えばいいのかと 日本語も使えるわけなんだし。
809 名前:804 mailto:sage [2007/11/20(火) 00:25:15 ] 質問した私がアホでした。皆様ありがとうございます。 凝った事をしないで自分専用のツールにするんだったら、 html ぐらいまでは簡単に出来ますね。 >>807 パッケージの中の定義済みシンボルもそうやってすれば取り出せるんですね。
810 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 14:58:45 ] PracticalCommonLisp の第22章だけ訳してみたんだけど、 投下してみるべき? それともチラシの裏に留めるべき?
811 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 17:09:52 ] とりあえず投下してみるよろし。
812 名前:810 mailto:sage [2007/11/20(火) 18:43:39 ] ttp://www.uploda.org/uporg1121370.zip.html 機械翻訳並みでもよければ…
813 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 06:41:28 ] パッケージ a と b を両方共存させる方法はないですか? (in-package a) (in-package b) とすると、a のパッケージで定義されたシンボルが 未定義になってしまいます。
814 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 06:47:23 ] もうひとつ。異なったディレクトリにあるパッケージを、 C の include, libxxx.a の仕組みの様に使う一般的方法はありますか? 今の所以下の様にしていますが、allegro でしか使えません。 (setq system:*load-search-list* '(:first (:newest-do-compile #.(make-pathname :type "fasl") #.(make-pathname :type "cl")) (:newest-do-compile #.(make-pathname :directory "~/src/lib-lisp" :type "fasl") ...
815 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 11:50:47 ] >>812 もっかいうpたのむ
816 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 13:12:38 ] 俺からもうpたのむ 通報するから
817 名前:810 mailto:sage [2007/11/22(木) 18:44:50 ] >>815 物持ちのいいうpろだ探し中 >>816 原著がネットで公開されててもまずいかなやっぱり
818 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 19:04:18 ] 基本的には、原著作者が、翻訳して公開することを明示的に許可してないと ×
819 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 21:16:36 ] >>816 どうでもいいだろ,地下文章なんだから 堂々とWebに公開したらそりゃまずいだろうけど pass付きzipで短期間だけ公開なら問題ないだろ
820 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 21:54:34 ] lions' 本も現在なら ファーストコピーのスキャン画像が流通するのかしらん
821 名前:803 mailto:sage [2007/11/22(木) 21:58:25 ] (´・ω・`)
822 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 22:01:16 ] >>821 socketじゃだめなのか?
823 名前:デフォルトの名無しさん mailto:sageそんなことはない [2007/11/22(木) 22:10:19 ] これが革命の狼煙になるとは思いもしない819であった。
824 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 23:35:19 ] >822 socketに対応していない外部プログラムと繋げられたらばと考えまして もっともsocketの使い方も勉強できたらうれしいです
825 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 00:53:58 ] >>813 つか、常にパッケージ名に::を付ければ参照できる。冗長だけど。 多分本当にしたいのは以下のような事だろ? 省略したけど use-package とすればまるごとimportできる。 cl-user(2): (defpackage :a) #<The a package> cl-user(3): (defpackage :b) #<The b package> cl-user(4): (in-package :a) #<The a package> a(5): (defvar *foo* 813) *foo* a(6): (find-symbol "*foo*") *foo* :internal a(7): :pa :b b(8): (find-symbol "*foo*") nil nil b(9): (import 'a::*foo*) t b(10): (find-symbol "*foo*") *foo* :internal b(11): *foo* 813
826 名前:813 mailto:sage [2007/11/23(金) 09:39:00 ] >>825 import と use-package ですね。これで相当便利になりました。
827 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 00:38:07 ] on lispの翻訳も最初はこんなのりだったなw
828 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 14:02:25 ] texのドキュメントを自動生成するscriptのsampleなどどこかに ないでしょうか?
829 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 22:37:26 ] slimeビデオの通りに ; SLIME 2007-11-19 CL-USER> (make-hash-table) #<HASH-TABLE :TEST EQL :COUNT 0 {ACEED81}> CL-USER> #<HASH-TABLE :TEST EQL :COUNT 0 {ACEED81}> と、すると以下の通りに怒られます。 SB-INT:SIMPLE-READER-ERROR at 2 (line 1, column 2) on #<SB-IMPL::STRING-INPUT-STREAM {AD3B641}>: illegal sharp macro character: #\< [Condition of type SB-INT:SIMPLE-READER-ERROR] 環境は、 debian etch emacs22 sbcl-1.0.11-x86-linux slimeはcvsで取ってきたものです。 .slime.lispには #+sbcl (setq sb-impl::*default-external-format* :utf-8) (asdf:operate 'asdf:load-op 'swank) (setq swank::*coding-system* "utf-8-unix") (setf swank:*use-dedicated-output-stream* nil) (swank:create-server :port 4005 :dont-close t) と、設定しています。 他に何か設定が必要でしょうか。
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