1 名前:デフォルトの名無しさん mailto:sage [04/11/25 21:48:56] lispを触ってみたい入門者のQ&A 初心者のQ&A 本スレでは恥ずかしくて聞けない人のQ&A 本スレは高度すぎて割り込めない人のQ&A linuxでなくてwindowsでやりたいんですが・・・Q&A lispを使用してC#やJAVAの代替にするための方法(おまけ) ま、ゆっくりたりましょう。 「いいものの本質は、いかなる時代においても変わらない」byパワーズ
856 名前:350 [2006/01/15(日) 11:06:09 ] >>351 kyoto common lispのコマンドラインの変数名を知りたいのですが、 ネットでは見つかりません。 しらないでしょうか?
857 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 11:07:04 ] 優れたデバッガのおかげで本来動くはずのないプログラムが出たとこ修正で動くようになる。当然、潜在バグてんこ盛り。 論よりRUNとか言っているアフォも居るし。 Lispもそんなもんなのか?
858 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 11:46:22 ] >>856 アホがよって来るから、メール欄に sage って入れてくれ。
859 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 14:30:44 ] 早く common-lisp.net 復旧しないかな...
860 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 14:37:43 ] .NETで使えるLispというのはないんでせうか? ちょっとみたけれどわからず・・・
861 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 14:43:09 ] >>860 ある。
862 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 00:04:23 ] ソースつきサンプルが標準でどっかのディレクトリに入って滝がした
863 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 01:34:22 ] >>860 .NET 向けなら LSharp ってのがあるよ.まぁ,Common Lisp でも Scheme でもないけど.
864 名前:デフォルトの名無しさん [2006/01/16(月) 03:23:56 ] kyoto common lispのコマンドラインの変数名を知りたいのですが、 誰か知りませんか?
865 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 05:06:02 ] つうかなんで今更KCL? GCLならsi:*command-args* みたいな名前の変数だったと思う。 とりあえず、aproposでそれらしい名前を探してみたら?
866 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 14:29:04 ] オブジェクト指向が染み付いてるんですが、LISPってどんなイメージでプログラミングするの?
867 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 16:35:33 ] クラスを定義してメソッドを書いてゆく。(こともできる)
868 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 16:38:07 ] >>867 それオブジェクト指向とどう違うの?
869 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 16:51:22 ] 違わないだろ Lispでもオブジェクト指向やれますよって言ってるんだから
870 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 17:05:27 ] んじゃ、オブジェクト指向的に書くとして、その場合のJava、C++などとの違いはどこに出るの?
871 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 17:22:49 ] >>870 括弧
872 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 17:35:38 ] >>871 まあ、依然としてLispである、ってとこかな。
873 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 18:12:17 ] >>872 そのLISPであるのはどこ?
874 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 18:15:40 ] >>873 括弧
875 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 18:20:36 ] 単に「JavaやC++と比べてLispはどう違うのか」の答と一緒かと
876 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 18:27:39 ] >>875 最初の質問に戻るかも試練が・・・わかんねーよウワァン。
877 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 18:29:17 ] On Lisp の最初の方を読むといいかも。
878 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 18:42:58 ] >>877 みつけますた。よんでみます。 ただまとめて印刷できるページがほしかった・・・
879 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 20:41:02 ] スピード面とか考慮したうえでLispに向くもの向かないものってあるんでしょうか?
880 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 22:37:05 ] LSharp以外に.NETでつかえるLispあるならつかいたいんだがどうよ。
881 名前:831 [2006/01/17(火) 00:03:55 ] ECLを使って見ますた Windows上でインストールさせて、 簡単な関数を書いたLispファイルをコンパイルしてみると おぉ、ECLから.dll .Lib .hファイルを取得できますた 早速C++に組み込んでみようとすると、 ..わからん、どうやって引数を渡すんだ? マニュアルとECLのヘッダーファイルを週末読み込んでみたものの、 わたすの低レベルな頭ではプログラムを走らせることができませんですた (変換された関数はECL独自の構造体(共有体?)しか受け取ってくれない) やはりCに書き出すことはできたとしても、 Lisp->Cへの組み込み時において、変換された関数のインターフェースが 問題であることをようやく理解。 そこで今回、Lisp->Cのインターフェースがうまく扱えそうな LispWorksに方向転換してマニュアルを呼んでます LispWorksで変換したLispコードをCから呼び出してる人、 使い心地はどうですか? 知ってる人おりましたら、おしえてくらはい。 ・・・長文、駄文、あと頭悪くてすいません
882 名前:デフォルトの名無しさん mailto:sage [2006/01/17(火) 00:06:55 ] >>880 何で .NET が良いのか、LSharp の何が気に入らなかったのかを書いたら 教えてやらんでもないけど、マイナーな処理系使っても幸せにはなれないよ。 >>876 個人的には REPL の有る無しが大きい。データを直に触りながら書く感じ。
883 名前:デフォルトの名無しさん mailto:sage [2006/01/17(火) 01:11:33 ] >>831 メール欄に sage って書いてホスィ.ひょっとしてPerl とか Python とかの組 み込みの経験ないってこと?むーC / Lisp ともにちょっとスキル不足かもしれ ない. LispWorks の使い心地だけど (fli:define-foreign-callable ("Double" :result-type :int) ((x :int) (y :int)) (* x y)) で DLL 作ると int Double(int x, int y) { return x*y; } に見える.
884 名前:デフォルトの名無しさん mailto:sage [2006/01/17(火) 02:17:35 ] >>882 .NETの理由:既存資産があるしライブラリあるから LSharp以外の理由:LSharpは気に入らなかったのではなく比較のため。
885 名前:884 mailto:sage [2006/01/17(火) 02:20:44 ] 眠いとだめだな日本語おかしい・・・orz ライブラリ->マイライブラリ LSharpは->LSharpを
886 名前:デフォルトの名無しさん mailto:sage [2006/01/17(火) 02:24:04 ] >>884 ,885 ほい。 dotlisp.sourceforge.net/dotlisp.htm www-sop.inria.fr/mimosa/fp/Bigloo/
887 名前:デフォルトの名無しさん mailto:sage [2006/01/17(火) 02:46:43 ] >>884 , 885 ほれ. RDNZL - A .NET layer for Common Lisp www.weitz.de/rdnzl/
888 名前:デフォルトの名無しさん mailto:sage [2006/01/17(火) 02:48:57 ] >>884 ,885 あと、この辺かな。 weitz.de/rdnzl/ foil.sourceforge.net/ bc.tech.coop/blog/040927.html bc.tech.coop/blog/041210.html bc.tech.coop/blog/041216.html せっかく答えてくれたのに、参考にならなかったらスマソ。
889 名前:デフォルトの名無しさん mailto:sage [2006/01/17(火) 02:50:32 ] わぉ、こんな夜更けに被ってしまった...
890 名前:デフォルトの名無しさん mailto:sage [2006/01/17(火) 03:27:55 ] >>879 Lisper は環境に合わせて Lisp 処理系を書いてしまうから、向かない物は無いとも言える。 GOOL とか XS Lisp とか LispMe とか Schemix とか。LispM もあったし。 向いてないのは、人月投入してナンボのプロジェクトとかかな。Lisper は希少種だから。
891 名前:デフォルトの名無しさん mailto:sage [2006/01/17(火) 10:55:18 ] 正式発表キタ!! >A port of OpenMCL to X86-64 (AMD64) Linux is underway; >it's scheduled for release in Q2/2006. openmcl.clozure.com/index.html
892 名前:デフォルトの名無しさん mailto:sage [2006/01/17(火) 10:59:58 ] >>886-888 さんくすこ。みてみます。
893 名前:831 mailto:sage [2006/01/18(水) 01:04:30 ] >>883 情報サンクス 使い勝手、よさそうですね マニュアルのページ参照できますた Personal Editionだとファイル出力できないことがたった今判明。 ..約11万かぁ 要検討します おっしゃるとおり、組み込み系、Lisp共に超初心者です、はい。 Lispは本を1時間よんだくらい。まずは環境整備と思い、現在に至ります。 Cはちょいとかじってます。 言語解析やりたくてLIspはじめようかと。 ついでに質問いいですか?教えて訓ですみません。 CまたはC++に組み込む場合、.DLLに加えて.h,.libファイルが必要ですよね? マニュアルにこれらの出力関数が見当たらなかったんすけど、 きちんと装備されています?、LispWorks。 まちがい、かんちがいあったらすいません。 宜しくお願いします。 sage気おつけます。2ch書き込みも実は831がはじめて。
894 名前:デフォルトの名無しさん mailto:sage [2006/01/18(水) 01:44:47 ] > 言語解析やりたくてLIspはじめようかと。 自然言語解析だとすると LispWorks は日本語対応が UNICODE のみなんで,お すすめできないなぁ.あんまり日本語処理強くないよ.最終目標はどんなかん じなの? > CまたはC++に組み込む場合、.DLLに加えて.h,.libファイルが必要ですよね? DLL を LoadLibrary して使えます.でも普通は Lisp から C の DLL を呼ぶと 思うけどなー.そっちのほうが資料が充実してるし楽だ.あるいはソケットで 通信とかね.
895 名前:831 mailto:sage [2006/01/18(水) 21:35:14 ] >>894 情報サンクス 言語解析はそんなレベル高いものではない(と思う) というのも認知心理学ちょっとやりたくて買った本が 「Lispで学ぶ認知心理学」ってやつ。 そこにでてくるプログラム参考に勉強していこうかと。 ただ、1980年に出版されたもんだからユニコードうんぬんではないのです。 たとえば "NINCHI" "SHINRIGAKU"とかで、全部ローマ字で処理。 文章とかの階層構造を定義したいなぁ、なんて。 ただここの本にでてくる考え方は学んでみたいとおもい、& 組み込み対象が自作のC++プログラム。 っていうかんじです。 引き続き、組み込み向けのLisp、ソケット通信調べてみます。 長文駄文ソマソ。
896 名前:デフォルトの名無しさん mailto:sage [2006/01/19(木) 00:43:18 ] >>895 clisp.sourceforge.net/impnotes.html#ex-call-in clisp.sourceforge.net/impnotes.html#ex-call-in-dll common-lisp.net/project/cffi/manual/cffi-manual.html#Tutorial_002dCallbacks
897 名前:831 mailto:sage [2006/01/19(木) 01:00:17 ] >>896 ・゚・(ノд`)・゚・ なんでそんなにやさしいんですか? 有難う御座います。 がんばります。 ...職場の人だってここまでやさしくない
898 名前:デフォルトの名無しさん mailto:sage [2006/01/19(木) 05:00:56 ] >>895 あれってMACLISPじゃなかったっけか?
899 名前:831 mailto:sage [2006/01/20(金) 00:25:21 ] >>898 ども。 本には「APPLE LISP」を基準にしているとの記述が。 中まだ呼んでないからわからないけど defun を DE で記述ますね。 今日は帰りが遅かったからほとんど手付かず。 週末はLisperになりたい。
900 名前:デフォルトの名無しさん mailto:sage [2006/01/20(金) 01:44:44 ] まーがんがれ。言語仕様はずいぶんかわってるので,アルゴリズムに集中して 勉強したほうがいいね。まぁ,おれはその本読んだ事ないのでアレだけど,お勧めは - C をある程度知っているなら ANSI Common Lisp あたりを読んでみる - 難しいと感じたなら,古い本だけど培風館の Lisp (1) (2) に挑戦 こっちは学生に訳させたのか日本語が破綻しているが,内容的には 入門から簡単な Garbage Collection の仕組みまでと充実してる. - 英語が苦にならないなら Practical Common Lisp とか Norvig の PAIP,OnLisp とか アカデミックな風味が好きなら Programming Scheme, HTDP, SICP にも挑戦してもいい 自然言語ネタならPAIP にもちょっとあるよ.PAIP の一番最初の例はルールベー スのランダム文章作成だよん. (defparameter *simple-grammar* '((sentence -> (noun-phrase verb-phrase)) (noun-phrase -> (Article Noun)) (verb-phrase -> (Verb noun-phrase)) (Article -> the a) (Noun -> man ball woman table) (Verb -> hit took saw liked))) (defvar *grammar* *simple-grammar*) (defun rule-lhs (rule) (first rule)) (defun rule-rhs (rule) (rest (rest rule))) (defun rewrites (category) (rule-rhs (assoc category *grammar*))) (defun generate (phrase) (cond ((listp phrase) (mappend #'generate phrase)) ((rewrites phrase) (generate (random-elt (rewrites phrase)))) (t (list phrase))))
901 名前:デフォルトの名無しさん [2006/01/20(金) 21:09:46 ] kyoto common lispのコマンドラインの変数名を知りたいのですが、 誰か知りませんか?
902 名前:デフォルトの名無しさん mailto:sage [2006/01/20(金) 21:21:08 ] 変な宿題出してるがっこがあるようだな。 pc8.2ch.net/test/read.cgi/tech/1132275726/349
903 名前:デフォルトの名無しさん mailto:sage [2006/01/21(土) 00:10:07 ] いまどき KCL ???ネタか?しかも本スレとマルチ? メール欄に sage もしくは学生番号を書いたら考えるけど……
904 名前:デフォルトの名無しさん mailto:sage [2006/01/21(土) 00:42:29 ] >>856 >>864 も アフォは無視すれ
905 名前:831 mailto:sage [2006/01/21(土) 01:13:44 ] >>900 応援サンクス.参考書チェックしてみす。 今度町にでたら立ち読みしなければ。 ...ランダム文章作成 ひじょーに博学ですね。 わたすの頭からあれがでてくるよう念じたら いつかでてくるのかな 週末だけのうみそ交換しませんか? ...毎度すいません、教えてくんになってよいですか。 教えて頂いたURL、目を通して見ます田。2つ質問あります。 1つ目:Example31.7 Calling Lisp from C dynamicallyの考え方、 これであってます?↓ ------Lispソース(FFI含む)---- | | |(インターフェース部を書いた| | Cソースを | | コンパイルしたdll) |----------------> (Lispソースを | | ↑ コンパイルしたDLL) | | CLisp |---------------------------| でコンパイル ↑C/C++に組み込み可 2つ目:もう一つ御願いします。 ClispではFFIを使用するためには特別な操作が必要なんすか? 上記考え方に基づいて Example31.7のCソース部分からDLLを作成。 その後Lispソース部で作成(.dllの名前はきちんと入力)。 できたhoge.lispファイルを(load "hoge.lisp" )すると CLispが「skip (DEF-CALL-OUT CALLOUT # ...」っていってとまっちゃいます田。 アドバイス頂けませんか?宜しくおねがいします。
906 名前:831 mailto:sage [2006/01/21(土) 01:20:28 ] orz 絵がずれちゃいました。 訂正 -----Lispソース(FFI含む)-------------- | インターフェース部を書いたCソースを|------------------------->C/C++で組み込み可能なDLL | コンパイルしたdll__________________| Clispでコンパイル -------------------------------------- またずれたら逝きます
907 名前:831 mailto:sage [2006/01/21(土) 01:33:09 ] スレよごしすいません 再訂正 1. インターフェース部を書いたCソースをCコンパイラ(VC++)でDLLを作成 2. VCからでできたDLLをLispソースに組み込んで、CLisp(FFIパッケージ使用)でコンパイル。 3. CLispからでてきたDLLをC/C++に組み込む ...すいませんでした。
908 名前:デフォルトの名無しさん mailto:sage [2006/01/21(土) 01:40:25 ] 残念.CLISP の FFI ってのは CLISP から Dynamic Library (DLL とか) を扱 うための仕組みのこと. CALL-OUT: CLISP から DLL の関数を呼び出す +-------+ -----> +-----+ | CLISP | | DLL | +-------+ <----- +-----+ CALL-IN: DLL 内から CLISP の関数を呼び出す なので,C/C++ に組み込み可能な DLL は CLISP では作れない.ずいぶん C/C++ にこだわりを持ているようだけれど,ゲームでも作ってそっから Lisp の機能を呼びたいのかな?
909 名前:デフォルトの名無しさん mailto:sage [2006/01/21(土) 01:46:17 ] CLISP は DLL を出力できません.ので,C のアプリから CLISP で作った機能を呼び出すには 1. ソケットを使う 2. パイプを使う 3. 共有メモリを使う (CLISP に拡張がいるかな?) のいずれかの手段が必要です.
910 名前:831 mailto:sage [2006/01/21(土) 02:01:40 ] >>908 解説、ありがとうございます。 自分、英語苦手なのばれちゃいましたね。 学生のときC/C++で記憶のモデルをつくってますた へたれな出来だったけど。 へたれソフトには一応それなりに考えて実装しますた。 それはそのままにして、新しい機能をLispで加えられたらと。 当時の研究、あまりいい結果でなかったけど おもしろかたんで社会にでても時間みつけてつづけてるって感じです。 ...素直にLispWorks購入しようかな
911 名前:831 mailto:sage [2006/01/21(土) 02:08:25 ] おお、 すいません、すれちがっちゃいました。 まずはアドバイスのとおり1,2,3について調べてみます 情報ありがとうございます。 ホント、世話になってます
912 名前:デフォルトの名無しさん mailto:sage [2006/01/21(土) 11:06:07 ] WindowsならCorman Common Lispって手もある。IDE使わなきゃ無料だし、 ソースコードもついてたハズなんで見てみれば? トライアル版とはいえAllegro Common Lispに手を出してしまうとアホらしくて 他の処理系を使う気が失せるが個人で購入するには高すぎて手が出せない罠。
913 名前:デフォルトの名無しさん mailto:sage [2006/01/21(土) 12:30:40 ] Cormanって日本語使えるようになったの? 以前試したときはダメだったけど。
914 名前:デフォルトの名無しさん mailto:sage [2006/01/21(土) 13:28:16 ] >>912 そんなに高くは無いだろ。
915 名前:デフォルトの名無しさん mailto:sage [2006/01/21(土) 22:49:24 ] Allegro, UNIX でもマルチスレッドに対応にしてくれると 多少高くても買うんだけどなあ…
916 名前:デフォルトの名無しさん mailto:sage [2006/01/21(土) 23:07:47 ] >>914 え?いくらなの? 50 万くらいかと思ってたけど しかもそれでランタイムライセンスなしみたいな… 俺騙されてた?
917 名前:デフォルトの名無しさん mailto:sage [2006/01/21(土) 23:21:37 ] 一番安いのだと十数万じゃなかったっけ。
918 名前:デフォルトの名無しさん [2006/01/21(土) 23:46:29 ] 本には (setf x '(a b c)) (setf (nthcdr 2 x) '(1 2)) とすると、xが(a b 1 2)となると書いてあるんですが、 エラーになります。処理系によって違いがあるんですか? 自分が試したのがclispとAllegro CL (共にWindows)で、 本が想定してるのがMac Common Lispです。
919 名前:デフォルトの名無しさん mailto:sage [2006/01/22(日) 00:05:42 ] www.lispworks.com/documentation/HyperSpec/Body/03_abac.htm The consequences are undefined if literal objects (including self-evaluating objects) are destructively modified. 本の名前晒せ
920 名前:デフォルトの名無しさん mailto:sage [2006/01/22(日) 00:14:11 ] Mac Common Lispの動作としてそうなるという説明であれば正しい 記述なのかもしれない。>>919 の言うように現在のCommon Lispの 仕様としては「不定」が正解。 ただし、動作が不定であるということが明確化されたのはCLtL2から だからそれ以前の本ならそういう記述があっても止むを得ない。
921 名前:デフォルトの名無しさん [2006/01/22(日) 00:21:24 ] >>919 本はこれです。 プログラミング言語Lisp入門からマルチメディアまで ASCII SOFTWARE www.amazon.co.jp/exec/obidos/ASIN/4756139264/ 今初めてアマゾンでレビュー見たんですが、 どうやらMacに依存した内容が多いようですね。 上のコードはMacじゃないと動かないという事なんですね。
922 名前:デフォルトの名無しさん mailto:sage [2006/01/22(日) 00:30:39 ] エラーの原因はリテラルオブジェクトの書き換えではなく、(setf nthcdr)の未定義 じゃないかな。手元のclispだと、 (setf x '(a b c)) (setf (cdr x) '(1 2)) ならちゃんと通って、x = (A 1 2) になる。元のプログラムだと(setf nthcdr)の未定義 でエラーになる。
923 名前:デフォルトの名無しさん mailto:sage [2006/01/22(日) 00:44:13 ] OpenMCL では問題無し。SBCL では (setf nthcdr) の未定義でエラー。 % ./dppccl Welcome to OpenMCL Version 1.0 (DarwinPPC32)! ? (setf x '(a b c)) (A B C) ? (setf (nthcdr 2 x) '(1 2)) (1 2) ? x (A B 1 2) MCL 系に依存したコードみたいね。>>921 の本は ANSI CL という よりは MCL の使い方を書いた本なんで問題無すぃ。
924 名前:デフォルトの名無しさん mailto:sage [2006/01/22(日) 01:20:08 ] >>915 Windows以外はまだOSスレッドに対応してないんだっけ。8.0でも変わらないのかな。
925 名前:デフォルトの名無しさん mailto:sage [2006/01/22(日) 02:01:16 ] >>831 VB だが。 www.cs.stevens.edu/~dlong/vbecl/
926 名前:918 [2006/01/22(日) 09:23:08 ] 皆さんありがとうございます。 ANSI標準のCommon Lispを勉強したかったんで、別の本を探して見ます。 Common Lispならどの処理系でも同じなのかと思ってました。
927 名前:デフォルトの名無しさん mailto:sage [2006/01/22(日) 10:50:15 ] >>916 前は10万円以下のがHPでセールスしてたが今はアカデミック向けのが99ドルで載ってるな。
928 名前:デフォルトの名無しさん mailto:sage [2006/01/22(日) 11:53:28 ] >>918 > ANSI標準のCommon Lispを勉強したかったんで、別の本を探して見ます。 仕様には規定されている事とされていない事がある。specified と unspecified ね。 さらに実装依存(implementation-defined)と定義されている事もある: (例) (disassemble) での表示形式とか declare で最適化するとかしないとか は規格で「実装による」と規定されている。だから本 + HyperSpec をつきあわ せながら勉強してけばいいんじゃね。ANSI Common Lisp (Paul Graham) あたりは 入門にはちょっと難しいと思われ。英語でもがんがる気合いがあるなら Practiclal Common Lisp がオススメ >>927 もう卒業したんでアカデミックダメポ…。学生時代はアカデミックが安ければ いと思っていたけどな。アカデミックが安いだけではダメな事に気がついた。 予算は Win なら MSDN にもってかれちゃうしな。
929 名前:デフォルトの名無しさん mailto:sage [2006/01/22(日) 12:00:57 ] >>924 してない. 7 -> 8 の差分ってすごく小さい
930 名前:デフォルトの名無しさん mailto:sage [2006/01/22(日) 13:19:36 ] >>895 > >>894 > 情報サンクス > 言語解析はそんなレベル高いものではない(と思う) > というのも認知心理学ちょっとやりたくて買った本が > 「Lispで学ぶ認知心理学」ってやつ。 おおおっ、もしやサンプルがAPPLE LISP でプログラムされているやつでは!
931 名前:デフォルトの名無しさん mailto:sage [2006/01/22(日) 13:28:49 ] APPLE LISP は8bitマシンであるAPPLE ][ 用に慶応大の大西先生が 実装した処理系ですね。 6502のマシン語で書いたそうです。 メモリの一部がグラフィックメモリと共用なのでガベージコレクションして いるのが”見えた”ので教育用としても有用だった。
932 名前:デフォルトの名無しさん mailto:sage [2006/01/22(日) 13:48:36 ] >>931 をいをい、大西先生じゃねーよ。中西先生な。死んじゃったけど。
933 名前:デフォルトの名無しさん mailto:sage [2006/01/22(日) 15:02:48 ] >>923 OpenMCL では本当に問題ないのかなあ。CMUCL や SBCL では (setf x '(a b c)) (setf y '(a b c)) (setf (cdr x) '(1 2)) (print (list x y)) をコンパイルしてロードすると、リテラルが共有されるため ((A 1 2) (A 1 2)) となるんだけど、そういった想定外のことが起こったりしない?
934 名前:デフォルトの名無しさん mailto:sage [2006/01/22(日) 15:47:12 ] OpenMCL では↓になったけど、リテラルリストに破壊的操作をするのは良くないですね。 ((A 1 2) (A B C)) (proclaim '(optimize (speed 3) (space 0) (debug 0))) しても一緒でした。 OpenMCL が SBCL や CMUCL に比べて遅いと言われてるのは、こういう所からなのかな。
935 名前:831 mailto:sage [2006/01/22(日) 23:26:26 ] どもです。 >>912 情報サンクス Corman Lisp 調べてみますた。 これ、なかなか使いやすそう。 お値段も 249$ (3万弱?)くらいで手が届く。 サンプルソースから推測するに、 実はこれC/C++に組み込めるのでは?(しかもCとのインターフェース部、自分でも扱えるレベル!?) ちょいいじってDLL出力させてみたとこ、ヘッダーとDLLでてきますた。 LoadLibraryでVC++から読み込ませたら一応コンパイルは通った。 実行させると ダイアログで 「Cormanなんとか.dll」がなんとかかんとかって言ってた。 お金はらえば、わたすの願いかなうんですかね? ソケット通信調べる前に、もうちょいいじってみます。 >>925 情報サンクス ダウンロードさせていただきます田。 時間あるとき、いじらさせて頂きます。 >>930 、931 自分、全くの初心者なんでAPPLE Lispのすごさわかりませんが、とても読みやすいと感じますね。 環境整えてからって思ってたけど、今日からこの本を読み恥じめてます。 自分の場合、手段(Lisp)と目的(認知)が同時に学習できますんで、効率的だと思ってアマゾンで購入。 3巻同時に手に入れられたのは運がよかった。 んー ホントにLisperになりたい。 900さんにも言われたとおり、 アルゴリズムに集中して勉強してゆきます〜
936 名前:831 mailto:sage [2006/01/23(月) 01:43:11 ] >>935 にて >ちょいいじってDLL出力させてみたとこ、ヘッダーとDLLでてきますた。 訂正: すいません、勘違い訂正します。 もともとあったexampleフォルダ内で用意されてたtestdll.dllを利用しますた んー最近すれよごしばかり。 少し書き込み控えます。
937 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 00:52:04 ] c.l.l.のなが〜いスレッド読んで知ったこと。 ACLって成果物(って呼び方でいいんだろか)配布するのに毎年ライセンス料を払い 続けなければいけないらしい。へぇ。だから皆高い高いって言うんだ。 これってGCCで作ったバイナリ勝手に配っちゃダメって言ってるのと一緒でしょ? 間違ってたら訂正願います>詳しい方
938 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 01:23:54 ] まぁ (loop (print (evel (read)))) みたいなのコンパイルしてバイナリ配ったら Lisp そのものになっちゃうからな。配布ライセンスが必要という気持ちも理解 できないことはない。 個人的にはフリーソフトの発展に期待。
939 名前:831 mailto:sage [2006/01/26(木) 00:44:57 ] 例題をやってて呼び出せない関数がいくつか。 put (putpropもだめ) unpack (explodeもだめ) maknam (pack inplodeもだめ) 現在、Corman LIsp使ってます。 これら関数の別名もしくは使い方知っているひといたら教えてください。 >>Corman Lisp使っている人 trace の使い方、教えてください。 ・・・教えて訓ですいません
940 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 00:51:37 ] >>939 それぞれ setf + get symbol-name make-symbol で代用すべし。つーか、Common Lispの仕様持ってないの?
941 名前:831 mailto:sage [2006/01/26(木) 01:05:18 ] >>940 情報サンクス >つーか、Common Lispの仕様持ってないの? 今週末、本買いにゆきます すいません〜
942 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 01:06:13 ] >>939 その聞き方じゃ現代 Lisper にはわかんねーよぅ
943 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 01:23:25 ] car とか cdr とか禁止で 短くていいじゃんと思う俺はきっと汚染されてる
944 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 05:11:44 ] >>939 (trace 'func) でトレースしたい関数の記号を引数にとる。 あとは普通にfuncを実行すればトレースの結果が表示される ところで、いい加減Javaくらいできないとマズいかなと思い 借りてきた本の著者が井田昌之だった
945 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 09:56:04 ] lispができるならJavaいらんだろ。CがまだならC、CができるならC++かC#にしとけ。
946 名前:デフォルトの名無しさん [2006/01/29(日) 13:22:00 ] gclのソースを弄って、gclを立ち上げるときに、 自動的にこちらの指定したlispのコードを実行させるようにしたいのですが、 どうすればいいでしょうか?
947 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 13:36:57 ] 宿題は自分でやれ。
948 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 13:59:48 ] >>946 そんなのソースをいじらんでもコマンドラインオプションでできねーか?
949 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 14:04:10 ] どこの小学校だ、変な宿題出しているのは。
950 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 16:00:26 ] 理素譜
951 名前:デフォルトの名無しさん [2006/01/29(日) 16:29:24 ] gclを弄って、gclが起動したら、自動的にlispのコードが実行されるようにするのが、 課題なんです。 gclのstdinに、lispのコードでもプリントで書き込めばいいのでしょうか? わけわからん。
952 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 16:39:04 ] お前にはセンスも才能も将来もないことはよくわかった。 向上心が少しでも残されてるなら宿題は自分でやれ。
953 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 16:50:14 ] ってか出題者は何を意図してんだろ。本気で小学校レベルなのかな。
954 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 17:06:54 ] >>953 ”翻訳”を通すとこうなる。 よくあることなので気に病まないほうがよい。
955 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 17:09:21 ] 少なくともLispの課題ではないのだろう。(C言語の課題かな?) 正しい質問場所を見つけるのも課題なのかな。w
956 名前:デフォルトの名無しさん [2006/01/29(日) 17:31:19 ] 日本人です。 gclを起動→自動的にlispの関数が実行され、 読み込み状態になる。 を実現しなきゃいけないんです。 処理系弄るの初めてなので、 ちょっと困ってます。
957 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 17:35:50 ] >>956 そうですか。ちなみに私は困っていません。
958 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 18:23:55 ] おまいらちゃんと>>1 を読み直せ。このスレはまた〜りが信条じゃなかったのか? GCLってとこが致命的だな。いまどきGCLメインで使ってる人ってどれくらい居るんだろ。 普通に考えたらREPL起動前にユーザ定義の処理を走らせるとかその程度のことは処理系が 持ってるはずなんで>>948 の言い分を調べてみるのが先決かと。 調べた結果「無い」ってことならそれを実装しろってのが課題の主旨と思われるので REPLに突入する前に自前のコード突っ込めば終わりじゃね?
959 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 18:29:04 ] Lispの授業じゃなくてコードリーディングみたいなのの課題なんじゃない? さすがにスレ違いだと思うよ。
960 名前:デフォルトの名無しさん [2006/01/30(月) 00:02:17 ] gclに、iniファイルとかは使えますか?
961 名前:デフォルトの名無しさん mailto:sage [2006/01/30(月) 00:05:06 ] >>958 もうちょいまともな聞き方すれば数日前に答えが手にはいったのにな。 ちょっと酷いからスルーしてしまってた。 1. まず hogehoge.lisp ってファイルをエディタでつくる。 % vi hogehoge.lisp 2. -load オプションをつかって gcl を起動する % gcl -load hogehoge.lisp 最近の GCL ならこれで gcl が起動し hogehoge.lisp を読み込まれる もし本当に GCL を改造しろという課題なら 2ch でダメダメな質問してる時点 で自力で解くのは諦めたほうがいい。クラスのできそうなやつに飯でもおごる とかしてやってもらうのが唯一の方法だろ。 >>958 行動を選択してください [A/B/C] A. 知りたい事がわかったので礼も言わずに消える B. 礼を言って消える C. 回答が的はずれだ俺の知りたい事はxxxxとかいいだす
962 名前:デフォルトの名無しさん mailto:sage [2006/01/30(月) 00:14:34 ] 2ch でだいぶんトンデモ質問にも慣れたと思っていたけどこれは… もう超能力で補うしかねぇな。まっとうなところなら A. GCL のオプション設定を ini ファイルで指定できますか? → コマンドラインからの ni ファイルの解析を自分でやらないと標準で ini ファイル B. GCL で ini ファイルを読み書きするライブラリは標準でついていますか? → ついてません。ini ファイルの読み書きがしたい場合は自力でなんとかしてください。 C. GCL で ini ファイルを読み書きする事は可能でしょうか? → 自分で処理を書く、Win32API を呼び出すなどすればできます。が C でini が扱える程度の技術が必要です。 どれか当ってねぇかな〜と期待
963 名前:デフォルトの名無しさん [2006/01/30(月) 00:22:34 ] すみません。 gclを起動したら、初期設定ファイルを読み込んで、 こちらの指定したコードを実行させるようにはできないかと思ったのです。 schemeではiniファイルを読ませることができたので。 どうすればいいですか?
964 名前:958 mailto:sage [2006/01/30(月) 00:30:10 ] ぉ。風呂から出てきたら俺が質問者になってるみたいだな。 ほんじゃ>>961 の回答は以下でファイナルアンサーってことでよろしく。 D. 誰か次スレ立ててね はぁと(w あと質問してる人、sage覚えてね。
965 名前:デフォルトの名無しさん mailto:sage [2006/01/30(月) 00:36:19 ] >>958 殿へ どうみても誤爆です。 拙者責任をとって切腹つかまつるゆえ次スレは立てられませぬ。
966 名前:デフォルトの名無しさん mailto:sage [2006/01/30(月) 00:38:39 ] 次スレいらんだろ。 このスレ使いきるまで一年以上かかってるし、本スレに合流でいい。
967 名前:デフォルトの名無しさん mailto:sage [2006/01/30(月) 00:49:46 ] >>961 > 本当に GCL を改造 main関数をmain2とかに改名して、 argcとargv弄るだけ…でいいんだろうか。 それだと学校の課題としては変だよなぁ…。
968 名前:デフォルトの名無しさん mailto:sage [2006/01/30(月) 00:54:34 ] GCLの質問する奴、みんな質問の仕方が妙だよな。 気になるから誰か課題の全文をウプ汁。 おじさんが模範解答を作ってやる。
969 名前:デフォルトの名無しさん mailto:sage [2006/01/30(月) 01:18:05 ] 何か盛り上がりそうだけど本スレ汚すのも気が引けるんであふれたら 過疎化したスレのリサイクルにご協力をお願いします。 【一日】CommonLisp【一門】 pc8.2ch.net/test/read.cgi/tech/1106587515/
970 名前:963 [2006/01/30(月) 01:22:43 ] >>967 「他のcのプログラムから、gclのmain関数を呼び出し、 その時点で、こちらの指定したlispのコードが実行され、 ユーザの入力待ち状態にすること」 です。
971 名前:デフォルトの名無しさん mailto:sage [2006/02/01(水) 01:50:05 ] >>970 ほんとにそんなダメ日本語な問題なのか?思い込みで解釈せずに正確に写せ。 あと Mail 欄には sage と入力してください。それができたら解答する。
972 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 03:22:43 ] >2006-01-30 02:39 gb > > * lisp-kernel/freebsd8664/: Makefile, elf_x86_64.x: New files. > > FreeBSD make (and gmake) both want to rebuild all .s files, but > this otherwise seems to work. FreeBSD にも対応するのかな。
973 名前:デフォルトの名無しさん mailto:sage [2006/02/04(土) 02:32:09 ] Lispで記述された結構な量のライブラリがあって、これをC/C++から簡単に呼び出せる ようにしたいのですがお勧めの処理系はどれになりますか? LispからC/C++を呼び出す例はいろんな処理系でドキュメントが整備されてますが 逆はあまりやられてないようなので。ECLがC/C++との親和性が高いかなと思っていじって いるんですがどの程度規格に準拠してるかとか、いまのライブラリがそのまま コンパイルできるかなとか疑問な点がまだ多いので識者の意見をお聞かせいただければ、と。
974 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 04:04:49 ] 授業でLISP習ったんだけど 最初なんじゃこりゃ頭いてーと思ったけど これ結構おもすれー(^ω^)
975 名前:デフォルトの名無しさん mailto:sage [2006/02/13(月) 23:01:02 ] (eval '(^ω^)) おもすれー おもすれー
976 名前:デフォルトの名無しさん [2006/02/14(火) 16:39:01 ] JAVAからclispを呼び出せるようになったのだが、何に使えるだろう?
977 名前:デフォルトの名無しさん mailto:sage [2006/02/14(火) 19:36:49 ] >>976 JAVAからclispを呼び出すのに使える
978 名前:デフォルトの名無しさん mailto:sage [2006/02/14(火) 19:48:30 ] >>977 それには気がつかなかった
979 名前:デフォルトの名無しさん mailto:sage [2006/02/14(火) 21:49:00 ] >>977 目からうろこが(ry ま、clispがjavaから呼べてもLISPを使用しなければならない 業務処理が思いつかん。 やhり無駄なものを作ってしまったか。
980 名前:デフォルトの名無しさん mailto:sage [2006/02/14(火) 21:55:01 ] Servlet を Common Lisp で書けたりすると面白いかも。 そうなると Lisp 自体も Java VM 上で動かして、高速に相互呼び出しできる ようにしたくなるね。
981 名前:デフォルトの名無しさん mailto:sage [2006/02/14(火) 21:58:04 ] じゃ、ABCL で。
982 名前:デフォルトの名無しさん mailto:sage [2006/02/14(火) 22:37:55 ] >Java VM 上で動かして それってjavaでlispの処理系を書くということ? どこかにありそうな気がするな。 基本的にjarかなんかでjavaコードの中でlispコードが 走れば最高なんだけどな。 XMLのパースとか楽になるんだが。
983 名前:デフォルトの名無しさん mailto:sage [2006/02/14(火) 22:40:37 ] >>982 それが >>981 (armedbear.org/abcl.html ) です...
984 名前:デフォルトの名無しさん mailto:sage [2006/02/14(火) 23:03:52 ] >>983 すごいねコレ。 早速使ってみるわ、thx
985 名前:デフォルトの名無しさん mailto:sage [2006/02/14(火) 23:10:57 ] (format t \"Hello, world!~%\")が8秒かかるんだが、 compileすれば早くなる?
986 名前:デフォルトの名無しさん mailto:sage [2006/02/14(火) 23:16:04 ] スマソ。俺はちゃんと使った事がある訳じゃないんで詳細は知りません。 テキストエディタに使われているくらいだから、そんなに遅くはないと 思いたいけど。 armedbear-j.sourceforge.net/ JavaVM の起動とクラスのロードに時間が掛かってるとかじゃなくて?
987 名前:デフォルトの名無しさん mailto:sage [2006/02/14(火) 23:21:24 ] >JavaVM の起動 それだ。 別のVMを起動するのに時間がかかっているのか。 同一VMで動くようにすれば早そうだ。
988 名前:デフォルトの名無しさん mailto:sage [2006/02/14(火) 23:53:28 ] うちではこんな感じ。jikes でコンパイルしてたから、javac ならもっと速いかも。 別の VM を起動したりはしないと思うよ。初回だけ妙に遅いね。 % ./abcl Armed Bear Common Lisp 0.0.9 (built Tue Feb 14 2006 23:40:55 --900) Java 1.4.2_09 Apple Computer, Inc. Java HotSpot(TM) Client VM Low-level initialization completed in 2.388 seconds. Startup completed in 9.052 seconds. Type :HELP for a list of available commands. CL-USER(1): (time (format t "hello, world~%")) hello, world 5.287 seconds real time 62770 cons cells NIL CL-USER(2): (time (format t "hello, world~%")) hello, world 0.0020 seconds real time 67 cons cells NIL CL-USER(3):
989 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 00:54:59 ] うちは Windows でやってみたが、やはり一発目は遅いね。 クラスライブラリのロードか何かだろう。 Armed Bear Common Lisp 0.0.9 (built Wed Feb 15 2006 00:49:19 --900) Java 1.5.0_04 Sun Microsystems Inc. Java HotSpot(TM) Client VM Low-level initialization completed in 0.563 seconds. Startup completed in 2.172 seconds. Type :HELP for a list of available commands. CL-USER(1): (time (format t "hello, world~%")) hello, world 1.203 seconds real time 62770 cons cells NIL CL-USER(2): (time (format t "hello, world~%")) hello, world 0.0 seconds real time 67 cons cells NIL CL-USER(3):
990 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 01:19:54 ] すみません、インストールしてabclからjreのメソッドとかは呼び出せるんですがサンプルのhello.javaがコンパイルできません。 どうすれば・・・いいんでしょう F:\abcl-0.0.9\examples>javac hello.java hello.java:1: パッケージ org.armedbear.lisp は存在しません。 import org.armedbear.lisp.*; ^ hello.java:8: シンボルを見つけられません。 シンボル: クラス Interpreter 場所 : hello の クラス Interpreter interpreter = Interpreter.createInstance(); ^ hello.java:8: シンボルを見つけられません。 シンボル: 変数 Interpreter 場所 : hello の クラス Interpreter interpreter = Interpreter.createInstance(); ^ エラー 3 個
991 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 01:38:37 ] >>990 cd examples javac -classpath ../abcl.jar hello.java java -classpath ../abcl.jar;. hello みたいな感じで動いたよ。
992 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 01:46:49 ] >>991 おお!動いた、動きましたありがとう!
993 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 13:05:42 ] ABCLでだが Interpreter interpreter = Interpreter.createInstance(); LispObject obj = interpreter.eval("(print (directory \"c:/\")"); これが動かない理由が分からない。 XYZZYだと動くんだが。
994 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 13:54:15 ] >>993 Common Lisp の仕様判ってる? xyzzy なんて方言を持ち出されても・・・
995 名前:ゲハシマ mailto:sage [2006/02/15(水) 19:17:27 ] >>994 偉そうに言うだけか? 仕様とやらを示してみろよ
996 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 20:17:09 ] >>995 大馬鹿発見!!
997 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 20:18:53 ] とりあえず >>102
998 名前:993 mailto:sage [2006/02/15(水) 20:59:40 ] >994 主にjavaしか触らないので言語仕様は良くはしらないが、 XYZZYとは微妙に違うということは解った。 >995 あんた誰?
999 名前:993 mailto:sage [2006/02/15(水) 21:12:49 ] あるディレクトリの拡張子が指定されたものであった場合に、条件に 合致する全てのファイルを削除するlisp式ってどう書きます?
1000 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 21:21:35 ] CL-FAD を使えば (fad:walk-directory #p"/home/onjo/tmp/" ;; ディレクトリを指定 #'(lambda (p) (when (string-equal (pathname-type p) "txt") ;; 条件判定 (fad:delete-directory-and-files p))))
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。