【入門】Common Lisp その6【質問よろず】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2009/02/18(水) 00:22:16初心者のQ&A
本スレでは恥ずかしくて聞けない人のQ&A
本スレは高度すぎて割り込めない人のQ&A
linuxでなくてwindowsでやりたいんですが・・・Q&A
lispを使用してC#やJAVAの代替にするための方法(おまけ)
ま、ゆっくりたりましょう。
「いいものの本質は、いかなる時代においても変わらない」byパワーズ
(list
(url http://pc8.2ch.net/test/read.cgi/tech/1101386936/l50 :part 1)
(url http://pc11.2ch.net/test/read.so/tech/1140012484/l50 :part 2)
(url http://pc11.2ch.net/test/read.so/tech/1181479267/l50 :part 3)
(url http://pc11.2ch.net/test/read.cgi/tech/1201402366/l50 :part 4)
(url http://pc11.2ch.net/test/read.cgi/tech/1215834213/l50 :part 5))
□テンプレート置き場□
ttp://wiki.fdiary.net/lisp/ (id:guest pass:cl)
0446デフォルトの名無しさん
2009/08/19(水) 22:44:49ありがとう。やはりclispが妥当ですか。
0447デフォルトの名無しさん
2009/08/20(木) 04:24:240448デフォルトの名無しさん
2009/08/20(木) 06:54:540449デフォルトの名無しさん
2009/08/20(木) 09:46:430450デフォルトの名無しさん
2009/08/20(木) 10:09:27commonlispの上でschemeを動かす
こんなのclerなら簡単だよね?
0451デフォルトの名無しさん
2009/08/21(金) 00:07:17clozuer clが該当したけどXP64bit版でMeadowからslime経由で64bitのCCLを実行すると落ちるんだよね
32bit版のCCLは起動自体拒否されちゃうし
ちなみにThreadさえ使わないならSBCLは凄く使いやすいのだけど、hunchentootで遊ぼうとかするとモウダメポ
ACL店売りしてくんろ >> Franz
0452デフォルトの名無しさん
2009/08/21(金) 00:26:310453デフォルトの名無しさん
2009/08/21(金) 16:23:080454デフォルトの名無しさん
2009/08/21(金) 17:52:20するのってどうやったらよいのでしょう.
vectorクラスを定義しておいて,+オペレーターの引数にvectorクラスが
渡されたら,自分が定義した処理を行うみたいな...
C++でいうoperatorみたなのをやりたいんですが...
教えてください
0455デフォルトの名無しさん
2009/08/21(金) 18:42:21汎関数ならオーバーライド的なことはできるけど、
+はただの関数だから無理では。
C++と違って+はオペレーターじゃないぞ。
0456デフォルトの名無しさん
2009/08/21(金) 18:43:14ちなみに汎関数(これって自分が定義する関数ってことですよね?)
どうするんでしょう??
0457デフォルトの名無しさん
2009/08/21(金) 19:18:39厳密には間違い。
ユーザ定義関数なら defun を使うが、
汎関数は defmethod を使って定義する。
汎関数のほうが汎用性が高く、引数の型によって
同じ名前の別の関数を定義可能。
> どうするんでしょう??
(defmethod funcname ((変数名 型名) 変数...)
本体)
みたいな感じ。
http://www.geocities.jp/m_hiroi/clisp/clisp04.html
↑あたりが詳しいかな。
0458デフォルトの名無しさん
2009/08/21(金) 21:06:03総称関数を普通汎関数なんて言わない
0459デフォルトの名無しさん
2009/08/21(金) 22:13:200460デフォルトの名無しさん
2009/08/21(金) 23:19:25汎関数てのは無いが汎変数てのがあるね。(defsetf)
0461デフォルトの名無しさん
2009/08/22(土) 09:53:44http://www.bk1.jp/product/03125439
0462デフォルトの名無しさん
2009/08/22(土) 10:24:30なんでサイエンス社で出さないんだろう。
旧版、持ってるけどお布施で買うか。
因みに未だ読んでない。
0463デフォルトの名無しさん
2009/08/22(土) 12:24:33旧版って20年も前の本ですよ。
随分と寝かしましたな〜w
0464デフォルトの名無しさん
2009/08/22(土) 13:59:07何年か前に古本屋で買ったんですよ。で、積読になってるんです。
0465デフォルトの名無しさん
2009/08/27(木) 20:53:45ところで、CLに確率過程を取り扱えるライブラリってある?
0466デフォルトの名無しさん
2009/08/29(土) 22:47:13lambda (f x) (funcall f x))
こんなのを定義したときの動きがよくわかりません
0467デフォルトの名無しさん
2009/08/29(土) 23:22:46頭の括弧が抜けてるだけだよね?
それだと、
変数f と 変数x を引数に取って
変数xの値を引数にして
変数fに束縛されている関数を呼び出すlambda
になってる。
その例だと少しややこしいから、以下の関数と見比べて考えてみて欲しい。
(funcall '1+ 1)
(funcall (lambda (x y) (+ x y)) 1 2)
0468名無しさん@そうだ選挙に行こう
2009/08/30(日) 06:43:070469デフォルトの名無しさん
2009/09/15(火) 04:10:49Snow LeopardにしたらSBCLが動かなくなってクマった。Maximaも使えないよ。(*・(エ)・*)
0470デフォルトの名無しさん
2009/09/15(火) 05:47:39> Snow LeopardにしたらSBCLが動かなくなってクマった。Maximaも使えないよ。(*・(エ)・*)
clisp でやりゃいいじゃん。オレはしぶとく Tiger で Maxima 使ってるけど。
0471デフォルトの名無しさん
2009/09/15(火) 05:57:340472デフォルトの名無しさん
2009/09/15(火) 08:59:53Scheme出身ですかね?
0473デフォルトの名無しさん
2009/09/15(火) 10:40:46cmucl とかあかんの?
0474デフォルトの名無しさん
2009/09/15(火) 13:12:08コンパイルするには若干修正が必要です。
0475デフォルトの名無しさん
2009/09/15(火) 17:11:18sbclに慣れたので長いタイプが不便
0476デフォルトの名無しさん
2009/09/15(火) 20:03:57Lisp Schemeスレはとうとうパンドラの箱を開けてしまった。
災厄なのか、キボウなのか。
0477デフォルトの名無しさん
2009/09/15(火) 23:23:05携帯の場合はアカロムになるから覚悟しとけよ。
0478デフォルトの名無しさん
2009/09/15(火) 23:34:140479デフォルトの名無しさん
2009/09/15(火) 23:37:57その態度も今の内だな。
世の中甘くないぜ。
0480デフォルトの名無しさん
2009/09/15(火) 23:45:390481デフォルトの名無しさん
2009/09/15(火) 23:57:31勘違いしてるみたいだが、俺は荒らしている人間とは別だぞ。
下らないゴタゴタをこっちのスレまで持って来るなよ。
0482デフォルトの名無しさん
2009/09/16(水) 12:21:16お金ケチると駄目だね
0483デフォルトの名無しさん
2009/09/16(水) 12:30:33SBCL も使えなくはないんじゃないかなぁ。 面倒だろうけど。
0484デフォルトの名無しさん
2009/09/16(水) 13:10:50clbuildも途中までは動いた
0485デフォルトの名無しさん
2009/09/16(水) 13:47:04ここのpython実装はどれくらい使えるんだろう
0486デフォルトの名無しさん
2009/09/16(水) 17:48:07~/.clisprc.lisp
に
(load "FullPath\\asdf.lisp")
(push "C:\\usr\\share\\common-lisp\\systems" asdf:*central-registry*)
と書いて
C:\\usr\\share\\common-lisp\\systems
にcffi.asdのリンクを置いた
しかし
(asdf:operate 'asdf:load-op :cffi)
とすると
*** - MAKE-PATHNAME: Illegal :TYPE argumen
The following restarts are available:
ABORT :R1 Abort main loop
となってうまく動かない
参考にしたのは
http://mono.kmc.gr.jp/~mak/hiki/?lisp%2Flispbuilder%2Fwindows%2Fclisp
0487デフォルトの名無しさん
2009/09/19(土) 16:33:36sshを繋いで、sbclをインストールするためにsh install.shをすると、
mkdir: /usr/local/share/info: Permission deniedと出るので、
install.shを開いて、変数:DEFAULT_INSTALL_ROOTを権限のある自分のディレクトリに変更、その後もういちどsh install.shとすると、
SBCL has been installed:
binary /home/[*ユーザ名]/bin/sbcl
core and contribs in /home/[*ユーザ名]/lib/sbcl/
と表示されたものの、テストcgiではサーバエラー(500)が出ました。
cgi内容:
#!/home/[*ユーザ名]/bin/sbcl
(format t "Content-Type: text/html~%~%")
(format t "<html><body>~%")
(format t "test~%")
(format t "</body></html>~%")
うーん、何か間違ってますかね?
0488デフォルトの名無しさん
2009/09/19(土) 16:45:14そのCGIの名前は? シェルから起動して動く? 権限の設定は?
~% で CR+LF が出力されているか確認した?
0489デフォルトの名無しさん
2009/09/19(土) 17:01:39ありがとうございます。
名前はtest.cgi、権限は755ですね。改行コードの確認はどうやるのでしょう?
また、シェルで./test.cgiと打ってみると妙なエラーが出ました。
fatal error encountered in SBCL pid 54717:
can't find core file at /usr/local/lib/sbcl//sbcl.core
何故そんなところを・・。
あと、ググっていると関係のありそうなものを見つけたので今試しています。
http://faroffsea.blogspot.com/2007/06/commonlisp4-sbclcgi.html
http://faroffsea.blogspot.com/2009/01/sbcl.html
とりあえずインストールしたバージョンは1.0.23なので一行目の最後に--scriptを追加するも、駄目ですね。
0490デフォルトの名無しさん
2009/09/19(土) 17:35:45改行コードは od に出力を渡して調べる
とりあえず、Apacheがshebangを見てスクリプト起動できるようにしないと
先には進めないと思う
なので % ./test.cgi が動くようになるまでファイト
# Action, SetHandler, ラッパースクリプトを使えばなんとかなるかもしれないけど
# そこまでしても労に見合わない気がする
0491デフォルトの名無しさん
2009/09/19(土) 17:43:56asdf関係がおかしい気もするんだけど
0492デフォルトの名無しさん
2009/09/19(土) 19:09:170493デフォルトの名無しさん
2009/09/19(土) 20:03:58ちょっと試してみたんだ
さくらインターネットのスタンダード FreeBSD 7.1-RELEASE-p6
sbcl-1.0.23-x86-freebsd
% cd sbcl-1.0.23-x86-freebsd
% setenv INSTALL_ROOT /home/USERNAME/sbcl
% sh install.sh
% cd ~/sbcl/bin
%./sbcl
fatal error encountered in SBCL pid *****:
can't find core file at /usr/local/lib/sbcl//sbcl.core
% setenv SBCL_HOME /home/USERNAME/mysbcl/lib/sbcl
% ./sbcl
This is SBCL 1.0.23, an implementation of ANSI Common Lisp.
[...]
BSD-style licenses. See the CREDITS and COPYING files in the
distribution for more information.
Bus Error
%
\(^o^)/
0494デフォルトの名無しさん
2009/09/19(土) 20:09:24sbclの起動引数
--core corefilename
を使って$HOME以下にインストールされているはずのcoreファイルの場所指定すればいいだけな気がするが?
0495デフォルトの名無しさん
2009/09/19(土) 20:11:01なんかMC68000を直にさわって落としてた頃を思い出したぜ
0496493
2009/09/19(土) 21:10:37SBCL_HOME の代わりに --core を試してみたけど Bus Error
これ以上興味本位で引っ掻き回すのも悪いので成功者の報告を待ちます
0497デフォルトの名無しさん
2009/09/19(土) 21:21:180499493
2009/09/19(土) 22:11:48% uname -m
i386
0500デフォルトの名無しさん
2009/09/20(日) 04:42:30いろいろ試したのですがBus errorですね
改行は問題ないようです
uname -mはi386と出ました
進展があればまた書きます
0501デフォルトの名無しさん
2009/09/20(日) 04:43:590502デフォルトの名無しさん
2009/09/20(日) 08:50:34報告だけで助けにはなれないけど頑張って
0503デフォルトの名無しさん
2009/09/20(日) 11:50:59LispWorksじゃ駄目なんか
0504デフォルトの名無しさん
2009/09/20(日) 12:26:39せっかくIDEがあるのにマルチバイト文字(言語に関係なく)の扱いがぞんざいなので結局オペレーションにslime+emacsになっちゃう
0505デフォルトの名無しさん
2009/09/20(日) 18:18:40Lisp + SDLで遊んでみたくて↑の記述を真似てインストールしてみましたがうまくいきません。
(asdf:operate 'asdf:load-op :lispbuilder-sdl)実行時に↓のようなエラーが出ます。
; compiling file "G:\\Program Files\\Steel Bank Common Lisp\\1.0.29\\site\\lispbuilder-sdl\\cffi\\library.lisp" (written 02 SEP 2009 03:09:26 AM):
; compiling (IN-PACKAGE #:LISPBUILDER-SDL-CFFI); compilation aborted because of fatal error:
; READ failure in COMPILE-FILE:
; SB-INT:SIMPLE-READER-PACKAGE-ERROR at 485 (line 12, column 51) on #<SB-SYS:FD-STREAM for "file G:\\Program Files\\Steel Bank Common Lisp\\1.0.29\\site\\lispbuilder-sdl\\cffi\\library.lisp" {23FF98D1}>:
; package "SDL-BIN" not found
SDL-BINというパッケージはlispbuilder-0.9.8.tgzとwin32-lispbuilder-sdl-binaries-1.2.12.tgzには入っていないんですか?
環境はWindows XPとSteel Bank Common Lisp 1.0.29です。
0506デフォルトの名無しさん
2009/09/20(日) 19:27:53ましょうと教えたくなってしまうのだが。プログラミングをしたければまず*nixを入れるが吉。
0507デフォルトの名無しさん
2009/09/20(日) 23:11:32CommonLisp はあまり windows で使うことを考えてなさそうな傾向はあると思う。
0508デフォルトの名無しさん
2009/09/21(月) 05:57:08えーと、うまくいかない理由は「Windows環境であるから」なんですか?
それとも「Windows版固有の不具合」なんですか?
わからないのなら無理に返事くれなくてもいいんですよ。
一体何がしたいんですか?「自分はWindowsが嫌いである」という信仰の告白ですか?
私はCommon Lispを使いたいんであって、Linuxを使いたいのではありません。
Linuxは環境構築するのに無駄に時間がかかりすぎますし、日本語環境とエディタが
糞すぎるので絶対に使いたくありません。コーディングはWindowsとxyzyyで万全です。
0509489
2009/09/21(月) 06:44:35ついでに質問なのですが、LispをコンパイルせずCGIで動かす場合、
処理が遅くなるevalやdefmacroは避けた方が良いですか?
それとも皆さんコンパイルして使うのでしょうか。
0510デフォルトの名無しさん
2009/09/21(月) 06:49:54お前が無知なだけね。
今時のlinuxはインスコと同時に日本語も見れるし、日本語も打てるようにできる。
エディタもemacsで世界最強。 てか、ある程度完成されたエディタはどのOSでも使えるから理由になってない。
自分の使ってるエディタのスペリングを間違えるような厨房にレスするべきではないかもしれんな。
0511デフォルトの名無しさん
2009/09/21(月) 07:16:40>今時のlinuxはインスコと同時に日本語も見れるし、日本語も打てるようにできる。
>日本語環境とエディタが糞すぎるので
cannaとかいうimmは入れ直さないと使いものにならないよね
0512デフォルトの名無しさん
2009/09/21(月) 07:28:54> >>508
> お前が無知なだけね。
> 今時のlinuxはインスコと同時に日本語も見れるし、日本語も打てるようにできる。
Windowsと同等以上の手軽さでできるとでも?
日本語環境を構築できる事が必ず保証されてるわけではなく、インストールする環境次第では
日本語を表示できないトラブルが多発しますよね。
余計な手間がかかる上にはるかに見劣りする環境しか無いのがLinuxじゃないですか。
> エディタもemacsで世界最強。 てか、ある程度完成されたエディタはどのOSでも使えるから理由になってない。
emacsは重すぎて話になりませんし、Linuxには買ってきてすぐに使えるWindowsPCほどの便利さがありません。
コーディングの道具とするにはWindows搭載のノートPCとxyzzyを使うのが最適です。
> 自分の使ってるエディタのスペリングを間違えるような厨房にレスするべきではないかもしれんな。
そんな些細な部分しか反撃出来る箇所が見つからなかったんですか?
くだらない人格攻撃をしなければならないような程度の低い人は黙っていて下さい。
0513506
2009/09/21(月) 07:35:29*nixと書いたのがなぜLinuxに限定されたのかわからんが・・
xyzzy使ってるんなら無理にCL入れずにxyzzy lispで遊んでればいいだろ。
SBCL開発者から見たらWin XPなんて「二級市民が口答えすんなや(゚∀゚)アヒャヒャヒャヒャ」って感じでしょ。
0514デフォルトの名無しさん
2009/09/21(月) 07:50:320515デフォルトの名無しさん
2009/09/21(月) 07:52:37> *nixと書いたのがなぜLinuxに限定されたのかわからんが・・
えっ?Linux以外に個人ユーザが使う上で現実的な選択肢が他にあるとでもいうんですか?
> xyzzy使ってるんなら無理にCL入れずにxyzzy lispで遊んでればいいだろ。
えっ?LispとSDLを使って遊びたいだけなのに、xyzzyでSDLを使えるようにするところから
自力で書くんですか?そんな非効率的で馬鹿馬鹿しい事なんてしたくありません。
> SBCL開発者から見たらWin XPなんて「二級市民が口答えすんなや(゚∀゚)アヒャヒャヒャヒャ」って感じでしょ。
あー、やっぱり貴方はその程度の人なんですね。煽りたいだけなら黙っててください。
0516506
2009/09/21(月) 08:23:02Windowsの汚濁から永らく離れてるスノッブで悪いが、そのlibrary.lispのコメントアウトされてるところ
を非コメント化してその下の今ある#+windows部分を代わりにコメントアウトしたらどうなるんだ?
0517デフォルトの名無しさん
2009/09/21(月) 08:39:27www ワロタ。
>>512は、知能が低いのに「自分の主張 = 真理」
だと頑固に信じきっているようなリアル馬鹿。
他人にとっては、>>512は偏った主観でしかないのにな。
こういった人間は死んでほしいよ。
0518デフォルトの名無しさん
2009/09/21(月) 08:59:110519デフォルトの名無しさん
2009/09/21(月) 09:05:07asdf-installを動かすだけでめちゃくちゃめんどくさい
そんなんだったらvmware上の*nixの方がはるかに簡単
最終的にslimeに落ち着く結果になるのにxyzzyにこだわるのがワケワカメ
0520デフォルトの名無しさん
2009/09/21(月) 09:06:34まぁ誰であれ礼儀をわきまえた初心者には親切にすべきだが、おかしな奴はスルーするのがいいぞ
0521506
2009/09/21(月) 09:10:44ドッカン
☆ゴガギーン
.______
. | | |
∩∩ | | | ∩∩
| | | | | | | | | | | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ,,) | | | (・x・ )<オラ!人が教えてやってんだから出てこい>>515!!
/ つ━━"....ロ|ロ . | l |U \___________
〜( / | | |⊂_ |〜
し'∪ └──┴──┘ ∪
0522デフォルトの名無しさん
2009/09/21(月) 10:43:24見劣りしているのは確かでしょう。
LinuxをデスクットップOSとして使用している人は少ないし、
Lispを使っている人は更に少ない。
使用者の裾野を広げなければ将来はありませんな〜
0523デフォルトの名無しさん
2009/09/21(月) 10:46:38DOS+Windowsに対して
同じことを言っている人がいたね
0524デフォルトの名無しさん
2009/09/21(月) 10:54:22Linuxは更にそれ以下
0525デフォルトの名無しさん
2009/09/21(月) 11:01:51Lisp は別に広まって欲しいようなものではない。
0526デフォルトの名無しさん
2009/09/21(月) 11:05:19CommonLisp をデスクトップマシンで使う意義がそれほど無い。
単に適材適所。
0527デフォルトの名無しさん
2009/09/21(月) 11:08:53Windowsからtelnetか何かでLinuxに繋いでLispやってんの?
0528デフォルトの名無しさん
2009/09/21(月) 11:09:41ところで Clozure って clojure と混同しやすくね?
0529デフォルトの名無しさん
2009/09/21(月) 11:10:17おまいらやさしくしてね
0530デフォルトの名無しさん
2009/09/21(月) 11:11:54windowsでclサーバー立ち上げるなんて、実用的じゃないし、
単なる時間の無駄じゃね?
windows上でcl書くなんて、授業の宿題以外で何か使い道あんの?
0531デフォルトの名無しさん
2009/09/21(月) 12:40:24>使用者の裾野を広げなければ将来はありませんな〜
2番目に古いコンピュータ言語に対して面白いことをおっしゃいますな〜
これだけ長きに渡って活発に処理系が開発されている言語もそう無いですぜ
0532デフォルトの名無しさん
2009/09/21(月) 12:40:390533デフォルトの名無しさん
2009/09/21(月) 12:48:04それは処理系が開発しやすいのとgccのような決定打が無いからじゃなかろうか?
0534デフォルトの名無しさん
2009/09/21(月) 12:53:02>> *nixと書いたのがなぜLinuxに限定されたのかわからんが・・
>えっ?Linux以外に個人ユーザが使う上で現実的な選択肢が他にあるとでもいうんですか?
Mac OS X 良いよ。Lisp やる環境としてはかなり恵まれてるし、
デスクトップとしても使い易い。宗教的理由で Mac が使えない
とかじゃなければお薦めです。UNIX としても十分使える。
もちろん Linux でも良いけど、正直 Windows はお勧めしません。
使ってる人が少ないから。
0535デフォルトの名無しさん
2009/09/21(月) 12:55:19gcc が決定打だとは思えないんだが…
最近ずいぶん賢くなったけど, 昔の gcc の最適化のおばかさかげんときたら………
0536デフォルトの名無しさん
2009/09/21(月) 13:23:05多様性が Lisp らしさの根源。
0537デフォルトの名無しさん
2009/09/21(月) 13:30:11その時代はよく知らないけど、何となくそういうイメージがある
0538デフォルトの名無しさん
2009/09/21(月) 14:03:370539デフォルトの名無しさん
2009/09/21(月) 14:12:36Common Lispを否定するのか?
0540デフォルトの名無しさん
2009/09/21(月) 15:10:04「標準的なものも必要だけど, もっと多様なものがあってもええんちゃう」
って言ってるんちゃうの?
0541536
2009/09/21(月) 15:27:15実装も含めての話。 >>533 は GCC を例に挙げているけど、「C++99を否定するのか?」なんて言ったらナンセンスだろう?
それと同じ。
0542デフォルトの名無しさん
2009/09/21(月) 23:46:36はい、今さっき帰宅しましたよ。昼間は我慢して下さいね。暇じゃないので。
で、それを試したらコンパイルは通りましたね。
かわりに↓なエラーが出るようになりましたが。
debugger invoked on a SB-KERNEL:SIMPLE-PACKAGE-ERROR:
no symbol named "*DEFAULT-FPSMANAGER*" in "LISPBUILDER-SDL-BASE"
結局Windows版の方にはsdl-binなんて入ってないって事なんですか?
>>519
別に業務に使いたいとか、どっぷり漬かってそれだけ使いたいとかじゃないですから。
ちょっと遊んでみるだけなのにOSから入れるなんて面倒な事したくないですよ。
>>534
すいません、宗教上の理由によりMacは使えません。改行コードとかおかしいし。
日本語環境がおかしくてOSごとすぐ落ちるという印象がまだぬぐえないので。
PowerXCell 8iが載ったMacとかが出たら考えちゃいますが。
0543デフォルトの名無しさん
2009/09/22(火) 00:00:540544デフォルトの名無しさん
2009/09/22(火) 00:27:460545デフォルトの名無しさん
2009/09/22(火) 00:31:42えーと、AAを貼りだしたからといって、>>506をかまってちゃんのキチガイ扱いするのは可哀相すぎじゃないですか?
個人的には>>520あたりの脳内仮想敵について語り始めたり、罵倒しはじめる人の方がどうかと思いますよ。
■ このスレッドは過去ログ倉庫に格納されています