(make-thread :name common-lisp :part 5) at TECH
(make-thread :name common-lisp :part 5) - 暇つぶし2ch686:デフォルトの名無しさん
08/09/13 13:52:03
>>685

シャープマクロの一種  #+  を使う。
あるいは、変数*features*の中身をみて振り分ける、とかかな。


;; #+ の例
#+clisp
(princ "Hello")

687:デフォルトの名無しさん
08/09/13 17:48:41
翻訳は止めといた方がいいと思うよ。
これは忠告だよ。会社を通して邦訳本出す、
という形の方がよほど現実的。

何かあったときここのスレッドの住民に
けしられたから~とか言いそうだなあ。

688:465
08/09/13 17:58:37
>>687
それはいいませんが....
どのような点でやめた方がいいのか
お教え願います。

689:デフォルトの名無しさん
08/09/13 18:39:04
一 自力での訳の目途すらついてない
二 他人に頼むにしても自前の人脈がない・そうした作業の経験がない

これでどこへ行こうというのだね
私とその大砲で勝負するか
小僧から石を取り戻せ

690:465
08/09/13 19:22:50
むしろ私と同じ年齢でそういった作業の経験が有る方の方が
珍しいと思うのですが。

691:デフォルトの名無しさん
08/09/13 19:24:33
やりたければやれば。
権利絡みで色々うるさくなったら面倒な事に
まきこまれるのはあなただけで、
ここの住民はいつもと変わらずここで
レス付け続ける、ってだけだから。

692:デフォルトの名無しさん
08/09/13 19:27:22
まあ、とりあえず、翻訳をどんどん進めて継続することだね。
自分の気になっているところからやれば、公開はダメでも身に付くし。
まともな訳を書こうと思うと、生半可な理解では到底無理だから。

693:465
08/09/13 19:30:35
経験を積んでからの方がいいということがよくわかりました。
ですが、今更急に断るわけにもいきませんし、

694:465
08/09/13 19:35:35
とりあえず自分の勉強のためにも公開如何に関わらず翻訳してみることにしました
今のところ30ページほど翻訳してみました。

695:デフォルトの名無しさん
08/09/13 19:42:02
HyperSpecってchmファイルないのかな?
日本語訳はどうでもいいから,chmファイルがほしい

696:デフォルトの名無しさん
08/09/13 20:17:56
進捗状況

>>560
>Hyper Spec
>ファイル数:2318

>>694
>今のところ30ページほど翻訳してみました。

697:デフォルトの名無しさん
08/09/13 20:25:14
暇だっていってるんだし、一年ありゃいけるんじゃないか

698:デフォルトの名無しさん
08/09/13 20:27:08
そろそろウザくなってきた。

699:465
08/09/13 20:28:06
まずは安全に翻訳できる環境を作らなければ

700:デフォルトの名無しさん
08/09/13 20:42:17
MLでも作って、まずは閉じた環境でやってみたらどうかな?
勉強会的な小コミュニティなら、翻訳しても文句は言われんでしょ。
ある程度やってみて、いけそうな雰囲気なら再交渉してオープンにすればいいんだし。

701:デフォルトの名無しさん
08/09/13 21:53:17
>>686
ありがとうございます.
この方法だとSLIMEを使ってC-c C-kでコンパイルしたとき
たとえば
#+clispと#+sbcl
の2つで振り分けていたとして,#+clispはclisp依存のコード,#+sbclのほうは
sbcl依存のコードが書かれていたとき,両方ともコンパイルしようとしてエラーがでて
しまいます.

なんとか,これも分けることはできないのでしょうか?

702:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/09/14 13:52:35
>>702
すみません,うまくいきました.
>#+が有効なのは、直後の一つだけの
>フォームですが、そのへんはお分かりになっていますか?
これをわかってなかったようです.

704:デフォルトの名無しさん
08/09/15 09:27:31
>>695
HyperSpecのCHMを作ってくれるソフトならあった。
URLリンク(sourceforge.net)

705:デフォルトの名無しさん
08/09/15 12:47:22
>>704
これは便利だ!

706:デフォルトの名無しさん
08/09/15 13:15:14
dpans2textもよろしくお願いします

707:デフォルトの名無しさん
08/09/16 14:25:45
以前に非常にわかりやすいcommon lisp のchear sheetが紹介されてましたが
どなたかサイトをおおしえいただけないでしょうか?

708:デフォルトの名無しさん
08/09/16 14:26:31
chear sheet -> cheat sheet でした


709:デフォルトの名無しさん
08/09/16 14:56:04
これ?
URLリンク(clqr.berlios.de)

