1 名前:デフォルトの名無しさん [2008/07/12(土) 12:43:33 ] 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))
702 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 11:54:39 ] >>701 こちらで試したところ、エラーなくコンパイル出来ました。 #+を使うときは、 #+clisp フォーム(S式やアトム) のように使いますが、#+が有効なのは、直後の一つだけの フォームですが、そのへんはお分かりになっていますか? ;; 例 #+clisp (defun foo () ...) ; #+clispが有効 (defun bar () ...) ; #+clispとは無関係 また、以下のようにも書けたりします。 (setq hoge #+clisp 1 #+sbcl 2) ; clispなら1、sbclなら2がhogeに代入される。 そうでなければ、あとはslimeの設定の問題とか…。
703 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 13:52:35 ] >>702 すみません,うまくいきました. >#+が有効なのは、直後の一つだけの >フォームですが、そのへんはお分かりになっていますか? これをわかってなかったようです.
704 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 09:27:31 ] >>695 HyperSpecのCHMを作ってくれるソフトならあった。 ttp://sourceforge.net/project/showfiles.php?group_id=30035&package_id=203252
705 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 12:47:22 ] >>704 これは便利だ!
706 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 13:15:14 ] dpans2textもよろしくお願いします
707 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 14:25:45 ] 以前に非常にわかりやすいcommon lisp のchear sheetが紹介されてましたが どなたかサイトをおおしえいただけないでしょうか?
708 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 14:26:31 ] chear sheet -> cheat sheet でした
709 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 14:56:04 ] これ? clqr.berlios.de/
710 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 15:21:00 ] >>709 これいいね。製本したの売って欲しい。1000円までなら出す。w
711 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 17:15:47 ] defmacroの中の`を,式の中で一時的に無効化したい場合ってどうすればいいんだろ?
712 名前: cm74.opt2.point.ne.jp mailto:sage [2008/09/16(火) 18:00:25 ] >>711 どういう時にそんなことがしたくなるの?
713 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 18:05:30 ] >>712 :keyのオプションがあるときとないときで,生成される式を変えたい.
714 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 18:11:47 ] 「何を知りたいか」よりも「(最終的に)何をやりたいか」を書いたほうが適切なアドバイスが 受けられることが多い。自分の考えたアプローチが適切でない場合があるからだ。
715 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 18:12:39 ] >>713 もうちょっと具体的に
716 名前: gh133.opt2.point.ne.jp デフォルトの名無しさん mailto:sage [2008/09/16(火) 18:21:41 ] (defmacro foo (&key (key 'default sup?)) (if sup? `(progn '(key => ,key)) `(progn ',key))) (foo :key foo) (KEY => FOO) (foo) DEFAULT こういうことかな?
717 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 18:27:13 ] >>714 , 713 ありがとうございます. 私が欲しているのは,closeを書かなくても最終的に勝手にcloseしてくれる with-open-stream見たいなマクロです. 今通信のプログラムを書いおり.ClientとServerに分かれた プログラムなのですが,ClientからServerにコマンドを発行します. このときClientがServerに向けて発行したコマンドが適切でなかった場合や, コマンドの実行が失敗したとき,ServerはFAILED的なメッセージを返したいの ですが,多数あるコマンドを処理するハンドラがnilを返したら,FAILEDを返信する コードを自分で書くのは面倒なので,マクロで何とかできないかなと思ったわけです. いろいろ書きましたが,最終的にはこれがやりたいことです.
718 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 19:52:06 ] unwind-protectはどうかな
719 名前:o mailto:sage [2008/09/16(火) 20:17:08 ] なんか>>716 さんの挙げてくれたコードを参考にしたら すんなり望みのものが得られました. もうひとつ質問なのですが, format関数で新しい行を追記するのではなく,ある場所に上書するのは どうすればよいのでしょうか? 何をしたいのかというと,Linuxのtopコマンドみたいな出力を行いたいです.
720 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 20:19:48 ] curses について学んでみましょう
721 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 00:32:40 ] つ common-lisp.net/project/cl-ncurses/
722 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 00:57:46 ] >>721 cl-ncursesをSBCL 1.0.11.debianにasdfで自動インストールしようと思ったら ; loading system definition from /usr/lib/sbcl/site-systems/cl-ncurses.asd into ; #<PACKAGE "ASDF0"> ; registering #<SYSTEM :CL-NCURSES {AC27721}> as CL-NCURSES ; loading system definition from /usr/lib/sbcl/site-systems/uffi.asd into ; #<PACKAGE "ASDF0"> ; registering #<SYSTEM UFFI {ADD6159}> as UFFI STYLE-WARNING: defining *NULLPTR* as a constant, even though the name follows the usual naming convention (names like *FOO*) for special variables ;;; Loading #P"/usr/lib/libncurses.so" NIL * debugger invoked on a SB-INT:SIMPLE-READER-ERROR in thread #<THREAD "initial thread" {A84D681}>: SB-INT:SIMPLE-READER-ERROR on #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDIN* {9115901}>: unmatched close parenthesis Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL. restarts (invokable by number or by possibly-abbreviated name): 0: [ABORT] Exit debugger, returning to top level. (SB-INT:SIMPLE-READER-ERROR #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDIN* {9115901}> "unmatched close parenthesis") 0] :0 こんなメッセージが出てとまってしまいます...どうすればよいのでしょう?
723 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 01:51:19 ] デバッグすればいいんじゃね? | unmatched close parenthesis とかいわれてるから括弧の対応がおかしいところがあるんではないかと。
724 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 08:23:44 ] カーソル位置移動したいだけならエスケープシーケンス直接出力すればいいんじゃね?
725 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 16:17:55 ] それが端末によって統一されていないからcursesのようなものがあるのでは?
726 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 18:37:26 ] termcap/terminfoで済むことも多い。
727 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 17:32:18 ] ((1 2 3) (4 5 6)) 見たいなリストが与えられて (要素の数は不定,だから((1 2 3) (4 5 6) (7 8 9)...)かもしれないし((1 2 3))かもしれない) それを(mapcar #'+ '(1 2 3) '(4 5 6) '(7 8 9)) 見たいな感じでばらしてmapcarに渡したいんだけど,こういう場合どういう風に すればエレガントですかね?
728 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 17:42:59 ] >>727 (apply #'mapcar (cons #'+ '((1 2 3) (4 5 6))))
729 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 17:53:04 ] >>728 これは面白い! こういうのをさっと思いつけるようになりたいなぁ
730 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 18:02:04 ] (apply #'+ (flatten '(1 2 3) '(4 5 6) '(7 8 9)))
731 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 18:02:55 ] (apply #'+ (flatten '((1 2 3) (4 5 6) (7 8 9)))) こっちだった。
732 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 18:05:29 ] flattenって標準じゃないべ。それに期待してる結果と違う希ガス。
733 名前: router1.gpy1.ms246.net mailto:sage [2008/09/18(木) 20:27:04 ] (apply #'mapcar #'+ '((1 2 3) (4 5 6) (7 8 9))) (loop for i in '((1 2 3) (4 5 6) (7 8 9)) sum (apply #'+ i))
734 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 21:27:11 ] Lisp初心者です。 SBCL 1.0.20 + clsql + mysqlで日本語(UTF-8)が通らなくて困っています。 LinuxUbuntu6にsshでつないでEmacs22.2.1上のslimeです。 クライアントは、windowsXP poderosa4.10 のUTF-8です。 slimeでは日本語は通ります。 ttp://faroffsea.blogspot.com/2007/09/mysqlclsql.html 上のサイトを参考に、 [mysqld] skip-character-set-client-handshake default-character-set = utf8 としてみましたがうまくいきません。 どなたかわかる方いらっしゃいましたら教えてください。 よろしくお願いします。
735 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 21:28:21 ] >>734 続き 動かしてみた状態です。何か問題があるのでしょうか? ; SLIME 2008-07-29 CL-USER> (setf sb-impl::*default-external-format* :utf-8) CL-USER> (setf sb-alien::*default-c-string-external-format* :utf-8) CL-USER>"あいうえお" => "あいうえお" CL-USER> (clsql:connect '("localhost" "name" "name" "p") :database-type :mysql) CL-USER> (clsql:def-view-class tes () ((body :type string)) (:base-table tes)) CL-USER> (clsql:create-view-from-class 'tes) CL-USER> (clsql:insert-records :into "TES" :attributes '(body) :values '("aiueo")) CL-USER> (clsql:insert-records :into "TES" :attributes '(body) :values '("あいうえお")) CL-USER> (clsql:query "select * from TES") (("aiueo") ("?????")) ;;?????になってしまっている。 ("BODY")
736 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 22:54:27 ] M-: slime-net-coding-system M-: default-process-coding-system これらの結果は?
737 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 03:01:32 ] >>736 ありがとうございます。結果は以下です。 M-: slime-net-coding-system => utf-8-unix M-: default-process-coding-system => (mule-utf-8 . mule-utf-8)
738 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 10:33:02 ] 使ったこと無いけど、db-mysql/ の下に ;; if we have :sb-unicode, UFFI will treat :cstring as a UTF-8 string と書いてあったから、普通にビルドしてれば通るんじゃ。 つーか問題の切り分けは出来てるん? mysql直接叩いても化けるのか、sbcl+clsql+mysqlでも化けるのか、 slimeを通したときだけ化けるのか判断できないんだが。
739 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 11:48:21 ] >>738 すべての形でだめです。 sbclのreplから * "あいうえお" => "あいうえお" * (clsql:create-view-from-class 'tes) * (clsql:insert-records :into "TES" :attributes '(body) :values '("あいうえお")) * (clsql:query "select * from TES") (("?????")) ("BODY") mysqlから mysql> show variables like 'char%'; character_set_database,character_set_filesystem,以外全部utf8 mysql> insert into TES values("あいうえお"); mysql> select * from TES; +-------+ | BODY | +-------+ | ????? | | ????? | +-------+
740 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 12:18:34 ] >>739 mysqlで日本語が通らないならmysqlのスレで質問すべきだろう、と思うが
741 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 12:55:53 ] >>740 そうですね。失礼しました。
742 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 13:13:18 ] >>741 あとアドバイスだけど、長い日本語を入れて出力を nkf -g すれば 壊れてるのか、他のエンコードで出力されちゃってるのかは判断できるよ。 参考までに。
743 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 13:30:53 ] >>740 ,742 すみません。すれ違いなのにアドバイスありがとうございました。 mysqlについて調べてみて、character_set_server=utf8 を追加して、DBを構築しなおしてみたらうまくいきました。 おさわがせしました・・・。
744 名前:デフォルトの名無しさん [2008/09/25(木) 00:47:14 ] shibuya.lisp-users.org/2008/09/08/the-age-of-lisp/
745 名前:465 mailto:sage [2008/09/26(金) 19:03:14 ] お久しぶりです。 Lispworksから返信が返ってきたのですがその一部で確認頂きたい事が 有りましたので一部引用いたします。 We would like to invite Kent Pitman (who originally built the HyperSpec) to join this email thread. Is that OK with you? Please let me know. この部分なのですがこの場合はどのようにするべきでしょうか? やはりshibuyalispなどにプロジェクトを立ち上げてそちらをご連絡するのが ベストでしょうか
746 名前:465 mailto:sage [2008/09/26(金) 19:04:06 ] お久しぶりです。 Lispworksから返信が返ってきたのですがその一部で確認頂きたい事が 有りましたので一部引用いたします。 We would like to invite Kent Pitman (who originally built the HyperSpec) to join this email thread. Is that OK with you? Please let me know. この部分なのですがこの場合はどのようにするべきでしょうか? やはりshibuyalispなどにプロジェクトを立ち上げてそちらをご連絡するのが ベストでしょうか
747 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 19:05:11 ] すいません、サーバーエラーで二回書き込んでしまいました。
748 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 08:01:08 ] は? HyperSpec創始者にもこの電子メールの議論に参加してもらいたいっていう だけだろ? yesかnoで答えるだけじゃん。 その引用からなぜ「やはり〜」になるのか意味不明なんだが。
749 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 08:55:32 ] おお、何か(当然の流れとはいえ)話がおおきくなってきたな。ドキドキするぜ。 礼儀で聞いてきてるだけなんだから、どうどうとYESと答えりゃいいんじゃね?
750 名前:465 mailto:sage [2008/09/27(土) 12:44:46 ] わかりました。少し緊張してきました。 YESでいきたいと思います。
751 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 13:46:44 ] はてなでみつけたけど、こんなのあるんだな。 page14.auctions.yahoo.co.jp/jp/auction/s91370712
752 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 15:14:51 ] >>751 オクだからLispMachineでも出てるのかと思ったら 噴いたじゃねぇかゴルァ
753 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 20:24:21 ] こっちなら色んな所にありそうなんだがな。 ttp://dl.getdropbox.com/u/215714/20080419193048.jpg
754 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 04:24:30 ] 上品な大人っぽい雰囲気の『CLISP』。 大人っぽい括弧が括弧良くコードに落ち着きを与えてくれます。 お洒落な関数型や手続き型のような雰囲気があります。CLOS、 MOP、FFIなどお仕事を選ばないデザインも長く飽きずに お使いいただける要素かと思います。
755 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 22:56:49 ] 大量のハッシュの設定が面倒だったので一気に指定できるマクロを作成しました 修正できる所をご教授願います。 (defmacro sethash (table key word) `(setf (gethash ',key ,table) ,word)) (defmacro multiple-sethash (table &rest key-word-lst) `(progn ,@(mapcar #'(lambda (pair) `(sethash ,table ,@pair)) (group key-word-lst 2)))) (defun group (source n) (if (zerop n) (error "zero length")) (labels ((rec (source acc) (let ((rest (nthcdr n source))) (if (consp rest) (rec rest (cons (subseq source 0 n) acc)) (nreverse (cons source acc)))))) (if source (rec source nil) nil)))
756 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 01:10:15 ] >>755 こうすると hello! が2回表示されるよ? On Lisp の「マクロのその他の落し穴 」参照。 (defparameter *hash* (make-hash-table)) (defun my-hash () (format t "hello! ") *hash*) (multiple-sethash (my-hash) :foo 1 :bar 2)
757 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 03:36:55 ] やることの割に長いのがいかんよ。これでよくない? (defmacro puthashmany (table &rest key-and-value-list) `(let ((tbl ,table) (lst ',key-and-value-list)) (loop for (k v . r) on lst by #'cddr do (setf (gethash k tbl) v))))
758 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 04:11:47 ] ボケてた。setfを並べるのが目的か。 (defmacro puthashmany (table &rest key-and-value-list) (let ((tbl (gensym "TBL"))) `(let ((,tbl ,table)) ,@(loop for (k v . r) on key-and-value-list by #'cddr collect `(setf (gethash ,k ,tbl) ,v)))))
759 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 08:26:59 ] こんな処理が遅いのですが、なぜなんでしょう? (defun speed-test (times) (do ((i 0 (1+ i)) (sum 0 (+ sum i))) ((= i times) sum))) 実行してみると・・・ CL-USER> (time (speed-test 10000000)) Real time: 5.828125 sec. Run time: 5.578125 sec. Space: 159668340 Bytes GC: 250, GC time: 1.265625 sec. 49999995000000 5秒以上かかります。Javaだとだいたい100msで終わるのですけど。 Spaceをいっぱい食っているのもよく分かりません。環境はCLISPです。
760 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 10:49:25 ] >>759 とりあえず確認。 コンパイルはした?
761 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 12:23:01 ] >>759 うちのチープマシンじゃ clispの場合コンパイルしても1秒かかる orz sbclだと0.12秒
762 名前:579 mailto:sage [2008/10/03(金) 12:25:44 ] はい、(compile 'speed-test)はしました。 さらに、ちょっと合っているか分からないですけど、 更にこんな感じでチューニングしてみました。 (defun speed-test (times) (declare (optimize (speed 3) (safety 0))) (declare (fixnum times i sum)) (do ((i 0 (1+ i)) (sum 0 (+ sum i))) ((= i times) sum))) でも、何にも効いてないような・・・。 CL-USER> (compile 'speed-test) WARNING: SPEED-TEST is already compiled. SPEED-TEST NIL NIL 実行。 CL-USER> (time (speed-test 10000000)) Real time: 6.28125 sec. Run time: 5.90625 sec. Space: 159668340 Bytes GC: 249, GC time: 1.578125 sec. 49999995000000 逆に遅くなってますね・・・。
763 名前:579 mailto:sage [2008/10/03(金) 12:49:48 ] あれ?>>761 さんの環境だと結構速いんですね。 とりあえず、私の書き方が悪いわけじゃなさそうだということが分かって良かったです。 ちなみに末尾再帰で書いてもあんまり改善しませんでした。というか、遅くなりました。 (defun speed-test (times sum) (if (zerop times) sum (speed-test (- times 1) (+ sum times)))) CL-USER> (compile 'speed-test) WARNING: SPEED-TEST is already compiled. SPEED-TEST NIL NIL CL-USER> (time (speed-test 10000000 0)) Real time: 6.84375 sec. Run time: 6.328125 sec. Space: 159999132 Bytes GC: 250, GC time: 2.25 sec. 50000005000000 CL-USER>
764 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:44:29 ] >>763 clispは末尾再帰を最適化しない(ことが多い? 全然しないのか少しはするのか知らない)。 末尾再帰の最適化をしない処理系で期待しても無駄というもの。 disassembleしてみりゃすぐわかるから確認すれ。
765 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 15:34:30 ] >>763 761だけどclispでコンパイルしないと12秒位かかるんよ,(compile 'speed-test)して1秒
766 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 15:40:23 ] x86_64 clisp 2.42でだけど ちなみに763のコードはコンパイルしないとスタック足りなかった。 [1]> (defun speed-test (times) (do ((i 0 (1+ i)) (sum 0 (+ sum i))) ((= i times) sum))) SPEED-TEST [2]> (time (speed-test 10000000)) Real time: 10.158625 sec. Run time: 10.16 sec. Space: 0 Bytes 49999995000000 [3]> (compile 'speed-test) SPEED-TEST ; NIL ; NIL [4]> (time (speed-test 10000000)) Real time: 0.780928 sec. Run time: 0.78 sec. Space: 0 Bytes 49999995000000 [5]>
767 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 17:57:39 ] >>794 clispはコンパイルしたら末尾再起はループに展開されるぞ
768 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 19:50:20 ] 794です。数日先のみ来から来ました。 767 さん。コメントありがとうございます。知らなかったので大変助かりました。 794で悩んだことはおかげさまで解決しました。
769 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 19:57:28 ] メモリ使用量が多いのは most-positive-fixnum より多きい数字の計算にはメモリを消費するから。 ループを減らして結果が most-positive-fixnum 以下になるようにすると消費メモリが 0 になるのが確認できると思う。 性能は現在のバイトコードインタプリタならこんなもんだろう。タイトループの実行速度でJIT装備のJavaより速いなんてのはムリ。 性能が必要ならトレースキャッシュなJITが実装されるまで待つか、自分で実装するか、別の実装を使うかどちらか。
770 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 20:07:40 ] >>767 えー おれが前にやったらだめでガックリした覚えが
771 名前:579 mailto:sage [2008/10/04(土) 07:57:42 ] >>769 おお!明確な答え、ありがとうございました。 確かに小さな値に対しては速かったんです。 ちょっと処理系を変えながらいろいろ試してみたいと 思います。ありがとうございました。
772 名前:759 mailto:sage [2008/10/04(土) 07:59:21 ] あ、私は>>759 でした。今まで>>579 で書いてた。スミマセン。
773 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 00:03:33 ] sbclを使ってスレッドプログラミングをしています スレッド間通信をさせたいんですが なんかそういう目的のためのキューとかメールボックスとか それ系のデファクトスタンダードなライブラリってないんでしょうか asdf-installからacl-compat入れてみたんですが acl-compat.mp:queueはないみたいなんです
774 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 15:31:04 ] いつのまにかeclでmaxima動くようになってたんですね
775 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 16:48:14 ] sbclのarm portって進行中なの? それとも予定は無い? 教えて詳しい人。
776 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 23:03:47 ] 少なくともここ二年くらいはだれも手をつけていないと思う。それ以前は知らね。
777 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 11:57:25 ] ECL Unicodeサポート開始 ttp://sourceforge.net/forum/forum.php?forum_id=880598 ttp://sourceforge.net/project/screenshots.php?group_id=30035
778 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 23:53:24 ] (let ((hoge #'(lambda ~~))))と (let ((hoge (lambda ~~)))) どっちのlambdaが正しいの? 前者だと思ってるけど、GNU CLISP 2.45だとどっちでも同じ意味で通る。
779 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 00:25:41 ] どっちも正しいよ。HyperSpecで Macro: LAMBDA のページを読むといい。 (macroexpand '(lambda () ())) => #'(lambda () ()) みたいな関数に展開されるマクロとなってる。 どっちを好むかはlisperの中でも好みはわかれるところ。このマクロ導入の経緯はPCLに書いてあるよ。
780 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 00:47:18 ] ありがとう!どっちも正しいのか。 On Lispでは#'だったから疑問に思ってた。 仕様書よんでみます〜 ^o^
781 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 23:43:29 ] (test '(1 2 3 4) '(1 2 3 4 5)) とかやると (append '(1 2 3 4) '(1 2 3 4 5)) 見たいなリストが得られるマクロ(?)がほしいんだけど そのままevalに渡したら,そのまま実行できるやつ形式に出力してくれるやつ. (defmacro test (a b) `(list 'append ,a ,b)) こういう風に書いたんだけど,どうしても (APPEND (1 2 3) (1 2 3)) クオーティングされちゃうんだよな... a, bに渡されたものがそっくりそのままa, bに入るようにはかけないものか?
782 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 23:50:42 ] つ (defmacro test (a b) `'(append ,a ,b))
783 名前:782 mailto:sage [2008/10/29(水) 23:54:28 ] 名前からしてテスト系のマクロを作りたいのかな? とりあえず実践Common Lispの9章まで読んでみるといいと思うよ。 英語OKならPractical Common Lispでもいい。
784 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 00:09:05 ] >>781 aまたはbがコンスで、かつそのcarが'QUOTEの場合だけ、事前にもういっちょquoteしてやったらどうよ
785 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 02:37:06 ] >>783 逆だろ。 「英語がダメなら実践Common Lispでもいい」じゃないのか普通は。 原書である上にタダで読める方を後にもってくる理由がわからん。
786 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 08:33:55 ] そんな怒らなくても…日本語版しか読んでないです。やっぱり原著よまないと駄目なんですか?
787 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 08:50:17 ] >>785 言いたいことはわかる。でもその「理由がわからん」ってのは嘘だねw 「レスって何ですか?」とかの親戚。「あるべき道しか理解できないキャラ」作るの好きだよな、マって。
788 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 09:18:43 ] >>787 天然だろ。 キャラ作るという発想は陰謀論の親戚。
789 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 09:47:38 ] 言葉だけでは人は分かり合えないのさ!
790 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 10:06:32 ] >>788 なんで?
791 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 10:26:39 ] オッカムの剃刀みたいなものだ
792 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 12:12:08 ] 荒れてしまってごめんなさい。英語勉強してから出直します…
793 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 12:47:58 ] 2chで下らない煽り合いを気にしてたら禿げるぞ (defmacro test (fun &rest lists) (let ((form `(,fun ,@lists))) `(format t "~S => ~A" ',form ,form))) (test mapcar #'+ '(1 2 3) '(4 5 6) '(7 8 9)) ↓ (mapcar #'+ '(1 2 3) '(4 5 6) '(7 8 9)) => (12 15 18) こーゆーのはちょこちょこ使う。
794 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 23:12:24 ] >>793 なんでわざわざ引数わけてるの? (defmacro test (&rest form) `(format t "~S => ~A" ',form ,form)) じゃダメなん?
795 名前:793 mailto:sage [2008/10/31(金) 01:04:40 ] うわ。2行目とか全然無駄だね、なんで分けたんだろ
796 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 06:59:48 ] (test) を引数が足りないエラーにするためじゃない?
797 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 18:14:47 ] Lisp in a box (ttp://common-lisp.net/project/lispbox/) を入れてVista上で使いはじめところなんですが、質問があります。 グラフィック系のプログラム(3D-CADや2Dグラフ表示)を 作りたいんですが、お勧めのライブラリとかありますか? 検索でこれ(ttp://www.cliki.net/graphics%20library)を 見つけたんですが、多すぎてどれを選べません。 orz できるだけインストールが簡単なものがいいです。 お知恵をお貸しください。m(_ _)m
798 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 19:18:18 ] 蝶オススメ ttp://miyamuko.s56.xrea.com/xyzzy/cairo/intro.htm
799 名前:797 mailto:sage [2008/11/03(月) 01:23:54 ] >>798 ありがとうございます。 さっそく動かしてみます! 3D系のものも、何かないでしょうか・・・。 3D CADのブール演算のようなものを作りたいんですが、 そのプリ・ポストに使う予定です。
800 名前:デフォルトの名無しさん mailto:sage [2008/11/04(火) 14:15:00 ] slimeでステップ実行デバックはできないのでしょうか?
801 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 01:12:57 ] slime上で (require :hunchentoot) すると落ちる コンソール上だと落ちない
802 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 08:16:51 ] SLIME+CLISP REPLバッファで式を評価すると --- error in process filter: slime-dispatch-event: Elisp destructure-case failed: (:presentation-start 1 :repl-result) error in process filter: Elisp destructure-case failed: (:presentation-start 1 :repl-result) error in process filter: slime-dispatch-event: Elisp destructure-case failed: (:presentation-end 1 :repl-result) error in process filter: Elisp destructure-case failed: (:presentation-end 1 :repl-result) --- みたいなエラーがミニバッファに表示されて、それから結果が返ってきます 何が悪さをしているんでしょう? Emacs側なのかそれともLisp側なのか
803 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 10:30:30 ] >>801 実行環境を書かないと同じ経験した人ですら書き込み不能と思われ
804 名前:801 mailto:sage [2008/11/05(水) 14:16:58 ] >>803 ubuntu8.04 でapt-getでinstallされるsbclとslime emacs22 を使いました hunchentootはasdfでinstallしました
805 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 19:52:19 ] clispでLtkを使っています。 saveinitmem関数で実行形式のGUIアプリケーションを作ったのですが これはポータブルなのでしょうか?それともダウンロードしたユーザーのマシン内にclispや tcl/tk,ltkがインストールされていないと配布しても実行できないのでしょうか? もし実行できないのならLispからGUIを呼び出したアプリケーションの 配布方法を御享受願います。ほかにもCUIのツールがあるのですが どのように配布すればいいのかわからないのでよろしくお願いします。
806 名前:デフォルトの名無しさん mailto:sage [2008/11/17(月) 11:19:53 ] common lispで数値計算簡単にできるようにしようと maximaの関数をsbclから直接利用しようとしたら lapack呼ぶ関数がgclでしか動かないみたいなのだけど 数値計算したかったらgclを使えってことなんでしょうか
807 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 01:14:28 ] clispを使っているのですが ext:run-program をネストするには どのようにすればいいのでしょうか? 開発環境がdebianなので他のOSに有るのかはわかりませんが su-to-rootとという内部コマンドがあり-XオプションをつけるとX上のダイアログで rootになれさらに-c cmdオプションでcmdをroot権限で実行する事ができます。 これとLtkを利用してボタンを押すとsu-to-rootでroot権限を手に入れて cmdを実行するという事をしたいのですがその実行したいcmdにも引数が必要だと (ext:run-program "su-to-root" :arguments '("-X" "-c" "cmd" "cmd-option")) と言う風にするとcmd-optionがsu-to-rootの引数と認識されてしまいます。 そこで (ext:run-program "su-to-root" :arguments '("-X" "-c" "cmd cmd-option")) としてみても動作は同じでした。 これを解決するにはどのようにすればいいのでしょうか? よろしくおねがいします。
808 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 01:22:36 ] >>807 CLの質問じゃない気がするが。俺の環境じゃ "cmd cmd-option" で動く。
809 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 06:02:53 ] そうですか... このような微妙な質問は何処ですればいいのか....
810 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 13:31:38 ] cmuclのrequireがアプリによって動いたり動かなかったりするのはバグですか?
811 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 21:34:10 ] やっぱスレタイがよくないと思うんだ 頭のmake-thread nameが余計だ 一瞬何のスレだかわからん これにせいで明らかに失速してる
812 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 21:54:50 ] そのせいで失速したかは知らないが 前の【入門】Common Lisp そのn【質問よろず】 ってスレタイは 初心者にも優しい感じがして好きだったなあ
813 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 22:57:23 ] 俺も前のスレタイの方がいいと思うな 次にスレ建てするときは戻すのを希望
814 名前:デフォルトの名無しさん mailto:sage [2008/11/30(日) 23:12:55 ] (make-thread :name common-lisp :part 5) した結果が common-lisp :part 5 というスレだよな〜とは思っていた。
815 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 14:21:31 ] ○ Common Lisp × common-lisp
816 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 20:41:07 ] >>812 最初にlispの情報を集める時は 入門 tourotial lisp で検索する 今のスレタイだと検索にひっかからない
817 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 20:49:36 ] tourotial は必須だよな
818 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 21:20:26 ] ポーランド語?
819 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 22:13:54 ] どうでもいい事に時間を使わない それが神のlisper
820 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 00:14:25 ] どうでもいいレスありがとう。
821 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 14:47:37 ] 適当にスペル間違ってもgoogleが自動補正してくれるからな
822 名前:デフォルトの名無しさん mailto:sage [2008/12/23(火) 17:57:00 ] (unsigned-byte 8)のarrayのポインタを指定バイト数だけ進めるのはどうしたらよいのだろうか? サイズを制限(?)するのであればfill-pointerが使えるようだが,書込み開始のオフセット アドレスを指定する方法がわからん 誰か教えてください
823 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 21:01:33 ] >>822 make-arrayの:displaced-toと:displaced-index-offset引数を指定で可能かと ttp://www.lispworks.com/documentation/HyperSpec/Body/f_mk_ar.htm
824 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 14:35:30 ] GUIに関して質問です。 LTK、SDL、CLIMなどがあるということはわかったのですが、それぞれの特徴なんかを教えていただけたらと思います。
825 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 23:02:24 ] あLispスレ1000いったか