710:デフォルトの名無しさん
08/09/16 15:21:00
>>709
これいいね。製本したの売って欲しい。1000円までなら出す。w

711:デフォルトの名無しさん
08/09/16 17:15:47
defmacroの中の`を,式の中で一時的に無効化したい場合ってどうすればいいんだろ?

712:cm74.opt2.point.ne.jp
08/09/16 18:00:25
>>711
どういう時にそんなことがしたくなるの?

713:デフォルトの名無しさん
08/09/16 18:05:30
>>712
:keyのオプションがあるときとないときで,生成される式を変えたい.

714:デフォルトの名無しさん
08/09/16 18:11:47
「何を知りたいか」よりも「(最終的に)何をやりたいか」を書いたほうが適切なアドバイスが
受けられることが多い。自分の考えたアプローチが適切でない場合があるからだ。

715:デフォルトの名無しさん
08/09/16 18:12:39
>>713
もうちょっと具体的に

716:gh133.opt2.point.ne.jp デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/09/16 18:27:13
>>714, 713
ありがとうございます.

私が欲しているのは,closeを書かなくても最終的に勝手にcloseしてくれる
with-open-stream見たいなマクロです.

今通信のプログラムを書いおり.ClientとServerに分かれた
プログラムなのですが,ClientからServerにコマンドを発行します.
このときClientがServerに向けて発行したコマンドが適切でなかった場合や,
コマンドの実行が失敗したとき,ServerはFAILED的なメッセージを返したいの
ですが,多数あるコマンドを処理するハンドラがnilを返したら,FAILEDを返信する
コードを自分で書くのは面倒なので,マクロで何とかできないかなと思ったわけです.

いろいろ書きましたが,最終的にはこれがやりたいことです.

718:デフォルトの名無しさん
08/09/16 19:52:06
unwind-protectはどうかな

719:o
08/09/16 20:17:08
なんか>>716さんの挙げてくれたコードを参考にしたら
すんなり望みのものが得られました.

もうひとつ質問なのですが,
format関数で新しい行を追記するのではなく,ある場所に上書するのは
どうすればよいのでしょうか?

何をしたいのかというと,Linuxのtopコマンドみたいな出力を行いたいです.

720:デフォルトの名無しさん
08/09/16 20:19:48
curses について学んでみましょう

721:デフォルトの名無しさん
08/09/17 00:32:40
URLリンク(common-lisp.net)

722:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/09/17 01:51:19
デバッグすればいいんじゃね?

| unmatched close parenthesis
とかいわれてるから括弧の対応がおかしいところがあるんではないかと。

724:デフォルトの名無しさん
08/09/17 08:23:44
カーソル位置移動したいだけならエスケープシーケンス直接出力すればいいんじゃね?

725:デフォルトの名無しさん
08/09/17 16:17:55
それが端末によって統一されていないからcursesのようなものがあるのでは?

726:デフォルトの名無しさん
08/09/17 18:37:26
termcap/terminfoで済むことも多い。

727:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/09/18 17:42:59
>>727
(apply #'mapcar (cons #'+ '((1 2 3) (4 5 6))))

729:デフォルトの名無しさん
08/09/18 17:53:04
>>728
これは面白い!
こういうのをさっと思いつけるようになりたいなぁ

730:デフォルトの名無しさん
08/09/18 18:02:04
(apply #'+ (flatten '(1 2 3) '(4 5 6) '(7 8 9)))

731:デフォルトの名無しさん
08/09/18 18:02:55
(apply #'+ (flatten '((1 2 3) (4 5 6) (7 8 9))))
こっちだった。


732:デフォルトの名無しさん
08/09/18 18:05:29
flattenって標準じゃないべ。それに期待してる結果と違う希ガス。

733:router1.gpy1.ms246.net
08/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:デフォルトの名無しさん
08/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では日本語は通ります。
URLリンク(faroffsea.blogspot.com)
上のサイトを参考に、

[mysqld]
skip-character-set-client-handshake
default-character-set = utf8

としてみましたがうまくいきません。
どなたかわかる方いらっしゃいましたら教えてください。
よろしくお願いします。

735:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/09/23 22:54:27
M-: slime-net-coding-system
M-: default-process-coding-system
これらの結果は?

737:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/09/24 12:18:34
>>739
mysqlで日本語が通らないならmysqlのスレで質問すべきだろう、と思うが

741:デフォルトの名無しさん
08/09/24 12:55:53
>>740
そうですね。失礼しました。

742:デフォルトの名無しさん
08/09/24 13:13:18
>>741
あとアドバイスだけど、長い日本語を入れて出力を nkf -g すれば
壊れてるのか、他のエンコードで出力されちゃってるのかは判断できるよ。
参考までに。

743:デフォルトの名無しさん
08/09/24 13:30:53
>>740,742
すみません。すれ違いなのにアドバイスありがとうございました。
mysqlについて調べてみて、character_set_server=utf8
を追加して、DBを構築しなおしてみたらうまくいきました。
おさわがせしました・・・。

744:デフォルトの名無しさん
08/09/25 00:47:14
URLリンク(shibuya.lisp-users.org)

745:465
08/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
08/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:デフォルトの名無しさん
08/09/26 19:05:11
すいません、サーバーエラーで二回書き込んでしまいました。

748:デフォルトの名無しさん
08/09/27 08:01:08
は? HyperSpec創始者にもこの電子メールの議論に参加してもらいたいっていう
だけだろ? yesかnoで答えるだけじゃん。
その引用からなぜ「やはり~」になるのか意味不明なんだが。

749:デフォルトの名無しさん
08/09/27 08:55:32
おお、何か(当然の流れとはいえ)話がおおきくなってきたな。ドキドキするぜ。
礼儀で聞いてきてるだけなんだから、どうどうとYESと答えりゃいいんじゃね?


750:465
08/09/27 12:44:46
わかりました。少し緊張してきました。
YESでいきたいと思います。

751:デフォルトの名無しさん
08/09/30 13:46:44
はてなでみつけたけど、こんなのあるんだな。
URLリンク(page14.auctions.yahoo.co.jp)

752:デフォルトの名無しさん
08/09/30 15:14:51
>>751
オクだからLispMachineでも出てるのかと思ったら
噴いたじゃねぇかゴルァ

753:デフォルトの名無しさん
08/09/30 20:24:21
こっちなら色んな所にありそうなんだがな。
URLリンク(dl.getdropbox.com)


754:デフォルトの名無しさん
08/10/02 04:24:30
上品な大人っぽい雰囲気の『CLISP』。

大人っぽい括弧が括弧良くコードに落ち着きを与えてくれます。
お洒落な関数型や手続き型のような雰囲気があります。CLOS、
MOP、FFIなどお仕事を選ばないデザインも長く飽きずに
お使いいただける要素かと思います。


755:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/10/03 10:49:25
>>759
とりあえず確認。
コンパイルはした?

761:デフォルトの名無しさん
08/10/03 12:23:01
>>759
うちのチープマシンじゃ
clispの場合コンパイルしても1秒かかる orz
sbclだと0.12秒


762:579
08/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
08/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:デフォルトの名無しさん
08/10/03 13:44:29
>>763
clispは末尾再帰を最適化しない(ことが多い? 全然しないのか少しはするのか知らない)。
末尾再帰の最適化をしない処理系で期待しても無駄というもの。
disassembleしてみりゃすぐわかるから確認すれ。

765:デフォルトの名無しさん
08/10/03 15:34:30
>>763
761だけどclispでコンパイルしないと12秒位かかるんよ,(compile 'speed-test)して1秒



766:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/10/03 17:57:39
>>794
clispはコンパイルしたら末尾再起はループに展開されるぞ

768:デフォルトの名無しさん
08/10/03 19:50:20
794です。数日先のみ来から来ました。
767 さん。コメントありがとうございます。知らなかったので大変助かりました。
794で悩んだことはおかげさまで解決しました。

769:デフォルトの名無しさん
08/10/03 19:57:28
メモリ使用量が多いのは most-positive-fixnum より多きい数字の計算にはメモリを消費するから。
ループを減らして結果が most-positive-fixnum 以下になるようにすると消費メモリが 0 になるのが確認できると思う。
性能は現在のバイトコードインタプリタならこんなもんだろう。タイトループの実行速度でJIT装備のJavaより速いなんてのはムリ。
性能が必要ならトレースキャッシュなJITが実装されるまで待つか、自分で実装するか、別の実装を使うかどちらか。

770:デフォルトの名無しさん
08/10/03 20:07:40
>>767
えー
おれが前にやったらだめでガックリした覚えが


771:579
08/10/04 07:57:42
>>769
おお!明確な答え、ありがとうございました。
確かに小さな値に対しては速かったんです。
ちょっと処理系を変えながらいろいろ試してみたいと
思います。ありがとうございました。

772:759
08/10/04 07:59:21
あ、私は>>759でした。今まで>>579で書いてた。スミマセン。

773:デフォルトの名無しさん
08/10/08 00:03:33
sbclを使ってスレッドプログラミングをしています
スレッド間通信をさせたいんですが
なんかそういう目的のためのキューとかメールボックスとか
それ系のデファクトスタンダードなライブラリってないんでしょうか
asdf-installからacl-compat入れてみたんですが
acl-compat.mp:queueはないみたいなんです

774:デフォルトの名無しさん
08/10/10 15:31:04
いつのまにかeclでmaxima動くようになってたんですね


775:デフォルトの名無しさん
08/10/15 16:48:14
sbclのarm portって進行中なの?
それとも予定は無い?
教えて詳しい人。

776:デフォルトの名無しさん
08/10/21 23:03:47
少なくともここ二年くらいはだれも手をつけていないと思う。それ以前は知らね。

777:デフォルトの名無しさん
08/10/25 11:57:25
ECL Unicodeサポート開始
URLリンク(sourceforge.net)
URLリンク(sourceforge.net)


778:デフォルトの名無しさん
08/10/27 23:53:24
(let ((hoge #'(lambda ~~))))と
(let ((hoge (lambda ~~)))) どっちのlambdaが正しいの?
前者だと思ってるけど、GNU CLISP 2.45だとどっちでも同じ意味で通る。

779:デフォルトの名無しさん
08/10/28 00:25:41
どっちも正しいよ。HyperSpecで Macro: LAMBDA のページを読むといい。
(macroexpand '(lambda () ())) => #'(lambda () ()) みたいな関数に展開されるマクロとなってる。
どっちを好むかはlisperの中でも好みはわかれるところ。このマクロ導入の経緯はPCLに書いてあるよ。

780:デフォルトの名無しさん
08/10/28 00:47:18
ありがとう!どっちも正しいのか。
On Lispでは#'だったから疑問に思ってた。
仕様書よんでみます~ ^o^

781:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/10/29 23:50:42
つ (defmacro test (a b) `'(append ,a ,b))

783:782
08/10/29 23:54:28
名前からしてテスト系のマクロを作りたいのかな?
とりあえず実践Common Lispの9章まで読んでみるといいと思うよ。
英語OKならPractical Common Lispでもいい。

784:デフォルトの名無しさん
08/10/30 00:09:05
>>781
aまたはbがコンスで、かつそのcarが'QUOTEの場合だけ、事前にもういっちょquoteしてやったらどうよ

785:デフォルトの名無しさん
08/10/30 02:37:06
>>783
逆だろ。
「英語がダメなら実践Common Lispでもいい」じゃないのか普通は。
原書である上にタダで読める方を後にもってくる理由がわからん。

786:デフォルトの名無しさん
08/10/30 08:33:55
そんな怒らなくても…日本語版しか読んでないです。やっぱり原著よまないと駄目なんですか?

787:デフォルトの名無しさん
08/10/30 08:50:17
>>785
言いたいことはわかる。でもその「理由がわからん」ってのは嘘だねw
「レスって何ですか?」とかの親戚。「あるべき道しか理解できないキャラ」作るの好きだよな、マって。

788:デフォルトの名無しさん
08/10/30 09:18:43
>>787
天然だろ。
キャラ作るという発想は陰謀論の親戚。

789:デフォルトの名無しさん
08/10/30 09:47:38
言葉だけでは人は分かり合えないのさ!

790:デフォルトの名無しさん
08/10/30 10:06:32
>>788
なんで?

791:デフォルトの名無しさん
08/10/30 10:26:39
オッカムの剃刀みたいなものだ

792:デフォルトの名無しさん
08/10/30 12:12:08
荒れてしまってごめんなさい。英語勉強してから出直します…

793:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/10/30 23:12:24
>>793
なんでわざわざ引数わけてるの?
(defmacro test (&rest form)
 `(format t "~S => ~A" ',form ,form))
じゃダメなん?

795:793
08/10/31 01:04:40
うわ。2行目とか全然無駄だね、なんで分けたんだろ

796:デフォルトの名無しさん
08/10/31 06:59:48
(test) を引数が足りないエラーにするためじゃない?

797:デフォルトの名無しさん
08/11/02 18:14:47
Lisp in a box (URLリンク(common-lisp.net))
を入れてVista上で使いはじめところなんですが、質問があります。

グラフィック系のプログラム(3D-CADや2Dグラフ表示)を
作りたいんですが、お勧めのライブラリとかありますか?

検索でこれ(URLリンク(www.cliki.net))を
見つけたんですが、多すぎてどれを選べません。 orz

できるだけインストールが簡単なものがいいです。
お知恵をお貸しください。m(_ _)m


798:デフォルトの名無しさん
08/11/02 19:18:18
蝶オススメ
URLリンク(miyamuko.s56.xrea.com)


799:797
08/11/03 01:23:54
>>798
ありがとうございます。
さっそく動かしてみます!

3D系のものも、何かないでしょうか・・・。
3D CADのブール演算のようなものを作りたいんですが、
そのプリ・ポストに使う予定です。

800:デフォルトの名無しさん
08/11/04 14:15:00
slimeでステップ実行デバックはできないのでしょうか?

801:デフォルトの名無しさん
08/11/05 01:12:57
slime上で
(require :hunchentoot)
すると落ちる

コンソール上だと落ちない

802:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/11/05 10:30:30
>>801
実行環境を書かないと同じ経験した人ですら書き込み不能と思われ

804:801
08/11/05 14:16:58
>>803
ubuntu8.04
でapt-getでinstallされるsbclとslime
emacs22
を使いました
hunchentootはasdfでinstallしました

805:デフォルトの名無しさん
08/11/14 19:52:19
clispでLtkを使っています。
saveinitmem関数で実行形式のGUIアプリケーションを作ったのですが
これはポータブルなのでしょうか?それともダウンロードしたユーザーのマシン内にclispや
tcl/tk,ltkがインストールされていないと配布しても実行できないのでしょうか?

もし実行できないのならLispからGUIを呼び出したアプリケーションの
配布方法を御享受願います。ほかにもCUIのツールがあるのですが
どのように配布すればいいのかわからないのでよろしくお願いします。

806:デフォルトの名無しさん
08/11/17 11:19:53
common lispで数値計算簡単にできるようにしようと
maximaの関数をsbclから直接利用しようとしたら
lapack呼ぶ関数がgclでしか動かないみたいなのだけど

数値計算したかったらgclを使えってことなんでしょうか

807:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/11/25 01:22:36
>>807
CLの質問じゃない気がするが。俺の環境じゃ "cmd cmd-option" で動く。

809:デフォルトの名無しさん
08/11/25 06:02:53
そうですか...
このような微妙な質問は何処ですればいいのか....

810:デフォルトの名無しさん
08/11/25 13:31:38
cmuclのrequireがアプリによって動いたり動かなかったりするのはバグですか?

811:デフォルトの名無しさん
08/11/30 21:34:10
やっぱスレタイがよくないと思うんだ
頭のmake-thread nameが余計だ
一瞬何のスレだかわからん
これにせいで明らかに失速してる

812:デフォルトの名無しさん
08/11/30 21:54:50
そのせいで失速したかは知らないが
前の【入門】Common Lisp そのn【質問よろず】 ってスレタイは
初心者にも優しい感じがして好きだったなあ

813:デフォルトの名無しさん
08/11/30 22:57:23
俺も前のスレタイの方がいいと思うな
次にスレ建てするときは戻すのを希望

814:デフォルトの名無しさん
08/11/30 23:12:55
(make-thread :name common-lisp :part 5)

した結果が common-lisp :part 5 というスレだよな~とは思っていた。


815:デフォルトの名無しさん
08/12/01 14:21:31
○ Common Lisp
× common-lisp

816:デフォルトの名無しさん
08/12/02 20:41:07
>>812
最初にlispの情報を集める時は

入門 tourotial lisp

で検索する
今のスレタイだと検索にひっかからない

817:デフォルトの名無しさん
08/12/02 20:49:36
tourotial は必須だよな

818:デフォルトの名無しさん
08/12/02 21:20:26
ポーランド語?

819:デフォルトの名無しさん
08/12/02 22:13:54
どうでもいい事に時間を使わない
それが神のlisper

820:デフォルトの名無しさん
08/12/03 00:14:25
どうでもいいレスありがとう。

821:デフォルトの名無しさん
08/12/03 14:47:37
適当にスペル間違ってもgoogleが自動補正してくれるからな


822:デフォルトの名無しさん
08/12/23 17:57:00
(unsigned-byte 8)のarrayのポインタを指定バイト数だけ進めるのはどうしたらよいのだろうか?
サイズを制限(?)するのであればfill-pointerが使えるようだが,書込み開始のオフセット
アドレスを指定する方法がわからん

誰か教えてください

823:デフォルトの名無しさん
08/12/24 21:01:33
>>822
make-arrayの:displaced-toと:displaced-index-offset引数を指定で可能かと
URLリンク(www.lispworks.com)


824:デフォルトの名無しさん
08/12/30 14:35:30
GUIに関して質問です。
LTK、SDL、CLIMなどがあるということはわかったのですが、それぞれの特徴なんかを教えていただけたらと思います。

825:デフォルトの名無しさん
09/01/13 23:02:24
あLispスレ1000いったか


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch