【入門】Common Lisp その6【質問よろず】
レス数が950を超えています。1000を超えると書き込みができなくなります。
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)
0002デフォルトの名無しさん
2009/02/18(水) 00:23:10(SBCL: http://sbcl.sourceforge.net/
:プラットフォーム UNIX, Linux, Mac, Windows(移植中)
:開発 活発
:日本語 使える(UCS4, UTF8, EUC)
:特徴 一番お勧めのコンパイラ。)
(CLISP: http://clisp.cons.org/
:プラットフォーム UNIX, Linux, Mac, Windows
:開発 そこそこ活発
:日本語 使える
:特徴 バーチャルマシン。遅いがフットプリントが小さい。)
(CMUCL: http://www.cons.org/cmucl/
:プラットフォーム UNIX, Linux, Mac
:開発 そこそこ活発
:日本語 使えない(回避法有り)
:特徴 高速コンパイラ。SBCL の元になった。)
(Clozure CL: http://openmcl.clozure.com/index.html
:プラットフォーム PPC-Linux, Mac, x86_64-Linux と x86_64-FreeBSD に移植中
:開発 そこそこ活発
:日本語 使えない (pre ver 1.1なら多少扱える。)
:特徴 元々商用のコンパイラ。ネイティブスレッドが使える。))
0003デフォルトの名無しさん
2009/02/18(水) 00:23:42(Allegro: http://jp.franz.com/index.html
:プラットフォーム Windows ,Mac OS X , Freeを含む各種UNIX
:開発 ほとんど本陣
:日本語 使える(内部UTF16,外部 プラットフォーム毎)
:特徴 お高いがもっとも頼れる。申し込みが必要だがFree Express Editionあり )
(LispWorkss: http://www.lispworks.com/downloads/index.html
:プラットフォーム Windows ,Mac OS X
:開発 半年にいっぺんくらいアップデート
:日本語 使えるみたい(完全に対応しているかはちとわかりかねまする)
:特徴 IDEベースです、フリー版はconsセルの上限が来るとダイアログ
がでてしまいます、SDLとかで遊ぶとすぐに引っかかります ))
((その他)
(ABCL: http://armedbear-j.sourceforge.net/
:特徴 JavaVM 上で動く。JavaVM のバイトコードを生成。)
(GCL: http://www.gnu.org/software/gcl/
:特徴 日本発 Kyoto Common Lisp の直系。)
(ECL: http://ecls.sourceforge.net/
:特徴 Lisp->C コンパイラ。組み込み可能らしい。こちらもKCLの系譜))
0004デフォルトの名無しさん
2009/02/18(水) 00:24:37http://www.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/html/cltl/cltl2.html
http://lispdoc.com/
http://clqr.berlios.de/index.html
日本語のチュートリアル
ttp://www.fireproject.jp/feature/common-lisp/index.html
ttp://www.geocities.jp/m_hiroi/xyzzy_lisp.html
ttp://home.soka.ac.jp/~unemi/LispProlog/
ttp://www.haun.org/kent/lisp1/
ttp://wisdom.sakura.ne.jp/programming/lisp/index.html
0005デフォルトの名無しさん
2009/02/18(水) 00:25:09(和文)
ttp://www.geocities.co.jp/SiliconValley-SanJose/7474/index.html
ttp://lispuser.net
(英文)
http://wiki.alu.org:80/
http://www.cl-user.net
http://www.common-lisp.net
http://planet.lisp.org/
http://groups.google.co.jp/group/comp.lang.lisp
http://www.cliki.net/index
http://cl-cookbook.sourceforge.net/
http://www.gigamonkeys.com/book/
( http://www.apress.com/free/ よりpdf版が入手可能)
http://www.psg.com/~dlamkins/sl/cover.html
http://www.cs.cmu.edu/~dst/LispBook/index.html
その他の情報
http://ja.wikipedia.org/wiki/Common_Lisp
0006デフォルトの名無しさん
2009/02/18(水) 00:26:09(POPLOG: http://www.cs.bham.ac.uk/research/poplog/freepoplog.html
Lisp, Prolog, ML のコンパイラ)
(WCL: http://wcl.kontiki.com/
Shared Library として使える Lisp)
(Movitz: http://common-lisp.net/project/movitz/movitz.html
フルスクラッチの Lisp OS)
(CADR LispM: http://www.heeltoe.com/retro/mit/mit_cadr_lmss.html
MIT で使われていた LispM のソースを公開したもの)))
((その他のリンク
(Common Lisp JP: http://www.lingr.com/room/gKpArxPn9wi
チャット)
(lush: http://lush.sourceforge.net/
Lisp Universal Shell)
(実践common lisp: ttp://pcl.lispuser.net/ 実践common lisp 非公式サポートページ)
(Paul Graham の ANSI Common Lisp:
http://www.pearsoned.co.jp/hed/search/onlinecatalog.html?id=276
Common Lisp の 参考書を探しているならこれ一択)))
0007デフォルトの名無しさん
2009/02/18(水) 01:17:07(乙 'make-thread)
0008デフォルトの名無しさん
2009/02/18(水) 01:23:030009デフォルトの名無しさん
2009/02/18(水) 02:32:40*、 *、 。*゚ *-+。・+。-*。+。*
/ ゚+、 ゚+、 *゚ ・゚ \ 。*゚
∩ *。 *。 +゚ ∩ *
(´・ω・`) +。 +。 ゚* (´・ω・`)
と ノ *゚ *゚ ・ 。ヽ、 つ
と、ノ ・゚ ・゚ +゚ * ヽ、 ⊃
~∪ *゚ *゚ * +゚ ∪~ ☆
+′ +′ +゚ ゚+。*。・+。-*。+。*゚
0010デフォルトの名無しさん
2009/02/18(水) 09:42:400011デフォルトの名無しさん
2009/02/18(水) 09:51:010012デフォルトの名無しさん
2009/02/19(木) 01:20:230013デフォルトの名無しさん
2009/02/19(木) 01:54:050014デフォルトの名無しさん
2009/02/19(木) 02:02:420015デフォルトの名無しさん
2009/02/19(木) 02:59:440016デフォルトの名無しさん
2009/02/19(木) 03:35:30まじ就職してえわ
0017デフォルトの名無しさん
2009/02/19(木) 06:37:27matlabと同じぐらいか
0018デフォルトの名無しさん
2009/02/19(木) 11:38:44乙
0019デフォルトの名無しさん
2009/02/19(木) 13:58:25へー、俺が想像してたよりも安い
0020デフォルトの名無しさん
2009/02/20(金) 11:35:29Clozure CL 1.3 release candidate
* Mac OS X 10.4 and later (PowerPC and x86)
* Linux (PowerPC and x86)
* FreeBSD 6.x and later (x86)
* Solaris (x86)
* MS Windows (x86)
0021デフォルトの名無しさん
2009/02/20(金) 12:50:06過去本スレで100万とか1000万とかとにかく高そうな話はあったけど
今は案外お手頃になってるのか
0022デフォルトの名無しさん
2009/02/21(土) 01:34:19グッドニュースさんきゅ。
0023デフォルトの名無しさん
2009/02/21(土) 04:51:38$599
なんて書いてあるけど
0024デフォルトの名無しさん
2009/02/21(土) 10:54:56もうしばらく待つか
0025デフォルトの名無しさん
2009/02/21(土) 12:10:120026デフォルトの名無しさん
2009/02/24(火) 12:14:03はでてないけど、高速化は期待できるのかも。
0027デフォルトの名無しさん
2009/02/26(木) 23:25:01(+ 1 2 . 3) ; <- こういうの
どうもCommonLispでは仕様で決まってなさそうなのですがなにか理由があるのでしょうか。
0028デフォルトの名無しさん
2009/02/26(木) 23:37:55002927
2009/02/27(金) 01:31:16HyperSpecで確認してみましたがSection 3.1.2.1 Form Evaluation のところにはproper-listでなければならないとは書いていないような気がします。
実装依存にせよエラーにせよ、書かない理由もよく分からないので気になります。
0030デフォルトの名無しさん
2009/02/27(金) 01:42:450031デフォルトの名無しさん
2009/02/27(金) 09:14:39だからISO Cと同じくらいのサイズに収まってる。
003227
2009/02/27(金) 20:24:16未定義の処理系依存エラーと把握しました。
今Lisp処理系を作っていてちょっと気になったので聞いてみました。
どうもありがとうございます。
0033デフォルトの名無しさん
2009/02/28(土) 15:33:37ではどれになるのでしょうか
0034デフォルトの名無しさん
2009/02/28(土) 18:30:33lisperは自分で自分用のフレームワーク作るから
0035デフォルトの名無しさん
2009/02/28(土) 22:25:50フレームワーク: ないことはないけど、 (2、3あった) そっちはあまり知らない。
0036デフォルトの名無しさん
2009/02/28(土) 23:17:23weblockとかhunchentootとか?
hunchentootは使ってて楽しいよ
0037デフォルトの名無しさん
2009/03/01(日) 09:33:05L-99: Ninety-Nine Lisp Problems
ttp://www.ic.unicamp.br/~meidanis/courses/mc336/2006s2/funcional/L-99_Ninety-Nine_Lisp_Problems.html
0038デフォルトの名無しさん
2009/03/02(月) 12:11:58画面を二分して上のS式をC-x C-eで評価したときに
(in-package :hoge)
と言う式を評価したときにslimeのREPLでは
CL-USER>
のままでhogeのパッケージに入ってもらうにはREPLで
(in-package :hoge)
と打たなければなりません。これは設定で解消できるのでしょうか?
それとも仕様でしょうか?よろしくおねがいします。
0039デフォルトの名無しさん
2009/03/03(火) 16:05:030040デフォルトの名無しさん
2009/03/04(水) 21:30:170041デフォルトの名無しさん
2009/03/06(金) 23:54:50うぃんどうず用のlispbox 付属のemacsの日本語対応はよくわからん。参考にしてntemacs-ja
やmeadowあたりを入れても良いかもな。
onjoさんも日本人用のものを作ってたと思うけど。
0042デフォルトの名無しさん
2009/03/08(日) 09:59:33windowsの人ならこれでも良いかもな。windowsでslimeまで使えるようにするのは
敷居が高いしね。
0043デフォルトの名無しさん
2009/03/08(日) 19:46:49うちはWindowsXPがx64なのでsbclが動かないから試せないんだ
0044
2009/03/09(月) 14:30:40AllegroCommonLispのLispBoxでasdf-installをしようと思ったのですが
CL-USER> (asdf-install:install :fare-match)
Package "ASDF-INSTALL" not found. [file position = 14]
[Condition of type READER-ERROR]
; Evaluation aborted
とエラーが出てうまくいきません
何か特別な操作が必要なのでしょうか
004544
2009/03/09(月) 15:21:10http://www.cliki.net/asdf
このサイトには
If you have SBCL, OpenMCL, ECL or ACL, it's bundled and you need only (require 'asdf).
こう書いてあるのにどうしてなんでしょうか
0046デフォルトの名無しさん
2009/03/09(月) 18:45:40ttp://www.cliki.net/ASDF-Install
004744
2009/03/14(土) 18:48:08ここを参考にして
CL-USER> (pushnew "C:/asdf-install/asdf-install/" asdf:*central-registry* :test #'equal)
("C:/asdf-install/asdf-install/" *DEFAULT-PATHNAME-DEFAULTS*)
CL-USER> (asdf:operate 'asdf:compile-op :asdf-install)
; Evaluation aborted
入力してみたんですが
component "asdf-install" not found
[Condition of type MISSING-COMPONENT]
こうなってしましました
0048デフォルトの名無しさん
2009/03/14(土) 19:35:30asdf-install を*ちゃんと*どっかから持ってきた?
004944
2009/03/14(土) 19:51:43これをCドライブ直下に解凍し、
http://cclan.cvs.sourceforge.net/cclan/asdf/
さらにここからasdf-install.lispをダウンロードしてasdf-install.asdと同じフォルダに入れています
0050デフォルトの名無しさん
2009/03/14(土) 21:57:48> EmacsでのLisp開発環境としてSLIMEを使用しているのですが、
> 画面を二分して上のS式をC-x C-eで評価したときに
> (in-package :hoge)
> と言う式を評価したときにslimeのREPLでは
> CL-USER>
> のままでhogeのパッケージに入ってもらうにはREPLで
> (in-package :hoge)
> と打たなければなりません。これは設定で解消できるのでしょうか?
> それとも仕様でしょうか?よろしくおねがいします。
(defpackage :hoge
(:use :common-lisp)) C-x C-e
(in-package :hoge) C-x C-e
C-x o でREPLにカーソルを持ってきて
,キーを押下
ミニバファでCommand:って出るからchange-packageとして
Package: hoge
005238
2009/03/15(日) 15:37:10非常に助かりました。
0053デフォルトの名無しさん
2009/03/15(日) 16:30:10専ブラアップデイトしろ
0054デフォルトの名無しさん
2009/03/18(水) 12:45:21C-x oじゃなくてslime selecterにキー割り当てるのはしないの?
0055デフォルトの名無しさん
2009/03/18(水) 20:35:22やっちまったぜぇ
ありがとう
>>54
> >>51
> C-x oじゃなくてslime selecterにキー割り当てるのはしないの?
slime selecterの説明が必要だろ
この場合は C-x o じゃ駄目か?
0056デフォルトの名無しさん
2009/03/18(水) 20:51:19最近 slime モードのテキストバッファ(要は lisp ファイルを編集している時)
の、日本語入力が不自由なんだけど、これは *BSD で Wnn7 を使い続けてる
俺ん所だけの現象???
0057デフォルトの名無しさん
2009/03/18(水) 21:19:270058デフォルトの名無しさん
2009/03/18(水) 21:37:00うち固有だとは思うんだが、今年の正月すぎからスペースで変換しなった
repl バッファは変換する。たぶん egg のキーマップ周辺
slime はとりあえず動いてるし、日本語出力する用事もないし、「かな漢」
までめんどうみてる暇もないので放置状態
emacs のバージョン問題もあるかも知れない
0059デフォルトの名無しさん
2009/03/18(水) 21:56:24お主、ブラックボックスは嫌いなのではないか?
フフフ。丁度良い物がある。
つ SKK
0060デフォルトの名無しさん
2009/03/19(木) 01:02:130061デフォルトの名無しさん
2009/03/19(木) 01:11:260062デフォルトの名無しさん
2009/03/19(木) 10:34:430063デフォルトの名無しさん
2009/03/19(木) 12:14:240064デフォルトの名無しさん
2009/03/19(木) 16:54:41`(with-open-file (os ,filename :direction :output :if-exists :supersede)
,@body))
として、
(util-fout "filename" (format os "hello world"))
などと使うような util-fout を重宝して使っているのですが、
すぐに分かるとおり、os は外部変数補足をするので困っています。
もっと良い設計はありませんか?
with-open-file をそのまま書けばいい。というのももっともですが、、、
0065デフォルトの名無しさん
2009/03/19(木) 22:24:29C-c C-z
0066デフォルトの名無しさん
2009/03/20(金) 00:16:33REPLでぐだぐだコード書く時に同じよーなマクロ使うけど、
困るような所では使わないなあ。
(defmacro >> (fn &body body)
`(let ((*standard-output*
(open ,fn :direction :output :if-exists :append :if-does-not-exist :create)))
(prog1 (progn ,@body)
(close *standard-output*))))
(>> "./hoge.txt" (mapc #'print '(hoge fuga hage)))
普通にプログラムを書く時はwith-open-fileを使った方が
良いと思ってるんだけどどうなんだろ。
慣用句っぽいマクロとかあるのかな。
0067デフォルトの名無しさん
2009/03/20(金) 02:11:14アナホリックマクロ
0068デフォルトの名無しさん
2009/03/20(金) 02:14:19http://www.komaba.utmc.or.jp/~flatline/onlispjhtml/variableCapture.html
0069デフォルトの名無しさん
2009/03/20(金) 17:18:20> >>51
> C-c C-z
おぉ,正しくはこれか
ありがとう
でも,つい C-x o を押してしまうよ(笑
007064
2009/03/23(月) 12:18:02アナフォリックマクロ&自分のコードということで、
"os" の変数名を長くしてパッケージに入れることまではして、
とりあえずそのままにしました。
0071デフォルトの名無しさん
2009/03/24(火) 21:50:34common lispから使う方法はないのでしょうか
簡単に言うとシェルスクリプトをcommon lispで書きたいのです
0072デフォルトの名無しさん
2009/03/25(水) 01:29:33(ext:run-shell-command "ls")
とか?
sbclの場合sb-ext:run-programだそうな
0073デフォルトの名無しさん
2009/03/25(水) 02:22:440074デフォルトの名無しさん
2009/03/25(水) 02:23:02(ext:cd)
0075デフォルトの名無しさん
2009/03/27(金) 16:16:58defpackage の中の :export に記述する必要があるはずですが、
クラスをパッケージの中で定義する際に、
クラス名がエクスポートされていればいつでもスロットのアクセス関数等も
エクスポートされているようにするにはどうしたら良いですか?
全てのアクセス関数を :export に書かないといけないとすると不便すぎるのですが。
0076デフォルトの名無しさん
2009/03/27(金) 21:27:32なんか方法あるのかね
自分が使ってる有名どころのパッケージのソース見てみたけど全部列挙してるね。
まあ、外部とのインターフェースとなる部分だから慎重さが必要な部分だし不便ぐらいでちょうどいいんじゃない
defpackageは便利マクロであってエクスポートの唯一の手段じゃないからCLOSの機能を駆使すればできそうにも思うけど自分には無理だ
0077デフォルトの名無しさん
2009/03/27(金) 21:27:44もれも仕事ではJavaとかなんで>>75の言いたいことはわかる気がするが、
CLOSの場合はアクセス関数といってもクラスに所属するのものではないからなぁ。
CLOS流儀に馴染むというか、考え方をかえてもらうほうが建設的かな。
本当に細粒度にアクセサを公開しないといけないの?もっと美しいインターフェースは設計できない?
0078デフォルトの名無しさん
2009/03/27(金) 23:21:48読む側からしたら頭の方にexportでまとまってた方が追うのが楽じゃないかなとか思った。
ちょっとずれるけど、これ思いだした。
ttp://d.hatena.ne.jp/patterson/20081115/1226724801
>Q2:defclassを書くのって面倒くさい、黒田さんは全部書いていますか?
>A2:emacsの機能で楽してるけど、全部書いている。
>
>Q2:マクロは使わないのですか?
>A2:マクロを入力量を減らすために使うのは勧めない。
>Editorでがんばるべき。マクロは新しい語彙を入れ込むためのもの。
>安易に使うべきでない。自然言語の世界でも自分勝手な言葉を
>話すやつとはつき合いたくない。
0079デフォルトの名無しさん
2009/03/27(金) 23:42:10上手に作れば読みやすいソースになる。
オブジェクト指向の人がやたらクラスを作ってスパゲティにするのと似てるかも。
関数を作るにしてもinlineを使えば埋め込むこともできるけど、これは最適化のときの話
だもんな。
008075
2009/03/27(金) 23:49:23なるほど。アクセス関数は総称関数側だったんですね。
defclass で書いてるのでクラス側にあるのかと勘違いしていました。
じつは MOP でなんとかならないかといろいろ勉強してたんですけど、
ギブしました。
defpackage の :export の部分を間違えずに書けるように、
ファイル内のシンボル等の定義を読み、公開用には ":" をつけながら
全て出力するツールを作ってたんですけど、
これをアクセス関数にも適用できるように変更することとしました。
それでとりあえず良しとします。
0081デフォルトの名無しさん
2009/03/27(金) 23:58:14こういうのは違うかな
http://common-lisp.net/project/moptilities/documentation/metabang.moptilities-package/function-generic--functions.html
試してないけど総称関数を列挙してくれそうな雰囲気。
0082デフォルトの名無しさん
2009/03/28(土) 00:23:54> (defclass a () ((a :reader a-of)))
#<STANDARD-CLASS A>
> (moptilities:generic-functions 'a)
(#<STANDARD-GENERIC-FUNCTION A-OF (1)>)
取り出せたけど関数オブジェクトからどうやって元のシンボルに戻せば。。。うう
0083デフォルトの名無しさん
2009/03/28(土) 00:36:58他の関数を使えば望みのことはできそうだ
> (moptilities:slot-names 'a)
(A)
> (moptilities:slot-properties 'a 'a)
(:NAME A :INITARGS NIL :INITFORM NIL :READERS (A-OF) :WRITERS NIL
:DOCUMENTATION NIL)
クラスのスロットの属性にアクセスできりゃもうこっちのもんでしょ
アクセサ関数のシンボルを取り出してexportしてやればいい
0084デフォルトの名無しさん
2009/03/28(土) 01:14:01指定したクラスのアクセサ関数(リーダ関数だけを見てるのでもうちょっとリファイン必要)を全部exportする。
(defun export-slot-accessors (cls)
(loop for a in (loop for s in (moptilities:slot-names cls)
nconc (destructuring-bind (&key readers &allow-other-keys)
(moptilities:slot-properties 'a s) readers))
do (export a)))
しかしなあ主にパッケージ使う側の人間から言わしてもらうとあれこれエクスポートするパッケージは使いにくいぞな
0085デフォルトの名無しさん
2009/03/28(土) 06:12:53そんなのだめだぁ。必要もないものexportしないでくれぇぇぇ。
exportするものは厳選すべき。
0086デフォルトの名無しさん
2009/03/28(土) 09:10:070087デフォルトの名無しさん
2009/03/28(土) 22:55:28リスナーやエディタウィンドウで日本語'を入力したいのですが、まともに
入力/表示出来ません。こういうものですか?
Windows版ではどうですか?
0088デフォルトの名無しさん
2009/03/28(土) 23:40:53008987
2009/03/29(日) 11:45:50情報ありがとうございます。
うーん、Mac版も内部的にはちゃんと処理しているみたいなんですけど。
Slime経由で使えばいいのかな…。
0090デフォルトの名無しさん
2009/04/08(水) 09:59:330091デフォルトの名無しさん
2009/04/09(木) 09:49:11単一ディスパッチの言語だとクラスは名前空間の導入という側面があると
思いますが、多重ディスパッチの言語だとメッセージ送信先がひとつではないため、
一意に定まらないと思います。
よってCLOSのクラスでは名前空間の導入は行えない、これは分かります。
ここからが質問なんですが、CLOSにおいて、総称関数の名前空間の汚染に対しては
どのように対処すればよいのでしょうか?
パッケージシステムが解なのかと思いましたが、そうなると、オブジェクトごとにパッケージを
用意する必要がありますので、とても面倒な気がします……
0092デフォルトの名無しさん
2009/04/09(木) 10:13:17・総称関数は名前空間を越えて共通の名前であることが有用性上に重要。
それを名前空間を汚染するという風には考えない。
そのくらい名前は重要。
0093デフォルトの名無しさん
2009/04/09(木) 11:23:31ありがとうございます。ですが、メッセージ名を気をつけても、現実としてメッセージ名の
衝突は起こると思います。
たとえばC++で申し訳ないんですが、
class Foo
{
virtual void update() = 0;
};
class Bar
{
virtual void update(bool flag) = 0;
};
があるとすると、メッセージ名がupdateと同じでもメッセージのプロトコルが違います。
C++なら単一ディスパッチなので、メッセージ送信先とメッセージ名で呼ぶべきメッセー
ジのプロトコルが定まります。
ですが同じことをCommon Lispでしようとしたら、パッケージにくるんで、呼び出し元で
(foo:update foo-instance)
(bar:update bar-instance t)
とする方法か、もしくは総称関数を
(defgeneric update (o &rest rest))
と定義するくらいしか思いつきません。前者はどうみても冗長ですし、後者はCommon Lisp
の引数チェック機構が死にます。
根本的に勘違いしてる可能性もありますが、うまい方法はないでしょうか。
0094デフォルトの名無しさん
2009/04/09(木) 12:38:25(defclass foo () ())
(defclass bar () ())
(defgeneric update (obj &rest args))
(defmethod update ((obj foo) &rest args)
(declare (ignore args))
...)
(defmethod update ((obj bar) &rest args)
(destructuring-bind (flag) args
...))
何か問題があるのだろうか?
0095デフォルトの名無しさん
2009/04/09(木) 13:33:16ありがとうございます。
この場合困るのが、クラスBarを後から追加した場合です。
クラスFooを作ったときに作った総称関数とメソッドの定義を変更しないといけませんが、
これはOpen-Closed-Principleの観点から言ってよい方法であるとはいえません。
これを回避しようとしたらおそらくはパッケージシステムを使うことになるのでしょうが、
(foo:update foo-instance)
(bar:update bar-instance obj)
という冗長な記述になってしまいます。
あるいはパッケージにくるんだ上で、
(defgeneric update (obj &rest args))
という総称関数を作ってdefmethodで分岐するという手もありますが、単一ディスパッチの
言語では必要無かった苦労(パッケージング、defmethodの実装)を強いられる、という点で
腑に落ちません。
もし「総称関数は名前が重要。衝突しないように名前は決めるべき」というのが解ならば、いうのは
簡単です。
ですが、それを真に実現しようと思ったら、作るべきクラスのインターフェイスを書く前からすべて把
握する必要があります。これは非現実的です。
この辺りCLOSではどうやって解決するのがよいのでしょうか?
それともこんなものなのでしょうか。
0096デフォルトの名無しさん
2009/04/09(木) 15:03:53つか flag に相当する部分は, 普通, クラスに閉じ込めないか?
通常, リファクタリングの最有力候補だよね >>93 って.
> 言語では必要無かった苦労(パッケージング、defmethodの実装)を強いられる、という点で
> 腑に落ちません。
どっち転がってもメソッドは定義しなきゃいけないわけで,
たいした手間じゃないだろうに…
(defmethod bar ((obj foo))
(if *bebhavior-flag*
...))
(let ((*behavior-flag* t))
(bar (make-instance 'foo)))
的な, 逃げもなくはないが…
0097デフォルトの名無しさん
2009/04/09(木) 17:30:52・メッセージ名が同じ
・プロトコルが異なる
この二つを満たすメッセージを定義する上手い方法が総称関数には無いのではないか、という点です。
単一ディスパッチの言語にはあるにもかかわらず、です。
リファクタリング等の話は前提を覆しています。
>どっち転がってもメソッドは定義しなきゃいけないわけで,
>たいした手間じゃないだろうに…
単一ディスパッチの言語で必要のないこと、という点で大きな手間です。
単一ディスパッチの言語ならばメソッドのパッケージングもクラスによって分岐するメソッドの
定義も不要です。
もし統一的に表すために新たに総称関数を新たに定義した場合、その総称関数をどこに配置
するかという事も新たに考えねばなりませんし、機械でできそうな処理を人間が書く必要が
あるという点でLisp的ではない気がします。
もしこのような場合、Common Lispでは単一ディスパッチ言語が提供していたクラスによる名
前空間の導入を手動で行わなければならない、そういう仕様だ、というのならそういうものな
のかとあきらめます。
ですが、もし上手い方法があるのであれば教えてほしいと思った次第です。
0098デフォルトの名無しさん
2009/04/09(木) 18:24:35上のほうで誰かが名前重要って書いてるよね
updateって名前がまずだめ。「更新」てどんだけ広い概念を総称させとる
そらぶつかるわ
総称関数はメッセージ名じゃないし
マルチプルディスパッチの言語では簡単なことが単一ディスパッチの言語だとくそ面倒くさくなるよね。そして逆のこともあるよ
既知の概念で理解できないものを否定して安心したがる心理はある程度理解するが、なぜ君の知ってる言語の延長線上にLispがあると思った?別もんだぞ
でもってC++に帰りな。マジオススメ。C++のほうがうまく書けるものをなんでLispでやる
0099デフォルトの名無しさん
2009/04/09(木) 19:29:08すいません、わからない点があるのですが、
>総称関数はメッセージ名じゃないし
確かに総称関数の名前がメッセージ名では無いとすると、今までの私の指摘は当たらないことになります。
ですがそれならば、総称関数の名前はオブジェクト指向における何を表現しているのでしょうか?そしてどういう
名前が適切なのでしょうか?
updateが出たのでJavaのObserverパターンの実装を例に挙げます。Observableの実装は
どうでもよいとして、JavaのObserverの実装を機械的にCommon Lispに変換しますと
(defgeneric update (o obj arg))
になると思いますが、貴方の話ですとこの総称関数名はまずいということになります。
(クロージャで事足りるでしょうが、ここではそういう話はしてないのに注意してください)
クラス名をプレフィックスやサフィックスにしたり、クラス名のパッケージで包むという方法は考えられますが、
それは単一ディスパッチの言語に比べて冗長であるのは先に書いた通りです。
この場合、どのような名前が適切になりますか?
>既知の概念で理解できないものを否定して安心したがる心理は
多重ディスパッチや総称関数について一度も否定してません。
ただ総称関数だと上手く記述できない場面があるのではないか、という話をしているだけです。
これを否定と捉えて煽るのはちょっとひねくれすぎてるのではないかと。
0100デフォルトの名無しさん
2009/04/09(木) 19:41:21>マルチプルディスパッチの言語では簡単なことが単一ディスパッチの言語だとくそ面倒くさくなるよね。そして逆のこともあるよ
要するに今指摘してる点が多重ディスパッチで困難な点、ということなのでしょうか?
0101デフォルトの名無しさん
2009/04/09(木) 20:15:41Java 風の思想をそのまま持ち込むとうまく当て嵌らないのはアタリマエで、
デザインパターンを持ち出して「これをCLで書くと…」なんて議論はナンセンス。
だいたいオブジェクト指向なんてのも広すぎる概念で、
CLのオブジェクト指向は Java とは違ったオブジェクト指向なんだよ。
Java なんか一旦忘れろよ。
0102デフォルトの名無しさん
2009/04/09(木) 22:31:460103デフォルトの名無しさん
2009/04/09(木) 23:16:29概念A に対しては パッケージX:update
概念B に対しては パッケージY:update
という別の名前を使うんだよ。
自分の知らないことを自分の知っている範囲の見方でしか切らないくせに
> これを否定と捉えて煽るのはちょっとひねくれすぎてるのではないかと。
とか笑ってしまうわ。
0104デフォルトの名無しさん
2009/04/09(木) 23:25:38>問題にしてるのは
>・メッセージ名が同じ
>・プロトコルが異なる
C++のオーバーロードのおかげで「同じメッセージ」のように見えるが、実態としてメッセージとしてもプロトコルとしても同じではないものな希ガス。
というか、あえて言うならメンバ関数名とシグネチャあわせてひとつのメッセージ名でないの?
function update(target, flg) {
target[arguments.callee.name+'With'+flg.constructor.name].apply(null, arguments);
}
function updateWithBoolean(target, flg) { // update(obj, true)相当
/* ほげほげ */
}
function updateWithNull(target) { // update(obj)相当
/* ふがふが */
}
↑こういう付加情報からのメッセージ名推測(?)みたいな動的なことをC++,Java他はコンパイル時に暗黙のうちにやっているというだけでないのかな。
>この二つを満たすメッセージを定義する上手い方法が総称関数には無いのではないか、という点です。
>単一ディスパッチの言語にはあるにもかかわらず、です。
異なるメッセージをプレフィクスに基づいて同じメッセージのように推測するという「特別扱い=オーバーロード」があるかないかというだけで、
単一ディスパッチ/多重ディスパッチの問題じゃないんじゃないかと思うぞ。Objective-Cなんかこういうことしてくれないでしょ。単一ディスパッチ”なのにもかかわらず”。
>もし統一的に表すために新たに総称関数を新たに定義した場合、その総称関数をどこに配置
>するかという事も新たに考えねばなりませんし、機械でできそうな処理を人間が書く必要が
>あるという点でLisp的ではない気がします。
そこでLisp的にはマクロの出番なんでないかな。
※Lisp系のスレでJavascriptで答えてしまってすまないorz
0105デフォルトの名無しさん
2009/04/10(金) 00:18:06で、総称関数のラムダリストには決まりがある
それぞれのラムダリストは同じ個数の必須引数を持っていなければならない
それぞれのラムダリストは同じ個数の付加引数を持っていなければならない
その他いくつかの決まり事がある。>>93はこの決まりを守ってない
だからCLOSでは書けない。あきらめがつくならあきらめてくれ
総称関数がクラスの所有物でない時点で、関数名のみで自己説明的であるべきなんだよ
衝突しやすい名前選んどいて衝突したとかいうな
それでも衝突した場合にはどちらをインポートするかどっちもしないのか選べるんだし
どちらもインポートしなければ>>93の場合、あなたがどう見ても冗長と
言ってる方法で明示するしかないし自分にはどう見ても冗長に見えない
必要にして十分なことしか書いてない
0106デフォルトの名無しさん
2009/04/10(金) 00:21:17どういうつもりだてめー
そういう言葉は、オレたちの世界にはねーんだぜ……
そんな、弱虫の使う言葉はな……
「メッセージ名」…そんな言葉は使う必要がねーんだ。
なぜなら、オレや、オレたちの仲間は、
CLOSすると、頭の中に思い浮かべた時には!
切り替えが終わっちまってるからだッ!
だから使った事がねぇー
わかるか?俺の言ってる事…え?
「総称関数」なら、使ってもいいッ!
0107デフォルトの名無しさん
2009/04/10(金) 01:06:120108デフォルトの名無しさん
2009/04/10(金) 01:16:05総称関数なCLOSだと「この関数の仕事は何か」から考えるから、
両者だと発想の順序が逆っていうか。
総称関数の名前がぶつかったらどうしようって心配は、
ある意味クラス名がぶつかったらどうしようって心配くらいには杞憂なんじゃないかな。
0109デフォルトの名無しさん
2009/04/10(金) 01:26:36>というか、あえて言うならメンバ関数名とシグネチャあわせてひとつのメッセージ名でないの?
ああ、確かにそう考えると視野が広がります。
多重ディスパッチだと、メッセージ送信先もメッセージ名の一部と考えることができ、
そしてCLだとたまたまオーバーロードの機能が無い=異なるシグネチャから実行すべきメッ
セージの実装を決定する機能が無いと。
>>105
>だからCLOSでは書けない。あきらめがつくならあきらめてくれ
わかりました。
>総称関数がクラスの所有物でない時点で、関数名のみで自己説明的であるべきなんだよ
私は先に上げた場面をCLOSで解決できるのか、そして解決できないのであればその対処法を
欲していたので、この命名指針の提示は非常に助かります。
>どちらもインポートしなければ>>93の場合、あなたがどう見ても冗長と
>言ってる方法で明示するしかないし自分にはどう見ても冗長に見えない
冗長といってるのは、メソッドに対してクラスが名前空間を導入するという単一ディス
パッチの言語に対しての話なので、CLの視点では確かに必要十分ですね。
冗長と感じるか否かはただ単に慣れの問題かもしれません。
>>108
なるほど、わかりました。
私の中では解決することができました。長々とすいません。
ありがとうございました。
0110デフォルトの名無しさん
2009/04/10(金) 01:36:33Lispの世界で広く使われている枠組みの上では無理ってだけで、
その気になればいくらでも新しい枠組みを言語レベルで追加できる余地があるってのは大きい。
0111デフォルトの名無しさん
2009/04/10(金) 02:00:03そりゃいきなりクラスのメソッドって概念がブチ壊されたんだ、衝撃を受けるのは当然だ!
割と適当に作れたアクセサまでインターフェース並に外から丸見えになっちまうんだからな。
オレだってヤバイと思う!
だが!オレたちのチームの他のヤツならッ!
あともうちょっとで喉元に喰いつけるって時に、俺の知ってる〜できないんですね終了とか思考停止したりはしねぇ!
たとえ処理系の見た目がショボかろうと、ライブラリが揃ってなかろうともな!
オメーはマンモーニなんだよ!Java基準でビビったんだ!IDE支援に甘ったれて名前の命名を軽視してんだ!
分かるか?え?俺のいってる事。
Java のせいじゃねぇし、CLOSのほうが優れていると主張するわけでもねー。ただ、「違っている」だけだ。
だが、心の奥のところでオメーには他の思考モデルを認めるのにビビリがあるんだよ!
成長しろ >>109! 成長しなきゃオレたちは「栄光」をつかめねぇ。
0112デフォルトの名無しさん
2009/04/10(金) 02:15:080113デフォルトの名無しさん
2009/04/10(金) 08:29:10もっと普通の表記がいいとおもいませんか
0114デフォルトの名無しさん
2009/04/10(金) 08:54:18普通って何だよ?
このスレ的には CLOS が普通なんじゃね?
その質問はナンセンス。
0115デフォルトの名無しさん
2009/04/10(金) 09:28:180116デフォルトの名無しさん
2009/04/10(金) 10:28:21closの力不足もあるのかなあ
0117デフォルトの名無しさん
2009/04/10(金) 10:39:02java風のが欲ければ自ら作る必要があるね。グレアムおじさんのon lisp
でもオブジェクト指向言語の作りかたはかいてるので参考にすればいい。
CLOSはjava/C++族のものにくらべると繋りがゆるやかだし、
面倒な処理は少いんだが、だからマルチディスパッチでも
とりあえつあつかえる。言葉は同じオブジェクト指向でも、
考えかたは違いが大きいので、同じ目線で考えないことは
理解する上でも大切かな。
むしろ、CにCLOS風のゆるやかなオブジェクト指向を加えてもらったほう
がありがたい。C-LOS言語とでも名付けてね。
0118デフォルトの名無しさん
2009/04/10(金) 10:43:33グレアムおじちゃんみたいに忌み嫌うことはないけど、普段から多様すると、
スパゲティメイカーに早変りなので注意が必要かな。
0119デフォルトの名無しさん
2009/04/10(金) 17:44:53///)
/,.=゙''"/
/ i f ,.r='"-‐'つ____ こまけぇこたぁいいんだよ!!
/ / _,.-‐'~/⌒ ⌒\
/ ,i ,二ニ⊃( ●). (●)\
/ ノ il゙フ::::::⌒(__人__)⌒::::: \
,イ「ト、 ,!,!| |r┬-| |
/ iトヾヽ_/ィ"\ `ー'´ /
0120デフォルトの名無しさん
2009/04/10(金) 22:27:25単純に dynamic loader がらみの話じゃね?
g++ 一つとってみても abi ころころ変わるから,
他の言語でサポートするとなると結構大変だもん
0121デフォルトの名無しさん
2009/04/10(金) 23:29:29標準ライブラリにメッセージ渡し式のOOシステムが入っているので
興味のある人は見てみるといいんじゃないだろうか。
0122デフォルトの名無しさん
2009/04/10(金) 23:49:370123デフォルトの名無しさん
2009/04/10(金) 23:59:010124デフォルトの名無しさん
2009/04/11(土) 02:06:370125デフォルトの名無しさん
2009/04/11(土) 08:28:14こーゆうの?なんていうか、俺には冗長過ぎて無理だった。
http://www.foldr.org/~michaelw/projects/jclos/
0126デフォルトの名無しさん
2009/04/11(土) 10:17:49冗長だなぁ。。orz
0127デフォルトの名無しさん
2009/04/11(土) 12:15:05そこの参考文献の
Andreas Paepcke,
"User-Level Language Crafting (Introducing the CLOS Metaobject Protocol)"
面白いよね。タイムリーな話題。
;;; 馬鹿syntax sugar系じゃないよ。
0128デフォルトの名無しさん
2009/04/11(土) 12:42:45という思考だと、読む以前の問題じゃないのかなと思ったり
0129デフォルトの名無しさん
2009/04/11(土) 12:52:45そんな書き方しねえよ。
0130デフォルトの名無しさん
2009/04/11(土) 17:50:310131デフォルトの名無しさん
2009/04/12(日) 17:05:35(name-of instance)
じゃないの?
0132デフォルトの名無しさん
2009/04/12(日) 18:47:16>>131みたいに、インスタンスのnameプロパティへのアクセサをどう命名するかってユーザーレベルの話とは違くて
クラスの名前を取得する場合の話
0133デフォルトの名無しさん
2009/04/13(月) 03:27:49長い名前でもいいんじゃない
mutiple-value-bind
なんて素でうちこまないし
0134デフォルトの名無しさん
2009/04/13(月) 04:25:130135デフォルトの名無しさん
2009/04/13(月) 04:58:37なんかイヤな名前だな
0136デフォルトの名無しさん
2009/04/14(火) 22:27:49むちぷる ばりゅー ばいんど
むしろ何か惹かれるものがあるが・・・
0137デフォルトの名無しさん
2009/04/15(水) 15:18:31なんてありそうでないか
0138デフォルトの名無しさん
2009/04/16(木) 08:24:380139デフォルトの名無しさん
2009/04/16(木) 12:18:230140デフォルトの名無しさん
2009/04/16(木) 13:41:18cl-pngぐらいしかないのでしょうか
0141デフォルトの名無しさん
2009/04/19(日) 15:27:490142デフォルトの名無しさん
2009/04/21(火) 18:09:290143デフォルトの名無しさん
2009/04/21(火) 22:36:300144デフォルトの名無しさん
2009/04/23(木) 02:35:30環境構築の段階でつまづいていますのでご教示下さい。
1) SBCLでwinアプリ作成
=>最初にDOSプロンプトが立ち上がってしまうのでDOSプロンプトを立ち上げないようにしたい。
っていうかファイルでかすぎ
2) CLISPでwinアプリ作成
=>最初にDOSプロンプトが立ち上がってしまうのでDOSプロンプトを立ち上げないようにしたい。
3) ECLでFFIの利用方法が分からない。exeを実行しようとすると以下の様になる。
errorlog: http://www.4shared.com/file/101112943/cb682248/ecl.html
SBCL、CLISP、ACLはconflict起こさないし、一般的なライブラリだと思ってるのですが・・・
3-2) ECLでLispbuilderがインストールできない。
errorlog: http://www.4shared.com/file/101061621/13a90384/lispbuilder.html
ちなみに"C:/etc/cvs/ecl/site/lispbuilder-sdl/trivial-garbage/trivial-garbage.c"というファイルは存在しないので意味がわかりません。
4) ACL(free)でそもそもexeの作成方法が分からない。
目的はLispでwindowsアプリを作ることです。
とりあえず1〜4のどれかひとつでも打開出来れば後はなんとかなると思うんですが・・・
他の方法でも普通のwindowsアプリを作成する方法があればそれでも構いません。
商用ACLを買うというのは無しの方向で
どなたかお力添えをよろしくお願いいたしますm(_ _)m
0145デフォルトの名無しさん
2009/04/23(木) 03:51:28アプリを作りたいんだったらlisp系言語は向いてないと思うよ。
よいハカーは道具を適材適所で使います。
プログラミングのお勉強がしたいということならまずは*nixのインスコがおすすめ。
0146デフォルトの名無しさん
2009/04/23(木) 04:02:2210
> (* 5 *)
50
> (* 5 *)
250
"*"を変数として通常使用することもないと思いますが、
なぜ最初の"(* 5 *)"の後に"*"が50になるのか解説求む。
0147デフォルトの名無しさん
2009/04/23(木) 04:19:20http://www.lispworks.com/documentation/HyperSpec/Body/v__stst_.htm
The variables *, **, and *** are maintained by the Lisp read-eval-print loop to save the values of results
that are printed each time through the loop.
0148デフォルトの名無しさん
2009/04/23(木) 04:22:26> 4) ACL(free)でそもそもexeの作成方法が分からない。
フリーのExpress editionにはその機能はついていません。
スタンドアロン実行ファイルを作成するにはEnterprise editionに付属している
Runtime licenseが必要になります。
> 目的はLispでwindowsアプリを作ることです。
現時点では、フリーの処理系でまともにWinアプリを作成するのは非常に難しいと思います。
私は試したことがないですが、Winアプリの作成をサポートしてるLispWorksやCorman CLを
使うのがいいんじゃないでしょうか。特にCorman CLはWindows専用という珍しい処理系で、
Win32 APIを簡単に扱えることを売りにしているようです。
0149デフォルトの名無しさん
2009/04/23(木) 09:01:15これだって立派なWinアプリなのに…
0150デフォルトの名無しさん
2009/04/23(木) 09:37:07アプリ作りをするんだったらlinixやFreeBSDじゃまいか?
0151デフォルトの名無しさん
2009/04/23(木) 10:25:260152デフォルトの名無しさん
2009/04/23(木) 11:22:430153デフォルトの名無しさん
2009/04/23(木) 13:16:41GUIは別にするって手も
0154デフォルトの名無しさん
2009/04/23(木) 13:17:310155デフォルトの名無しさん
2009/04/23(木) 14:25:51言語が増えれば良いのに....windowsがないからwindows向けの
アプリケーションが作れないな....Cで書くとコンパイルが必要だし
...
0156デフォルトの名無しさん
2009/04/23(木) 19:34:48/\ /|
/ /| \/ |(\ /)
/ / | \|( ゚ー゚) <全力でWindowsを捨てOpenBSDに移行せよ
/ / | __〃`ヽ 〈_
/ γ´⌒´-−ヾvーヽ⌒ヽ
//⌒ ィ theo`i´ ); `ヽ
// ノ^ 、___¥__人 |
/ ! ,,,ノ爻\_ _人 ノr;^ > )
/ ( <_ \ヘ、,, __,+、__rノ/ /
ヽ_ \ )ゝ、__,+、_ア〃 /
ヽ、___ ヽ.=┬─┬〈 ソ、
〈J .〉、| |, |ヽ-´
/"" | sshd |: |
レ :|: | リ
/ ノ|__| |
↑ /| ,, ソ ヽ )
\_/ .,ゝ ) イ ヽ ノ
y `レl 〈´ リ
/ ノ | | .
l / l;; |
〉 〈 〉 |
/ ::| (_ヽ \、
(。mnノ `ヽnm
0157デフォルトの名無しさん
2009/04/23(木) 19:44:060158デフォルトの名無しさん
2009/04/23(木) 20:03:520159デフォルトの名無しさん
2009/04/23(木) 22:59:15slime backend の swank を eclipse で使えるように
したのだったら有る
# エディタが、アホなんで使う気にならないが…
0160デフォルトの名無しさん
2009/04/23(木) 23:52:380162デフォルトの名無しさん
2009/04/24(金) 12:47:140163デフォルトの名無しさん
2009/04/28(火) 11:46:49これを動かしたいのだけど
いろんなものに依存しててasdf-installだけじゃ入らない
依存してるものにリンク切れしてるものがあったり
誰かこれを動かせてる人はいませんか
0164デフォルトの名無しさん
2009/04/28(火) 19:06:28java製の統合環境もあるよ
ジャバラなんとかって
0165デフォルトの名無しさん
2009/04/30(木) 00:05:17Windows上の場合は、lispプロジェクトの
コードをsjisにすると良い感じ。
0166デフォルトの名無しさん
2009/04/30(木) 00:08:02他言語同様、オンマウスでヒントもでるし、
部分評価もやりほうだいなので、Windows操作系
では最高ランクでないかねぇ。
0167デフォルトの名無しさん
2009/05/01(金) 01:43:39どうもSBCL_HOMEの設定がおかしいんじゃないかと疑ってるんだけど...
環境変数手で入れました?よかったら今の設定教えてもらえないかなあ...
FAQみるとcusp/sbclって書かれてるんだけど、こんなパス存在しないし
お願いします
0168デフォルトの名無しさん
2009/05/01(金) 03:59:11に書いてあるとおりで「概ね」いけたはず。
(全く同じではないと思うが、大枠はこれでOK)
プラグインインストーラは、新型インストーラではなくて旧型を使うことになるはず。
環境変数は手でいれた覚えは無くて自動で設定されたはずだけど一応。
私がeclipseをインストールする際に、C:\usr\eclipseに入れていること前提です。
「ユーザー変数」の
PATH
C:\usr\eclipse\eclipse\plugins\sbcl_win32_1.0.20\sbcl\
SBCL_HOME
C:\usr\eclipse\eclipse\plugins\sbcl_win32_1.0.20\sbcl\
これで動いてたけど、自分は後で、sbcl ver 「1.0.22」 に引き上げてる。
(--script オプションが1.0.22から使えるから)
使う際には、プロジェクトにある.aspファイルを(右クリからとか)でロードする必要がありま。
ALT+Rで選択してる部分のS式の評価ができる。
Lisp用の設定内はデフォのまま。
(よって、Implementations の Lisp Executable とかも設定する必要なし)
このくらいかなぁ〜
0169デフォルトの名無しさん
2009/05/01(金) 07:23:11sbcl、swankの起動はうまくいってるみたいなんだけどな
>>> Found default sbcl folder: C:\eclipse\plugins\jasko.tim.lisp_0.9.390\sbcl
>>> Found default sbcl folder: C:\eclipse\plugins\jasko.tim.lisp_0.9.390\sbcl
start
]This is SBCL 1.0.22, an implementation of ANSI Common Lisp.
]
・
・
Swank started at port: 4005.
java.lang.IllegalThreadStateException: process has not exited
at java.lang.ProcessImpl.exitValue(Native Method)
at jasko.tim.lisp.swank.SwankInterface.connect(SwankInterface.java:411)
・
vistaでuac切った環境なんだけど、なんかまずいのかなあ
0170デフォルトの名無しさん
2009/05/01(金) 07:33:14java.version=1.6.0_13
0171デフォルトの名無しさん
2009/05/01(金) 14:57:38いろいろ試してるうちにサイトが消えた
なんでだ
0172デフォルトの名無しさん
2009/05/08(金) 12:17:18ネットでみれるからいいんだけどさ
0173デフォルトの名無しさん
2009/05/08(金) 12:25:23買われないと絶版になっちゃうだろ
0174デフォルトの名無しさん
2009/05/08(金) 12:35:31英語読むハメになるから買う気まではないなあ
図書を返すついでに借りようかなと思った程度で
とりあえず、うちの図書館ではLisp本の奪い合いがあるみたいだ
頻繁に貸し出し中になる
lispに還元するなら別のなにかでするよ
還元する力もないが
0175デフォルトの名無しさん
2009/05/08(金) 13:07:33pdfならapressのページで登録すれば配布されているんだよ。<PCL
もっとも原著だろうが訳書だろうが、本をもってるほうがなにかと
便利なんだが。
0176デフォルトの名無しさん
2009/05/08(金) 15:58:21本は目にやさしいしね
力尽きたときに寝転がりながらパラパラ読めるのがいい
全体把握もしやすいし、索引がしっかりしていれば検索もしやすい
pdfってうざいなあと思っちゃうんだけど、これは印刷して読んでください用ということなのかな?
emacsでpdfって読めないのかなw
そしたら便利なんだが
slime便利だね
関数補完(一覧)が出るだけでも勉強効率があがって、すごく助かる
0177デフォルトの名無しさん
2009/05/08(金) 16:51:39あれよくないの?
0178デフォルトの名無しさん
2009/05/08(金) 17:25:50目次からジャンプしたり好き勝手に検索したりというのは紙じゃ無理だ。
単にスキャンしただけというのは駄目だけど。
形式は別にPDFじゃなくてもいいんだけど、数式や特殊記号や図が多く
なりがちな専門書は他にいい形式がないんだよね。
本を何冊も持ち運ぶのは大変だけど、データなら何冊あっても楽だ。
もう紙の辞書なんか誰も使ってないのはこの便利さがあるからでしょう。
ただ寝転んだままノートパソコンの画面をみるのはつらいので、
日本でもKindleが使えるようになって欲しい。とりあえず日本語出なくても
いいから。洋書の専門書は重いんだよなあ。
0179デフォルトの名無しさん
2009/05/08(金) 17:32:29見覚えのあるテキストをもう一度読みたくてざっとめくるってのができないのが電子書籍の欠点なので僕は紙の媒体を捨てられない
0180デフォルトの名無しさん
2009/05/08(金) 19:13:52>もう紙の辞書なんか誰も使ってないのはこの便利さがあるからでしょう。
羅和とか大漢和とか古語辞典も全部電子化されればいいのになあ
紙媒体しかない辞書が多過ぐる
0181デフォルトの名無しさん
2009/05/08(金) 20:30:36他に何を仕込まるか分からないとか、そういうのをやめてくれたらなあ
0182デフォルトの名無しさん
2009/05/09(土) 12:09:450183デフォルトの名無しさん
2009/05/09(土) 14:23:45例えばOn Lisp って本に↓のように書かれてたんですが
(apply #'format *query-io* args)
これって
(format *query-io* args)
ってやるのと変わらないですよね?
シンボルの値に関数が入ってるんだったら apply を使う意味はあると思うんです。
例えば関数を 仮引数 fn で受けてるんだったら
(fn args)
は動作しないから
(apply fn args)
ってやると思うんです。
でも最初の例のように 関数は format って分かってるのに apply を使う意味は何なんでしょうか?
0184デフォルトの名無しさん
2009/05/09(土) 14:47:34(apply #'list 1 2 '(3 4 5)) => (1 2 3 4 5)
(list 1 2 '(3 4 5)) => (1 2 (3 4 5))
0185183
2009/05/09(土) 14:51:29http://user.ecc.u-tokyo.ac.jp/~tt076524/onlispjhtml/functions.html
> 以下の4個の式はみな同じ働きをする:
> (+ 1 2)
> (apply #'+ '(1 2))
> (apply (symbol-function '+) '(1 2))
> (apply #'(lambda (x y) (+ x y)) '(1 2))
これだと関数が分かってるときに
何でわざわざ apply を使うのかますます分からないです。
気にするなって事なんでしょうか。
0186デフォルトの名無しさん
2009/05/09(土) 14:58:54(+ '(1 2))とか(funcall #'+ '(1 2))だとエラーになるよね
0187183
2009/05/09(土) 15:13:20引数をリストで渡せて、その要素が一つ一つ関数への引数として渡せるのが便利だからって事ですよね。
確かにそれだと納得できます。ありがとうございます。
a が (1 2 3) として
(list a) のように関数を先頭にした表記で
実際には (list 1 2 3) と引数を展開して実行できるやり方はないんですか。
0188デフォルトの名無しさん
2009/05/09(土) 15:39:44sbclrcでシェバング対策やらasdfのインポートやらをしていたら
sbclを立ち上げてから*のプロンプトが出るまでに5秒ぐらいかかるように
なったのですが、皆さんもこれぐらいなのでしょうか?
よろしくおねがいします。
あと、sbclに履歴機能をつける方法とEmacsキーバインドで
操作できる方法が有ればよろしくおねがいします。
0189デフォルトの名無しさん
2009/05/09(土) 15:46:34>あと、sbclに履歴機能をつける方法とEmacsキーバインドで
>操作できる方法が有ればよろしくおねがいします。
Slimeでも何でもいいからEmacsの中で使えばいいのでは。
0190デフォルトの名無しさん
2009/05/09(土) 15:49:21sbclrcの内容を foo.lisp とかに移してからそれをコンパイルして
foo.fasl にし、sbclrc はそれをロードするだけにするとか。
0192デフォルトの名無しさん
2009/05/09(土) 18:59:29そうしました、しかしsbclに標準でそういった機能がつくと
うれしいですね。(rc-compile)見たいな...
0193192
2009/05/09(土) 19:09:09もしかしたら、sbclrc.faslというファイルが有ればそちらを
優先して読み込むと言う設定に改造してコンパイルすれば
良いかもしれませんね。ついでに(rc-compile)関数を組み込みにして
ファイル名を指定しなくても組み込みのsysinit-pathname
という関数を利用して適切なsbclrcファイルを選択してコンパイル
してくれるという関数が作れそうです。
0194デフォルトの名無しさん
2009/05/09(土) 21:58:39の中身をみたいなのだけど
clispだと
#'foo リターン
だけで関数のソースみれる
sbclだとできない
sbclでfooのソースが帰ってくる関数ないのでしょうか
0195デフォルトの名無しさん
2009/05/10(日) 00:15:100196デフォルトの名無しさん
2009/05/10(日) 00:25:570197デフォルトの名無しさん
2009/05/10(日) 00:50:160198デフォルトの名無しさん
2009/05/10(日) 12:17:48これで高速なcmuclが日本語でも使える。ただし、32bit x86 のみ
0199デフォルトの名無しさん
2009/05/10(日) 14:32:19最新じゃ無くてもutf8は使えてたぞ
日本語はダメだったけど
0200デフォルトの名無しさん
2009/05/10(日) 14:59:37こういう便利なものってみんなどうやってみつけてるの?
0201デフォルトの名無しさん
2009/05/10(日) 16:19:01いろいろコードの手直ししないとコンパイル通りませんよね?
最後にlispのコードよむところで
ffiがどうとかいうエラーでてあきらめたのですが
0202デフォルトの名無しさん
2009/05/10(日) 21:10:48式の評価をいろいろ試せる環境なわけじゃないんだね
0203デフォルトの名無しさん
2009/05/10(日) 23:53:070204デフォルトの名無しさん
2009/05/11(月) 09:26:05inferior-maxima-modeと組み合わせてみればできるんだけど、その方法はあまりかかれてないね。
0205デフォルトの名無しさん
2009/05/11(月) 11:20:080206デフォルトの名無しさん
2009/05/11(月) 21:18:440207デフォルトの名無しさん
2009/05/11(月) 21:47:36皿洗いも済ませてしまいたいのですが、そういうことは可能でしょうか?
アイコンを見ている限りは何とか出来そうな気もするのですが。。。
ご教示いただければ幸いです。
0208デフォルトの名無しさん
2009/05/11(月) 22:41:23インターネット経由で皿洗い機に接続するモードを用意すれば出来そうです。
http://ascii24.com/news/i/topi/article/2000/01/11/606333-000.html
0209デフォルトの名無しさん
2009/05/12(火) 11:24:270210デフォルトの名無しさん
2009/05/13(水) 12:31:58#+test
でテストコード挿入する方法があるんだね
便利そうだけど使い方わかんない
0211デフォルトの名無しさん
2009/05/13(水) 13:18:08この辺から見てみるといいよ。
http://www.lispworks.com/documentation/HyperSpec/Body/24_ab.htm
0212デフォルトの名無しさん
2009/05/13(水) 20:46:53ダウンロードして解凍、CCLのフォルダができたのですが、
その後、どうしたらいいのでしょう?
0213デフォルトの名無しさん
2009/05/13(水) 23:04:50それでインストールできてるんじゃね?
何がわからんのかわからん
0214デフォルトの名無しさん
2009/05/14(木) 06:12:02Mac OSX 10.5.7環境なのですが、
ClozureCL1.3が出たのでバージョンアップしようと思い(1.2を使ってました。)
サイトからsvnでダウンロードして./dx8664を起動した所
Error: Reader error: No external symbol named "MAKE-EXTERNAL-FOMAT" in package #<Package "CCL"> .
> While executing: CCL::%PARSE-TOKEN, in process Listener(6).
> Type :GO to continue, :POP to abort, :R for a list of available restarts.
> If continued: Create and use the internal symbol CCL::MAKE-EXTERNAL-FOMAT
> Type :? for other options.
1>
といきなりエラーが出てしまいます。
これはClozureCLのバグだと思うのですが、どうなのでしょうか?
解決法などありましたらご教授ください。
0215デフォルトの名無しさん
2009/05/14(木) 18:53:33こういう関数がパッケージになっているのは何故ですか?
パッケージにせずに単にloadする場合との違いは何でしょうか
0216デフォルトの名無しさん
2009/05/14(木) 23:11:26http://www.komaba.utmc.or.jp/~flatline/onlispjhtml/packages.html
0217デフォルトの名無しさん
2009/05/15(金) 01:09:13フィボナッチの計算で比べてみたら3倍ぐらい速かったわ
0218デフォルトの名無しさん
2009/05/15(金) 01:12:25速い部分もあれば、遅い部分もあるよ。
ベンチマークが公開されてるから、見ると結構面白いと思う。
Allegroとかとの比較もあるよ。
0219デフォルトの名無しさん
2009/05/15(金) 01:33:51ピープホール持ってない sbcl/cmucl に言ってはならないことを…
0220デフォルトの名無しさん
2009/05/15(金) 03:39:02ありがとうございます。
名前が重複しないように、ということですね。
0221デフォルトの名無しさん
2009/05/15(金) 15:46:48(pushnew 0 l) -> l= (0)
(push 0 l) -> l=(0 0)
こんなことおきるんだね
ゼロって怖い
0222デフォルトの名無しさん
2009/05/15(金) 16:19:42よく考えたらあたりまえだった
0223212
2009/05/15(金) 21:35:51> Error: value NIL is not of the expected type (OR STRING PATHNAME STREAM).
> While executing: PATHNAME-DIRECTORY, in process Initial(0).
> Type :GO to continue, :POP to abort, :R for a list of available restarts.
> If continued: Skip (possibly crucial) startup function CCL::INIT-LOGICAL-DIRECTORIES.
> Type :? for other options.
> Error: value NIL is not of the expected type CCL::RECURSIVE-LOCK.
> While executing: CCL::RECURSIVE-LOCK-PTR, in process Initial(0).
> Type :POP to abort, :R for a list of available restarts.
> Error: value NIL is not of the expected type CCL::RECURSIVE-LOCK.
> While executing: CCL::RECURSIVE-LOCK-PTR, in process Initial(0).
> Type :POP to abort, :R for a list of available restarts.
0224デフォルトの名無しさん
2009/05/15(金) 23:16:57どんな方法が有るのでしょうか?
formatについて調べてみたのですがそういう物は無いようですし。
よろしくおねがいします。
0225デフォルトの名無しさん
2009/05/15(金) 23:52:16(format t "hello~%yahoo")
0226デフォルトの名無しさん
2009/05/16(土) 00:05:07そちらではなくて復帰のほうです。
引き続きよろしくおねがいします。
0227デフォルトの名無しさん
2009/05/16(土) 00:28:26(princ (code-char 13))
じゃないかな。本当にスクリーンコントロールしたいならcl-ncursesとかを使ったほうがいいと思うけど。
0228デフォルトの名無しさん
2009/05/16(土) 01:10:25ありがとう御座います。
ロード画面のように
棒がのびるエフェクトをつけたかったのでキャリッジリターンを
知りたかったのです。インタプリタだと確認できないので
ファイルに書いて試してみたいと思います。ありがとう御座いました。
0229デフォルトの名無しさん
2009/05/16(土) 13:00:24ある意味matlabより便利なのに,思ったより使ってる人すくないのかなあ
0230デフォルトの名無しさん
2009/05/16(土) 13:36:20どのようにすれば良いでしょうか?
'(hello world)というリストの
各要素の長さを別のリストに移したいのでmapcarをつかおうと思うのですが、
legthは文字列でないと受け取ってくれないので、どうしようかと
思っています。
よろしくおねがいします。
0231デフォルトの名無しさん
2009/05/16(土) 14:09:310232デフォルトの名無しさん
2009/05/16(土) 14:35:320233デフォルトの名無しさん
2009/05/17(日) 10:30:29lispファイルからmcclimをrequireしてもmcclimが見つからないようです。
http://mcclim.cliki.net/Getting%20started%20using%20clbuild
ここを参考にしたのですが、他に何かやることがあるのでしょうか?
0234デフォルトの名無しさん
2009/05/17(日) 12:09:23裏で動いてるのはsbclらしい。
0235デフォルトの名無しさん
2009/05/17(日) 22:29:13HyperSpecやらCLtL2やら
ANSI X3.226-1994 Information Technology - Programming Language - Common Lisp
やらが出てきてどれが本物なのかがわかりません。
少し聞いた話がANSIが仕様書でCLtL2はその仕様書の編纂途中の様子とかを記録した物で
HyperSpecは辞書のような物だと聞いた事が有ったような....
できれば書籍で販売されているとうれしいです。
0236デフォルトの名無しさん
2009/05/17(日) 23:15:450237デフォルトの名無しさん
2009/05/17(日) 23:28:46ANSI/INCITS 226-1994
http://www.techstreet.com/cgi-bin/detail?product_id=56214
$350.00 USD
0238デフォルトの名無しさん
2009/05/18(月) 00:27:090239デフォルトの名無しさん
2009/05/18(月) 00:35:580240デフォルトの名無しさん
2009/05/19(火) 00:14:37(defmacro lbd (arg body)
`(lambda ,arg ,body))
というのを書いたのですが、replで
(lbd (x) (* x x))と打つと普通にlambdaの文と同じ無名関数として処理されるのですが
((lbd (x) (* x x)) 2)とすると
とたんに
((lbd (x) (* x x)) 2)のcarはlambda式でも関数でもないと帰ってきてしまいます。
これを回避するにはどのようにすれば良いのでしょうか?
よろしくおねがいします。
0241デフォルトの名無しさん
2009/05/19(火) 01:12:37carにlambda式を置くというバッドノウハウは無視して
常にfuncallを使うようにすれば良いと思います
0242デフォルトの名無しさん
2009/05/19(火) 06:03:18はまる人の少ないところだからあまり知られてないけれど。
http://www.lispworks.com/documentation/HyperSpec/Body/03_abab.htm
>If the car of the compound form is not a symbol,
>then that car must be a lambda expression,
>in which case the compound form is a lambda form.
ということで car は symbol じゃないなら lambda で始まるリストじゃなきゃ駄目です。
リーダマクロなら評価の前に式の変形を行うからいけるはずだけど。
0243233
2009/05/19(火) 14:09:39なんとかmcclimを読み込んでhello worldを表示することができたのですが、
今度は日本語表示を表示しようとmcclim-truetypeをrequireして実行すると、以下のエラーが出ます。
unhandled ZPB-TTF::BAD-MAGIC:
Bad magic value in font header: #x4F54544F (expected #x00010000 or #x74727565)
見ての通りZPB-TTFというライブラリが何かエラーを起こしているようなのですが、対処法はありますでしょうか?
0244デフォルトの名無しさん
2009/05/20(水) 15:05:060245233
2009/05/23(土) 13:25:12返信ありがとうございます。
フォントとなると環境が絡んでくるのですね。
後からになって申し訳ないのですが、MacOSX(leopard)、SBCLを使っていまして、
調べてみたところOSはOpenTypeFontには対応しているようです。
また、代わりにmcclim-freetypeをrequireすると、
unhandled SIMPLE-ERROR: attempt to multiply define ENUM FREETYPE:GLYPH-FORMAT-
というエラーが出て、こちらも駄目でした。
Lispはエラーを検索しても解決策が出てくることが少ないですが、皆さんはどう対処しているのですか?
SBCL含め全て再インストールした方が良いでしょうか・・
0246デフォルトの名無しさん
2009/05/24(日) 02:13:30こちらではほとんど同じ環境ですが、mcclim-freetypeもmcclim-truetypeも
使えているようです。mcclimはclbuildで入れました。mcclim-truetype.asdでのcl-aaへの
依存を取り除いた以外は特に変更を入れていません。
0247233
2009/05/26(火) 12:08:56返信ありがとうございます。
長々と場所を取ってしまいすみません。
今、部分的に再インストールしてみたりして試行錯誤しているのですが、
clbuildでmcclimを入れ、truetypeを使おうとした時に、「cl-paths-ttfがrequireしているzpb-ttfがありません」というエラーは出ませんでしたか?
下のような感じです。
component "zpb-ttf" not found, required by #<SYSTEM "cl-paths-ttf" {12E438F9}>
zpb-ttfを入れるためにclbuildを使おうとしたところ、サポートされていなかったようなのでasdf経由で入れたのですが、これがマズかったのでしょうか?
その他、clbuildだけではインストールされなかったライブラリ等あれば、お教えいただけると幸いです。
0248246
2009/05/26(火) 18:05:45gitは入れていますか?zpb-ttfをclbuildで入れるときにこれが必要だったような気がします。
(macportsで入れました)
0249デフォルトの名無しさん
2009/05/28(木) 12:23:500250233
2009/05/29(金) 05:58:43返信ありがとうございます。
どうにもならないようなので、一度すべて再インストールしてみることにしました。
アンインストールしてから、SBCL、darcs、clbuild、Gitを再インストールし、
clbuildを使ってmcclim、cl-vectors、zpb-ttfを入れましたが、
truetypeは>>243のエラー、freetypeは>>245のエラーがやはり出ます。
これ以上場所を取るのも悪いので、以降は自分で何とかしてみることにします。
また新しく何か分かった時は質問させていただくかもしれないので、その際は宜しくお願いします。
0251246
2009/05/29(金) 06:25:07ほかの話題を邪魔してしまってる訳でもないし、スレチでもないので別にいいのでは?
エラーメッセージから推測するに、特定のフォントのフォーマットが合わないのかも
しれませんね。
http://www.xach.com/lisp/zpb-ttf/#sect-limitations
によると、ユニコードマップがないフォントはだめと書いてあるのでもしかしたら
互換性のないフォントのせいでこけているということもあり得ます。
追加で入れたフォントをいったん外してみたらどうでしょう?
0252233
2009/05/29(金) 13:23:54すみません、恐れ入ります。
ターミナルに表示される処理から察するに「ヒラギノ丸ゴ ProN W4」を参照しており、wikiによればこれがJISのようでしたので、
一旦これを取り除いて再度実行すると「ヒラギノ丸ゴ Pro W4」を参照して同様のエラー、ヒラギノ系をすべて取り除くと、以下のエラーが出ました。
因みに、デフォルト以外のフォントは入れていないです。
debugger invoked on a MCCLIM-TRUETYPE::MISSING-FONT:
Cannot access /Library/Fonts/ヒラギノ丸ゴ Pro W4.otf
Your *truetype-font-path* is currently /usr/share/fonts/truetype/ttf-dejavu/
The following files should exist:
/Library/Fonts/Microsoft/MS Mincho.ttf
/Library/Fonts/Microsoft/MS Mincho.ttf
/Library/Fonts/Microsoft/MS Mincho.ttf
/Library/Fonts/Microsoft/MS Mincho.ttf
/Library/Fonts/Microsoft/MS Gothic.ttf
/Library/Fonts/Microsoft/MS Gothic.ttf
/Library/Fonts/Microsoft/MS Gothic.ttf
/Library/Fonts/Microsoft/MS Gothic.ttf
/Library/Fonts/ヒラギノ丸ゴ Pro W4.otf
/Library/Fonts/Microsoft/Meiryo Bold.ttf
/Library/Fonts/Microsoft/Meiryo Italic.ttf
/Library/Fonts/Microsoft/Meiryo Bold Italic.ttf
/usr/share/fonts/というディレクトリは存在しないのですが、一応ちゃんとライブラリフォルダを参照しているようです。
また、上記のマイクロソフト系のフォントファイルは存在しています。
仰る通り、適当なフォントを読み込めば何とかなる気はするのですが、*truetype-font-path*を変更すれば良いのでしょうか?
しかしながら、そもそも*truetype-font-path*には存在しないディレクトリが与えられていて、それでもライブラリフォルダを参照しているので、どう変更したものか、というところです。
もう少し考えてみます。
0253246
2009/05/31(日) 22:08:45パッケージをロード/実行した際でしょうか?
こちらで少し試してみたところ、ヒラギノはTTFでなくOTF (open type)なのでzpb-ttf
では読み込めないようです。M+フォントやIPAモナーフォントはOKでした。
もし(require :mcclim-truetype) が通るのであれば、そのあとで
mcclim-truetype::*families/faces*パラメタの方を修正してやればとりあえずごまかせる
かもしれません。>>252のフォントのリストはこのパラメタ (assocリスト)の値のリスト
なので、ヒラギノに対応する項目を適当なフォントのパスに付け替えれば動くかもしれません。
また、*truetype-font-path*の方はこれらの値のうち相対パスになっているものにだけ
使われるので、今は気にしなくて良さそうです。
0254デフォルトの名無しさん
2009/06/01(月) 19:37:290255デフォルトの名無しさん
2009/06/02(火) 01:52:27なんだか注文した事が後悔されているように読めて悲しい。
技術書の良くできた本って読み物としても良くできてるんだよね。
そしてOn lispは読み物としてもおもしろい本だったよ
他のlisp本だと実践CommonLispが楽しかった。
;;; 小生は活字中毒なのもあるかもしれんが
0256デフォルトの名無しさん
2009/06/02(火) 02:12:190257デフォルトの名無しさん
2009/06/02(火) 02:13:220258デフォルトの名無しさん
2009/06/02(火) 02:18:11On Lispは明瞭かつ流暢な日本語で書かれているので、100点を付けてもいいよ
0259デフォルトの名無しさん
2009/06/02(火) 02:42:29それで悩んだのはクヌース本の初版だけだったな、ASCII版は普通によめた
でも算符とか鍵盤とかの訳語は好きだぜw
0260デフォルトの名無しさん
2009/06/02(火) 16:24:50確かに昔の技術書や科学書は硬い言葉使いが多くて読みづらかったけど、
それでも何とかなっちゃう秀才が大学教授になって、やはり硬い文章を
再生産するのかもしれないなあと思ったりして。
0261デフォルトの名無しさん
2009/06/02(火) 19:36:51(defun make-run-length-encode (list)
(reduce #'(lambda (first rest)
(cond ((listp (car rest))
(if (eq first (car (car rest)))
(cons (cons first (1+ (cdr (car rest)))) (cdr rest))
(cons first rest)))
(t (if (eq first (car rest))
(cons (cons first 2) (cdr rest))
(cons first rest)))))
list :from-end t :initial-value nil))
これってもっとかっこよくエレガントに書けませんかね?
パターンマッチとか使えるといいんだがなぁ...
0262デフォルトの名無しさん
2009/06/02(火) 21:30:21(defun my-rle (list &optional (res nil))
(if (not list) res
(let* ((head (car list))
(cnt (position head list :test-not #'eq)))
(if (not cnt) (setf cnt (length list)))
(my-rle (nthcdr cnt list)
(append res (list (if (= cnt 1) head (cons head cnt))))))))
0263233
2009/06/04(木) 00:09:40返信ありがとうございます。
requireの下に、
(setf (cdr (nth 8 mcclim-truetype::*families/faces*)) #P"/Library/Fonts/Arial Unicode.ttf")
を追加したところ、ようやく日本語が表示されました。
色々説明不足であったにもかかわらず、何日もに渡ってお教えいただき、本当にありがとうございました。
初めの方に返信を下さった方々もありがとうございます。
Lisperの皆さんの優しさにちょっと感動です。
0264デフォルトの名無しさん
2009/06/04(木) 05:38:14* (time (fact 45))
Evaluation took:
0.000 seconds of real time
0.000008 seconds of total run time (0.000007 user, 0.000001 system)
100.00% CPU
9,971 processor cycles
0 bytes consed
119622220865480194561963161495657715064383733760000000000
* (time (fact-cps 45))
Evaluation took:
0.000 seconds of real time
0.000010 seconds of total run time (0.000009 user, 0.000001 system)
100.00% CPU
13,546 processor cycles
4,080 bytes consed
119622220865480194561963161495657715064383733760000000000
と末尾再帰がたのfact-cpsの方が若干遅かったのは驚きました。
タイミングの問題ですかね?
0265デフォルトの名無しさん
2009/06/04(木) 07:01:08むしろ末尾再帰のために引数が増えたりすると、スピード面ではデメリットになっているかもしれない。
0266デフォルトの名無しさん
2009/06/04(木) 10:59:58コンパイルした?
>>265
なことはない。
0267デフォルトの名無しさん
2009/06/04(木) 11:59:07a->b b->c c->d・・・みたいな
0268デフォルトの名無しさん
2009/06/04(木) 12:09:260269デフォルトの名無しさん
2009/06/04(木) 12:36:39Clinger の "Proper tail recursion and space efficiency" でも読みなされ。
0270264
2009/06/04(木) 13:07:42(proclaim '(optimize speed))
を忘れていたので帰ったら試して見ます
0271デフォルトの名無しさん
2009/06/04(木) 22:00:17tail call 用の引数の計算にスタック上のデータが必要だと、
処理が少しだけ面倒くさくならない?
なんかうまいやり方があるのかな。
0272264
2009/06/05(金) 01:03:18以下のようにちゃんと末尾再帰版が速くなりました。
* (time (fact 45))
Evaluation took:
0.000 seconds of real time
0.000016 seconds of total run time (0.000009 user, 0.000007 system)
100.00% CPU
9,581 processor cycles
4,096 bytes consed
119622220865480194561963161495657715064383733760000000000
* (time (fact-cps 45))
Evaluation took:
0.000 seconds of real time
0.000008 seconds of total run time (0.000007 user, 0.000001 system)
100.00% CPU
9,412 processor cycles
0 bytes consed
119622220865480194561963161495657715064383733760000000000
0273デフォルトの名無しさん
2009/06/05(金) 07:34:02何回かやってみると必要サイクル数は少し変動してるし(ガベコレのタイミングのせい?)。
うちの環境ではどちらが早いとも言えなかった。
0274デフォルトの名無しさん
2009/06/07(日) 11:14:44いったいどういう理由なんですか?
0275デフォルトの名無しさん
2009/06/07(日) 11:28:03どういう理由と文脈で「今時」とか嫌味つけてそういうことを聞くの?
人それぞれだと思うよ。
0276デフォルトの名無しさん
2009/06/07(日) 11:31:25実行したのですが、
; loading system definition from
; /Users/hoge/.sbcl/systems/cl-containers-documentation.asd into
; #<PACKAGE "ASDF0">
; registering #<SYSTEM CL-CONTAINERS-DOCUMENTATION {127632F9}> as
; CL-CONTAINERS-DOCUMENTATION
debugger invoked on a ASDF::FORMATTED-SYSTEM-DEFINITION-ERROR:
don't recognize component type DOCUDOWN-SOURCE
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.
(ASDF::SYSDEF-ERROR "~@<don't recognize component type ~A~@:>")[:EXTERNAL]
とでて一度引っかかります。
cl-containers-documentation.asdのバグなのでしょうか?
よろしくおねがいします。
0277デフォルトの名無しさん
2009/06/07(日) 16:26:46できれば、タグを取り除いたplain text形式で保存したい。
ヒントでいいので、教えていただきたい。
0278デフォルトの名無しさん
2009/06/07(日) 17:19:100279デフォルトの名無しさん
2009/06/07(日) 17:32:26cronは、使うと思うんだけど。スクリプトはclで書いてみたいんですが。
とりあえず、簡易版でいいので実装できれば、いいかなと思っています。
0280デフォルトの名無しさん
2009/06/07(日) 20:11:530281デフォルトの名無しさん
2009/06/07(日) 20:31:22(setq var (read-line ...))
じゃ, あかんの?
0282デフォルトの名無しさん
2009/06/07(日) 20:36:15データが大量なのでバッファを使った読み込みが好ましいんですが、
read-sequenceでは使い勝手が悪いので・・。
0283デフォルトの名無しさん
2009/06/07(日) 20:39:460284デフォルトの名無しさん
2009/06/07(日) 20:41:21ラッパ書けばいいじゃん
0285デフォルトの名無しさん
2009/06/07(日) 22:40:500286デフォルトの名無しさん
2009/06/07(日) 22:47:120287デフォルトの名無しさん
2009/06/07(日) 22:54:10超初心者ですりません。Cしか知りません
0288デフォルトの名無しさん
2009/06/07(日) 23:03:010289デフォルトの名無しさん
2009/06/07(日) 23:05:420290デフォルトの名無しさん
2009/06/07(日) 23:10:54CL-USER> (defstruct st id name) ; 適当なデータ型
st
CL-USER> (defvar *list* (list (make-st :id 0 :name "foo") (make-st :id 1 :name "foo")))
(#S(ST :ID 0 :NAME "foo") #S(ST :ID 1 :NAME "foo"))
CL-USER> (dolist (e *list*)
(print e))
#S(ST :ID 0 :NAME "foo")
#S(ST :ID 1 :NAME "foo")
NIL
0291デフォルトの名無しさん
2009/06/08(月) 02:24:420292デフォルトの名無しさん
2009/06/08(月) 06:59:56それをlispで書きたい理由がわからないな。lispの練習をしたいならもっといい問題が
他にあるし、この問題を解きたいならもっといいソリューションが他にあるし。
それでもどうしてもcommon lispでやりたいなら
http://ja.doukaku.org/
でも見ればいいと思うよ。
0293デフォルトの名無しさん
2009/06/08(月) 08:48:04> それをlispで書きたい理由がわからないな。lispの練習をしたいならもっといい問題が
> 他にあるし、この問題を解きたいならもっといいソリューションが他にあるし。
問題としては良くないんでしょうか?
練習もかねていますし、将来、この問題をもうちょっと高度にした処理も書きたいと思っています。
> http://ja.doukaku.org/
参考にさせていただきます。
ありがとうございました。
0294デフォルトの名無しさん
2009/06/11(木) 02:05:42(load "ファイル名.l")と実行しても読み込めません。
コマンド自体は通っているようなのでファイルを置く場所が間違っていると思います。
GNU Common Lisp 2.6.7でいうカレントディレクトリは何処なんですか?
0295デフォルトの名無しさん
2009/06/12(金) 00:08:44遅くなってすいません。
パッケージのインストール・使い方について教えてください。
このサイトを読んでこいでもいいので、よろしくお願いします。
(load "hoge.lisp")は、わかるんですが、パッケージになるとわけがわかりません。
ライブラリのPATHの通し方もよくわかっていません。
でも、emacs lisp, schemeについては基本的なことはわかっているつもりです。でも、slimeのinfoをまだ読んでいませんが。
http://codepad.org/HNzeTkc4
CLの書籍はピーターうんたらさんの実践common lispの日本語訳のみ所有しています。
0296デフォルトの名無しさん
2009/06/12(金) 02:13:31asdfで検索すると幸せになれる
主要なライブラリならclbuildを使う
0297デフォルトの名無しさん
2009/06/12(金) 02:38:170298デフォルトの名無しさん
2009/06/12(金) 05:05:10言われたとおり、ググって、みまわりしてきた。asdfは、ちょっとわかった感じだけど。まだ全然わかっていない。
asdfの英文のマニュアルも質素過ぎて、よくわからない。
clbuildは、asdf-installが中途半端に使った状態で使っていいのだろうか。
あとgentooのemerge(package system)を使わないで、clbuildを使って、処理系を入れた方がいいんでしょうか?
0299295
2009/06/12(金) 07:20:010300デフォルトの名無しさん
2009/06/12(金) 12:33:34/usr/share/common-lisp
以下にasdfがつっこむようにされてるけど、他はどうなってるの?
0301デフォルトの名無しさん
2009/06/12(金) 19:26:50*default-pathname-defaults* で確認できんか?GCLは使ってないが。
0302デフォルトの名無しさん
2009/06/13(土) 19:16:160303デフォルトの名無しさん
2009/06/14(日) 01:59:390304デフォルトの名無しさん
2009/06/14(日) 02:06:33Copyright ← 2003-2005, Peter Seibel
14. Files and File I/O
で
(let ((in (open "/some/file/name.txt" :if-does-not-exist nil)))
(when in
(format t "~a~%" (read-line in))
(close in)))
を習ったんだけど、一行ずつ足す方法ってどうやるんですか?
string-to-integerみたいな関数はないの?
$ seq 1 100 > /some/file/name.txt
0305デフォルトの名無しさん
2009/06/14(日) 02:12:39あるよ
http://www.lispworks.com/documentation/HyperSpec/Body/f_parse_.htm
0306デフォルトの名無しさん
2009/06/14(日) 17:46:52>一行ずつ足す方法ってどうやるんですか?
304の本題のほうは、どう書くんですか?
0307デフォルトの名無しさん
2009/06/14(日) 18:31:09(with-open-file (in "name.txt")
(loop for line = (read-line in nil :eof)
until (eq line :eof)
summing (parse-integer line)))
loop が嫌なら do とか go とか好きな別の制御構文でいいけどさ。
0308デフォルトの名無しさん
2009/06/14(日) 18:37:300309デフォルトの名無しさん
2009/06/14(日) 19:01:31(with-open-file (in "name.txt")
(labels ((rec (stream line num)
(if (eq line :eof)
num
(rec stream (read-line stream nil :eof) (+ (parse-integer line) num)))))
(rec in (read-line in :eof) 0)))
でも、そこまで反復が嫌いならSchemeとか使ったほうがいいかもね。
0310デフォルトの名無しさん
2009/06/14(日) 19:34:360311304
2009/06/14(日) 21:31:40章単位でつまみ食いして読んでいます。飛ばした章はとりあえず流し読みだけ。
sbcl and slimeなんだけど、エラーはでないんだけど、答えが出てこないんだが。
loopは、よくわからないなあ。loopの章は読んだんだけどなあ。こういうものだと思って、構文を覚えればいいのかな。
fileもイマイチ書き方がわかっていないし。
>>309
動いた。動いた。
再帰版もサンクスです。
ちょっとしたものを書きながら、file関係の関数にについて理解を深めたいと思います。ありがとうございました。
0312デフォルトの名無しさん
2009/06/14(日) 21:58:33LISPはじめてなら、本を読むときには、サンプルをREPLに何回か打ちこむくらいはしたほうがいいよ。
0313デフォルトの名無しさん
2009/06/14(日) 22:33:40手を動かしているよ。
飛ばした章に書かれている内容は大雑把だけど、把握していて、読みたい章で飛ばした章の内容が出てきたら、戻るようにしている。
schemeは多少ゴリゴリやったので、Lispはちょっと実験的に章ごとの拾い読み的な勉強法を試している感じ。
304の話は、軽く調べた限りでめぼしいのがなく、初級レベルのレスも過疎っていたので、質問させていただきました。
0314デフォルトの名無しさん
2009/06/14(日) 22:42:33PCLを原文で読めるくらいなら、LOOPは書けなくても読めると思うけどやっぱキモいかね。
英語圏の連中が自然に読み書きできる事をめざしていたそうだが・・・まぁSQLもそんな事いってたけど
0315デフォルトの名無しさん
2009/06/14(日) 22:58:490316デフォルトの名無しさん
2009/06/14(日) 23:43:49ダメでした
eclipseを使うことを勧められたのでそちらでやってみようと思います
ありがとうございました
0317デフォルトの名無しさん
2009/06/15(月) 01:56:24自由度が重要なのは分かるけど、ただでさえ少ない人口が更に分散してる
0318デフォルトの名無しさん
2009/06/15(月) 15:49:110319デフォルトの名無しさん
2009/06/15(月) 17:10:53すぐググるという思考になって、よくない気もするけどなあ。
軽くググったりもするだろうが、10時間ぐらい悩むのがいいんじゃないだろうか。
いろいろ試行錯誤しても解決しないということは、いいことだし。肥やしになる。
解決するためには英文も読む必要が出てきて、英語の力もつくし。
奥村晴彦のアルゴリズム辞典という本があるけど、Lisp版って需要あるのかな。
ネットでLisp版サンプルコードを晒すだけなんだが。
コメント入れて、読みやすくはするつもりではいる。
0320デフォルトの名無しさん
2009/06/15(月) 17:18:480321デフォルトの名無しさん
2009/06/15(月) 17:26:20覚え始めのころにちょっと挑戦してみたことがある。
魔方陣のコードが見た目凄いことになったのでマクロを覚えて書き直したら
他人に分ってもらえなくなったw
0322デフォルトの名無しさん
2009/06/15(月) 17:34:46あったけど、cをそのまんまcommon lispに直しているだけで、あれはだめだ
ひどいと思ったから、それそうとうのlispらしさを出す努力だけはしてね。
0323デフォルトの名無しさん
2009/06/15(月) 18:04:41> ひどいと思ったから、それそうとうのlispらしさを出す努力だけはしてね。
ハードルをあげるのは好きだなw
lispらしさってlisperが思うlispらしさだろ。そんな10年ぐらい触らないとわからないんじゃないのかな。
とりあえず、糞コードを書いて、数年単位ぐらいで書き直して、精度を上げていけばいいんじゃない?
もちろん、過去の糞コードも残して。
そのくらいのスタンスだったら凡人でも鑑賞に堪えるものができるかなと思っているんだけど。
0324デフォルトの名無しさん
2009/06/15(月) 18:43:21そんなの自分でやらせたらどうよと思うw
Cのソースからの単純な置き換えでなんとかなってしまうだけに
「lispらしい」例を少しぐらいは示しておくのでないと
0325デフォルトの名無しさん
2009/06/15(月) 18:44:35ってのはlispへの書き換えのことね
0326デフォルトの名無しさん
2009/06/16(火) 12:27:52らしさ、というと抽象的です。だけども、多値を使うということは意識できるだろう
マクロを使い過ぎというのも一時のもの(あれはlisperの中二病ですね。)だし、そこ
まではする必要はない。まして、最適化まではもとめないよ。loopかmap系かみたいな
ところも好みがあるので、それもらしさという意味ではどっちでもいいよ。また、
schemeとcommon lispでも違いはあるけども。
>>323
もし10年と考えているならば、それはあまり使ってない人だと思う。和訳も出ている
norvigのcommon lispのスタイルに関して記述したものくらいは読んで理解できると
思うがね。そのコードが見本になるものくらいの気持(決っして、そこまで要求しな
いけど、)はもっておいてほしいだけさ。そこに努力の意味が入っている。
0327デフォルトの名無しさん
2009/06/16(火) 14:28:540328デフォルトの名無しさん
2009/06/16(火) 20:10:510329デフォルトの名無しさん
2009/06/16(火) 20:36:48ていうか奥村さんのその本ちゃんと見たのかなー
ぱっと見で楽そうとか思ってね?
0330デフォルトの名無しさん
2009/06/18(木) 20:42:320331デフォルトの名無しさん
2009/06/18(木) 21:22:110332デフォルトの名無しさん
2009/06/18(木) 21:35:09君も知ってる通りLisperは再帰を使うのさ。って言って欲しかった?
0333デフォルトの名無しさん
2009/06/19(金) 00:10:11自分で作れるから
0334デフォルトの名無しさん
2009/06/19(金) 00:28:40for(初期化付き繰り返し)の原型が最初に出てきた言語って何だろ
0335デフォルトの名無しさん
2009/06/19(金) 00:43:500336デフォルトの名無しさん
2009/06/19(金) 00:56:30煽りじゃないです>< ググってみます
>>332-334
りすぱーへの道のりは通そうです><
0337デフォルトの名無しさん
2009/06/19(金) 01:04:37for (int i=0; i<10; i++) {
...
}
は、次の LOOP 式とほぼ同等
(loop for i from 0 below 10 do
...)
だし、Perlみたいなforを想定してたなら
for my $i (@lst) { ... }
これ
(loop for i in lst do ...)
まぁ、こいつはらforじゃなくてloopだろとか字面の話なら、存在しないってことでもいいけど
0338デフォルトの名無しさん
2009/06/19(金) 03:36:140339デフォルトの名無しさん
2009/06/22(月) 13:20:40自力で解けず、解答のコードを見ても再帰関数がどう動いて値を返してるのか
把握出来ません。例を当てはめても、理解出来ないこともあります。
こういう作業をするときはこのコードを使うと1:1で対応させて
暗記してしまえば良いんでしょうか?それとも、悩みぬいた方がいいんでしょうか?
0340デフォルトの名無しさん
2009/06/22(月) 13:37:29いわゆるprintfデバッグでもいいし、traceもあるし、デバッガも使えるし。
0341デフォルトの名無しさん
2009/06/22(月) 13:38:34どうしてもダメなら自分では再帰は書かない、あらゆる処理をループで書くと決意する。
理解していないのに暗記で書くなんて最悪だ。
0342デフォルトの名無しさん
2009/06/22(月) 13:55:44暗記で書くのとライブラリを使うのとは本質的に同じだ
使うライブラリはすべて理解しろと言うわけでもないだろうし
0343デフォルトの名無しさん
2009/06/22(月) 14:02:51んなわけない。まあ書くのも使うのも自分一人なら同じかも知れないが。
0344デフォルトの名無しさん
2009/06/22(月) 14:24:020345デフォルトの名無しさん
2009/06/22(月) 14:47:12再帰関数はコードが読めないと何をしているかわからなくなるよ。
自分も教えられるほど理解してないけど、基本的には、呼び出し側の関数に呼び出された関数を展開するように考えればいいと思う。
0346デフォルトの名無しさん
2009/06/22(月) 17:30:51ネスト入ると、頭が沸騰しちゃいますね・・・
0347デフォルトの名無しさん
2009/06/22(月) 18:25:490348デフォルトの名無しさん
2009/06/22(月) 20:23:39higeの引数にhogeが渡されるような関数です。
動きを頭の中で追おうとすると沸騰します。
0349デフォルトの名無しさん
2009/06/22(月) 23:01:07人の関数を追いかけるからだよ
再帰で物がきれいにかけても人の考えまでは見えないからね
自分で再帰関数の定義を自在にできるようになるまでは相互呼び出し系は鬼門だとおもうよ(再帰に限らず関数ポインタ渡すCとかも)
0350デフォルトの名無しさん
2009/06/22(月) 23:08:21「どう動くか」じゃなくて、「何をやっているのか」を読めるようになるといいと思う。
停止条件と、次の呼び出しのときにどう問題を細かくしていくのか、に注目してみよう。
0351デフォルトの名無しさん
2009/06/23(火) 00:13:06little MLerって本もあるらしい。
0352デフォルトの名無しさん
2009/06/24(水) 18:22:40>>350
はい、処理をおっかけてとりあえず理解しようとしていましたが、問題を一つ解くのに
エライ時間かかりましたし。何をやっているかを読むようにしてみます。
>>351(>>344)
余裕が出来たら、読んでみます
0354デフォルトの名無しさん
2009/06/24(水) 21:56:050355デフォルトの名無しさん
2009/06/26(金) 00:03:38Emacs上で以下のリストを書いてC+c C+kでロードしたら
(setf mat_A '(((1 2) (5 4)) ((1 2) (2 3))))
↓こんな警告がでた。
-+ Warnings (1)
`-- MAT_A is neither declared nor bound,
it will be treated as if it were declared SPECIAL.
警告自体はあまり気にしてないんだけど、警告画面が消せない。
警告画面を消してslime-repl画面に移動するにはどうすれば
いいんでしょうか?
0356デフォルトの名無しさん
2009/06/26(金) 00:45:29>いいんでしょうか?
Ctrl-H b
でキーバインドが表示される
Slime環境で楽しくLispを学ぶって事ならまずemacsの操作をおぼえなきゃいけない。
おまえさんが未だにemacsのキーバインドになれていないならeclipse+CUPSと言う環境に触れるのもいいかもしれない
また、Slimeにどっぷり浸かるつもりならCtrl-H tでemacs自体の学習が開始されるのでそれを先に済ませるのもいいかもしれない
http://journal.mycom.co.jp/articles/2006/11/09/cusp/index.html
0357デフォルトの名無しさん
2009/06/26(金) 01:09:06lispboxについてはよくわからないし、初心者に毛が生えたレベルだけど、
警告出たら、qなり、Ctrl-x oなりすればいいんじゃないの?
0358デフォルトの名無しさん
2009/06/26(金) 06:16:540359デフォルトの名無しさん
2009/06/26(金) 08:56:21slime-compilation-finished-hook で警告を消せばいいんじゃないの?
slime はかなり読みやすいんだからこれくらい自分で探せよ
0360デフォルトの名無しさん
2009/06/26(金) 20:09:01関数でsetqはあまり良くないよね
0361デフォルトの名無しさん
2009/06/26(金) 20:22:32大丈夫?
0362デフォルトの名無しさん
2009/06/26(金) 20:44:06(destructive-function (copy-list list)))
3秒で書いたのでどうなっても知らない
0363デフォルトの名無しさん
2009/06/27(土) 10:44:15ありがとうございます。
ふだんxyzzyは使うんですが、emacsには慣れてなくて。
>>357-358
ありがとうございます。
それでうまくいきました。
>>359
サーセン、無理ッス。
0364デフォルトの名無しさん
2009/06/27(土) 16:47:400365デフォルトの名無しさん
2009/06/27(土) 17:26:20CL-USER> (cond (nil (values nil t))
(t (values t nil)))
T
NIL
CL-USER>
0366デフォルトの名無しさん
2009/06/28(日) 02:27:58最適化でループになるのなら、初めからループで書けば良いと思うのですが
0367デフォルトの名無しさん
2009/06/28(日) 02:36:56発想じゃないかなぁ。
ある動作を素直に表現しようとした時に、それが再帰と呼ばれるものを使用している場合がある。
他のあらゆる技法、概念と同じだよ。
0368デフォルトの名無しさん
2009/06/28(日) 03:07:08再帰にすることで、構造が非常にはっきりする(場合がある)という利点はあるよ
ループのほうが速ければ、別に再帰にする必要なんかない
カルト宗教じゃないんだから
0369デフォルトの名無しさん
2009/06/28(日) 03:17:10loop構文で出てくる単語を覚えられない。
読むのは、いじっていればなんとかわかるんだけどなあ。
0370デフォルトの名無しさん
2009/06/28(日) 10:32:43構文の重箱の隅をつつくような使い方をすると、
ちゃんと動かなかったりするらしい。
…と初心者の聞きかじり。
0371デフォルトの名無しさん
2009/06/28(日) 10:49:37rplaca,rplacdを使わないで
0372デフォルトの名無しさん
2009/06/28(日) 10:53:190373デフォルトの名無しさん
2009/06/28(日) 11:22:020374デフォルトの名無しさん
2009/06/28(日) 11:23:03(defun settest (x) (setq x 123))
で(settest y)としてもyに値を入れてくれないじゃん
どうすればいいの?
0375デフォルトの名無しさん
2009/06/28(日) 11:24:230376デフォルトの名無しさん
2009/06/28(日) 11:33:36関数に副作用持たすのはよくない傾向と共通認識があるからそもそも問題にならない
呼び出し側でsetfすればいい話
0377デフォルトの名無しさん
2009/06/28(日) 11:43:12(setf (symbol-value x) 123))
(settest 'y)
0378デフォルトの名無しさん
2009/06/28(日) 11:49:53何を言っているのだお前は
0379デフォルトの名無しさん
2009/06/28(日) 19:07:50まぁここでも見とけ
0380デフォルトの名無しさん
2009/06/29(月) 18:06:35(defvar *test*
'(("aaa" . "bbb")
("ccc" . "ddd")))
(defmacro build-toolbar (val)
`(progn
,@(loop for i in val collect
`(print ,(car i)))))
こういうマクロを書いて
(progn
(print "aaa")
(print "ccc"))
こうなることを期待したのですが.
(build-toolbar *test*)
とやると,The value *TEST* is not of type LIST.
と出てしまいます.
どうすればよいのでしょうか?.
ちなみに,,@(loop for i in *test* collect...とやるとうまくいきます.
0381デフォルトの名無しさん
2009/06/29(月) 18:16:16マクロが展開されるのはコンパイル時。
0382デフォルトの名無しさん
2009/06/29(月) 18:18:31それかーっ!
ありがとうございます
0383380
2009/06/29(月) 18:22:44そもそも定数値をマクロに渡すような手法は間違っているのだろうか...
0384デフォルトの名無しさん
2009/06/29(月) 18:22:47てことは展開時に *test* はそのリストに束縛されてんだろう
(build-toolbar *test*)
のマクロ展開時に val が束縛されてるのは symbol *test* であって、その
値である '(("aaa" . "bbb") ...) ではないからじゃね?
0385デフォルトの名無しさん
2009/06/29(月) 18:28:510386デフォルトの名無しさん
2009/06/29(月) 18:31:180387デフォルトの名無しさん
2009/06/29(月) 20:23:11(defmacro foo (val)
`(mapcan (lambda (x) (print (car x))) ,val))
(defmacro bar (val)
`(eval (cons 'progn (loop for i in ,val collect (list 'print (car i))))))
0388デフォルトの名無しさん
2009/06/29(月) 23:25:17(defvar *test* '(("aaa" . "bbb") ("ccc" . "ddd")))
(defun foo (val)
`(progn ,@(mapcar (lambda (x) `(print ,(car x))) val)))
(defmacro build-toolbar (val)
(let ((m (gensym)))
`(macrolet ((,m () (foo ,val)))
(,m))))
0389デフォルトの名無しさん
2009/06/30(火) 01:35:370390デフォルトの名無しさん
2009/06/30(火) 07:48:27> ちなみに,,@(loop for i in *test* collect...とやるとうまくいきます.
↓
うまくいくマクロを定義するマクロを書く。
0391デフォルトの名無しさん
2009/06/30(火) 08:35:02>>380の最後に書いてあるように、大域変数の値に実際にマクロの定義文内で
アクセスすることは可能。でもトップレベルスコープであるマクロの展開中は
大域変数にしかアクセスできないのでふつうは>>387-388のように書く。
0392デフォルトの名無しさん
2009/06/30(火) 09:39:11http://www.lispworks.com/documentation/HyperSpec/Body/03_bc.htm
> Normally, the top level forms appearing in a file compiled with
> compile-file are evaluated only when the resulting compiled file is
> loaded, and not when the file is compiled.
コンパイル環境と実行環境が理解できていないんだろうな。
0393デフォルトの名無しさん
2009/06/30(火) 16:58:270394デフォルトの名無しさん
2009/06/30(火) 17:18:39そんなこと書いてないじゃん。質問がreplでは通るのにcompile-fileできません><なら
ともかく、>>381の回答は明らかに状況が判ってないだろ。
実際、compile-fileが評価される前に評価されたdefvarの値をマクロ定義内で参照してる
ファイルはコンパイルできる品
0395デフォルトの名無しさん
2009/06/30(火) 17:22:42メッセージが出たんで一旦止めて
$ clisp -m 768KB program.fas
という具合に -m オプションをつけて走らせたんですけど、同じようにメモリーが足りないという
メッセージがでます。
ps でメモリーの使用量を調べたら30%も使ってませんでした。
これってclispのバグとかでしょうか?
0396デフォルトの名無しさん
2009/06/30(火) 17:23:060397デフォルトの名無しさん
2009/06/30(火) 17:42:20されちゃうってことも知っておいてね☆
0398ネカマ
2009/06/30(火) 17:48:06トップレベルの式がコンパイルするときには評価されないとか 全 く 関係ないから
>ちなみに,,@(loop for i in *test* collect...とやるとうまくいきます.
と書いてあるんだから、すでに *test* は束縛されてることがあきらかなのに
トップレベルの式はコンパイル時に評価されないとかズレたこと言い出す >>392
は無能すぎ
質問に答える価値なし
たとえ defvar 式がトップレベルに書いてあるファイルをコンパイルしてても
元々束縛されてるものはちゃんと束縛されてますから
小学校からやりなおしてね
>>395
申し訳ないが、今は>>392で遊ぶのに必死で、あなたの質問に答える余裕がないことを
どうか許してもらいたい
0399デフォルトの名無しさん
2009/06/30(火) 17:56:540400デフォルトの名無しさん
2009/06/30(火) 18:10:160401デフォルトの名無しさん
2009/06/30(火) 18:45:150402デフォルトの名無しさん
2009/07/01(水) 01:35:25テキストボックスを表示させてキー入力すると固まってしまいます。
(ウィンドウが完全無反応になる)
要はltkを使いたい(CLでGUIアプリを作りたい)のですが、
1.上記組み合わせ(CLisp + ActiveTcl)で解決方法はありますか?
2.ない場合、上記現象がおきない処理系の組み合わせを教えてください
(AllegroCLとかLispWorksといった有償のパッケージは使わない方向で)
0403デフォルトの名無しさん
2009/07/01(水) 03:26:13関係ないかもしれんが、もしお商売の一環としてやるならフリーウェアを使うことでよけいに
手間がかかることの潜在的なコストというのも考えるべきだと思う。
0404デフォルトの名無しさん
2009/07/01(水) 05:11:52LispWorksは日本語のリテラルが入ったソースの扱いで困る
ACLは店頭で気軽に買えないので困る(通販でも買えないし)
>>402
文字コード関係の問題だと思った過去スレ4だかに同じような話が出てたよ
0405402
2009/07/01(水) 20:30:57((defun wish-enable-japanese… や (setf sb-impl::…)といったもの)
CLispの代わりにSBCL(1.0.20)を使ってみると、固まらずに動きました。
Windows版のSBCLは不安定、といった感じの文章をみたことがあるので、
できれば避けたかったのですが。
0406デフォルトの名無しさん
2009/07/02(木) 01:05:48> ((defun wish-enable-japanese… や (setf sb-impl::…)といったもの)
CLISPつかってるのにsb-implを設定とな?
0407402
2009/07/03(金) 09:09:14狐につままれた感じです。OSの違いが関係あるのでしょうか???
(以前)Windows XP Home SP1
(今回)Windows XP Pro SP2
一応各モジュールのバージョンを書いておきます。
CLisp 2.47
ActiveTcl 8.4.15.0.280619
ltk 0.91
0408402
2009/07/03(金) 09:10:030409デフォルトの名無しさん
2009/07/03(金) 14:52:520410デフォルトの名無しさん
2009/07/03(金) 15:03:000411デフォルトの名無しさん
2009/07/08(水) 08:11:01CL-USER(1): ;; Setting (stream-external-format *terminal-io*) to :emacs-mule.
CL-USER(2): (defun ^o^ () '(^o^))
^O^
CL-USER(3): (^o^)
(^O^)
CL-USER(4):
0412デフォルトの名無しさん
2009/07/14(火) 22:18:57Webサイトを読み込みたいのですが
0413デフォルトの名無しさん
2009/07/14(火) 22:44:580414デフォルトの名無しさん
2009/07/14(火) 23:03:44レスありがとうです。
やっぱりライブラリがあるんですね。
0415デフォルトの名無しさん
2009/07/15(水) 08:20:33値を返さない組み込み関数があるといいんだけど。
0416デフォルトの名無しさん
2009/07/15(水) 09:01:40意味がわかりません
関数は必ず値を返します
elispでいうignore関数みたいなものが欲しいって事?
0417デフォルトの名無しさん
2009/07/15(水) 09:59:18(apply #'format stream format args)
(values))
0418デフォルトの名無しさん
2009/07/15(水) 10:01:520419デフォルトの名無しさん
2009/07/17(金) 05:29:14こっそり変化かぁ。おもいっきり副作用じゃないの。
たぶん言語的なものじゃなくて、機械語に変換される際の高速化に影響する場合
といったものだと思うよ。それも処理系依存だから、特殊な条件がかさなるよ。
0420デフォルトの名無しさん
2009/07/17(金) 12:20:20まあ関数型言語だし、何も考えずとも最適化されとるよ
0421デフォルトの名無しさん
2009/07/17(金) 22:03:26(do ((n 1 (* n 2)))((print (format (< n 1000) "~A" n))))
0422デフォルトの名無しさん
2009/08/01(土) 21:15:00(require 'asdf)
(asdf:oos 'asdf:load-op :yaclml)
をしたときに
; loading system definition ...
などと出力されますよね?
この情報?の出力をやめさせたいときは、どうすればいいのでしょうか?
0423デフォルトの名無しさん
2009/08/03(月) 10:05:300424デフォルトの名無しさん
2009/08/04(火) 04:47:53cl-whoでやりたいことはすべてできそうです。ありがとうございました。
0425デフォルトの名無しさん
2009/08/05(水) 03:27:16CommonLispでcgiって遅くない?
動作は速いんだけど、起動してロードする時間かかりすぎた気がする。
結局その時はHTTPサーバとかも全部Lispにしたんだけど、なんか速くなる方法あるんですか?
コンパイルしといても時間かかるでしょ?
ECLとかでスタンドアローンにするのかな?
gaucheとかだとCGI速いんだけど、やっぱCLのほうが使いやすいからなー。
実用的速度で使える方法があるなら知りたい。
0426デフォルトの名無しさん
2009/08/05(水) 03:49:43の言っている事って、C++では普通関数アダプタ(bind2stみたいなので)使って解決するもんだよ。
template<typename T, typename F>
void update(T& obj, F func)
{
func(&obj);
}
Foo foo;
Bar bar;
update(foo, mem_fun(&Foo::update));
update(bar, bind2nd(mem_fun(&Bar::update), true));
なんで、CLOSでも同じ事すれば万事解決じゃないかな?
C++はマルチパラダイムなんで、普通にCLOSと同じ事をしているってことだね。
0427デフォルトの名無しさん
2009/08/05(水) 07:49:380428デフォルトの名無しさん
2009/08/05(水) 08:37:44fastCGI 的なことをするしかないと思う。
mod_lisp はあんまりメンテされてないという噂も。
0429デフォルトの名無しさん
2009/08/05(水) 08:52:380430デフォルトの名無しさん
2009/08/05(水) 09:21:26その時間がかかるのには違いない罠。
0431デフォルトの名無しさん
2009/08/05(水) 12:10:39なんだかんだで大きなcore読まないとならんでしょ
短いcgiならfastcgi使うのがいい、システムが大きくなりそうならHunchentootとか
0432高崎佳子
2009/08/11(火) 00:12:02また分からないことがありましたら質問にきます。
0433デフォルトの名無しさん
2009/08/11(火) 01:04:00値段や表紙のデザイン程度でもなんか感想くらい書けよ。
0434デフォルトの名無しさん
2009/08/11(火) 02:52:590435デフォルトの名無しさん
2009/08/11(火) 19:04:24http://pds.exblog.jp/pds/1/200509/27/48/d0063748_1623587.jpg
0436デフォルトの名無しさん
2009/08/17(月) 19:56:21http://www.franz.com/downloads/clp/downloadから指定されたファイルを落として
http://www.franz.com/support/documentation/8.1/doc/installation.htm#express-inst-linfbsd
に従って解凍し、
% ./newlicense
したのですが、
/libexec/ld-elf.so.1: Shared object "libpthread.so.2" not found, required by "newlicense"
と言われてしまいます。どうしたらインストールを完了できるでしょうか。
0437デフォルトの名無しさん
2009/08/17(月) 20:19:51pthread 入れろ
0438デフォルトの名無しさん
2009/08/17(月) 21:29:50/etc/libmap.conf を作って
libpthread.so.2 libthr.so
とか, 書き込むと幸せになれるかも知れない
だめだったら, あきらめろ
0439438
2009/08/17(月) 21:37:56追加 ${PORT}/misc/compat6x をいれるってのもありかもしれない
それでもだめだったら本当にあきらめるしかないっぽいな
0440436
2009/08/17(月) 21:48:04ありがとうございます
0441デフォルトの名無しさん
2009/08/17(月) 23:35:36libpthread.* は *BSD には無条件でインストールされるはずなのに
どんな意味で言ってるんだろうか?
0442デフォルトの名無しさん
2009/08/19(水) 11:26:15これって非効率すぎるよね?皆さんどうしてるの?
0443デフォルトの名無しさん
2009/08/19(水) 18:43:120444デフォルトの名無しさん
2009/08/19(水) 21:33:300445デフォルトの名無しさん
2009/08/19(水) 21:55:090446デフォルトの名無しさん
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あたりの脳内仮想敵について語り始めたり、罵倒しはじめる人の方がどうかと思いますよ。
0546デフォルトの名無しさん
2009/09/22(火) 00:55:530547デフォルトの名無しさん
2009/09/22(火) 01:47:56煽りっぽいけどマジレス
asdf-installが使えないと何かが足りないときに本当にめんどくさい。
どうしてもWindows上でチョロくCommonLispで遊びたいならUnix系のVM作るか
学習版のLispworksを入れてからStarter packで遊ぶ以外どうしようもない
なお学習版のLispworksでSDLなんかで遊ぶとあっという間にconsセル上限に達して再起動だから
結局製品版を買わないと遊べないぞ
0548デフォルトの名無しさん
2009/09/22(火) 02:44:06506の人がいった*nixの方がいいというのはそういう事なんですか?
わかりました。そういう事ならVMにLinux入れて試してみます。
0549デフォルトの名無しさん
2009/09/22(火) 02:51:530550506
2009/09/22(火) 03:48:50どうしてもsdl-bin使いたきゃcffi/package.lispで
(:documentation ...)
#+windows(:import-from #:sdl-bin *dll-path*)
(:export ...)
とか突っ込んでおけば通るだろう。
no symbol named "*DEFAULT-FPSMANAGER*" in "LISPBUILDER-SDL-BASE" は、タイミング悪く
http://code.google.com/p/lispbuilder/source/diff?spec=svn1316&r=1316&format=side&path=/trunk/lispbuilder-sdl/sdl/package.lisp
にでも引っ掛けちゃったんじゃねーの。svn先端にすれば通るはず。
・・・ていうか、lispbuilder-sdl のレポジトリ見ても、「DOSの改行コード直す」とかいうリビジョンが
いくつかあったり、おれがマカーかもしれないことについて何か言い残したいことはあるか?
0551デフォルトの名無しさん
2009/09/22(火) 05:49:46> >>534
> すいません、宗教上の理由によりMacは使えません。改行コードとかおかしいし。
物知らずなので教えて欲しいのだが、正しい改行コードというのがあるのだろうか?
ここだけ読むと途方も無い莫迦にしか見えない。Winsdows の改行コードだけが正し
いのです、というのなら *nix も使えないと思うのだけど。なるほど確かに宗教的な
理由だね。
> 日本語環境がおかしくてOSごとすぐ落ちるという印象がまだぬぐえないので。
> PowerXCell 8iが載ったMacとかが出たら考えちゃいますが。
OS ごとおかしくて、直ぐに青い画面になったり、一般保護違反を出すという印象が
まだ拭えな(ry
0552デフォルトの名無しさん
2009/09/22(火) 06:33:40なぜかというと
タイプライタのCRが行頭でLFが改行だから
Macの様にCRのみだと同じ行に重ねてタイプされる
*NIXの様にLFのみだと
下の行に移動はするが
行頭にはいかない
0553デフォルトの名無しさん
2009/09/22(火) 06:58:47backspaceでカーソル前の文字が消える
delete(rubout)でカーソル位置の文字が消える
(カーソルはブロックカーソルを想定)
ってのも、おかしいわけだが
0554デフォルトの名無しさん
2009/09/22(火) 07:06:48ご親切にどうも。マカ―かどうかについては、口にするほどの事は別に何も。
>>552
通信分野、特にインターネットプロトコルの多くはWindows(というかDEC)の改行コード
である CR + LFが正統とみなされてますね。
*nixのLFのみは対応している場合もありますが、旧MacのCRのみは論外ですね。
調べてみたらMacはOS Xで一応まともなOSになったんですね。
あと、宗教的理由とは言いましたが、使ってる人が圧倒的に多いWindows環境になるべく
合わせたいんですよね。Macみたいに人が少なすぎて誰にも遊んでもらえないとか悲しいですし。
まあ、Common Lispを選んだ時点であんまり関係なさそうですけど。
0555デフォルトの名無しさん
2009/09/22(火) 07:11:06その分いっぱいCR並べないといけないことになるわな。機械式はレバーでがちゃーんとやると行送りと
同時にヘッドも行頭に戻るようになっていた。
0556デフォルトの名無しさん
2009/09/22(火) 07:12:360557デフォルトの名無しさん
2009/09/22(火) 07:27:52> 調べてみたらMacはOS Xで一応まともなOSになったんですね。
Windows はいつになったらまともなOSになるんですか?
cp932 以外の文字コードは認めない。UTF-8 なんて論外だ。
EUC-JP は存在自体が許せない。
とか言い出しそうな人にしか見えない。
改行コードってそもそも低速通信の頃の名残じゃなかったっけ?
そんな話を何処かで聞いたのだけど、何処だったか忘れた。だか
ら正しさとかいう話ではないと思うが、どうなんだろう。
私は使えれば良いや、くらいにしか思ってないから拘りがあんま
りないな。だから Java には驚いた。
0558デフォルトの名無しさん
2009/09/22(火) 07:50:41あと、String型としてHTMLタグを書くときに、バックスラッシュを使わずにダブルクオーテーションをそのまま書ける方法はありますか?
0559デフォルトの名無しさん
2009/09/22(火) 08:02:41みたいだけど、Mac OS X が元々 NextStep だって事くらいきっと知ってるんだよな。
この分野で Windows を使ってる人が圧倒的に少ない事にはそろそろ気付いてるだろうし、
SBCL の公式バイナリが Mac 版だけが最新バージョンな事は当然知ってる事だよな。
その上で自分の宗教と現実のどっちが大事かくらいは分かるよな。
0560デフォルトの名無しさん
2009/09/22(火) 08:15:57> 改行コードってそもそも低速通信の頃の名残じゃなかったっけ?
そだよ。50baud 位の通信レートで直接リレーを叩くって時代の名残
0561デフォルトの名無しさん
2009/09/22(火) 09:24:48ほとんどのCL処理系は読み込んだ時点でコンパイルまでしてしまうと思うが・・。(評価時に未束縛
シンボルや不正データ型でエラーが出るのはまた別の話)evalはともかくマクロ自体はパフォーマンスに
関係ないはずだし、ふつうボトルネックはCGI本体以外のところにある。
エスケープせずにダブルクオート使いたかったら自分でリーダマクロ書くしかアルマジロ。
0562デフォルトの名無しさん
2009/09/22(火) 09:48:18>>Macみたいに人が少なすぎて誰にも遊んでもらえないとか悲しいですし。
今ならMac=Unixなんだから、プログラム勉強するならMacの方が圧倒的に楽だけどなぁ。
技術系のセミナーとか行ってみるといい。Macのノートがやたら多いよ。
0563デフォルトの名無しさん
2009/09/22(火) 10:53:27> OS ごとおかしくて、直ぐに青い画面になったり、一般保護違反を出すという印象が
> まだ拭えな(ry
へぇ、今りぬくすユーザはそんなことが書けるんだ。
なんでりぬくすにコントロール+おると+デリートキーコマンドがあったのか知らないのかな。
いや、みゅーる終わらせるのに再起動していたインスト厨だけど(泣
0564デフォルトの名無しさん
2009/09/22(火) 12:02:45ものすげぇ自爆じゃねぇか!
0565デフォルトの名無しさん
2009/09/22(火) 20:56:15むしろPowerPCアーキテクチャでなくなった事で、完全に選択肢に入らなくなりましたね。
Mac OSを使う気は全く無いですし、Windowsが動くとはいっても、Macにこだわるべき理由
が全くありませんから。素直に低価格のWindows PCを選びますよ。2〜3万円で必要な
機能は全て揃いますからね。
> SBCL の公式バイナリが Mac 版だけが最新バージョンな事は当然知ってる事だよな。
これは知りませんでしたね。まさかSBCL自体が地雷だったとは思ってもみませんでした。
0566デフォルトの名無しさん
2009/09/22(火) 21:11:38こういう事を平気で言えてしまうのは一体どういう人なんだろうな…
他人事とはいえ、悲しくなるわ
0567デフォルトの名無しさん
2009/09/22(火) 21:25:23ありがとうございます。
スレ荒れてますね・・。
0568デフォルトの名無しさん
2009/09/22(火) 21:26:570569デフォルトの名無しさん
2009/09/22(火) 21:52:25Common Lispなら何とかしてくれる
0570デフォルトの名無しさん
2009/09/22(火) 21:54:250571デフォルトの名無しさん
2009/09/22(火) 22:02:13> こういう事を平気で言えてしまうのは一体どういう人なんだろうな…
一神教の人。
0572デフォルトの名無しさん
2009/09/22(火) 22:21:28MIT の学生なら、その問題を解かなくても Google には入れそうな気が、、、
でもこういうのは楽しくて良いね
0573デフォルトの名無しさん
2009/09/22(火) 22:43:56(setf lst '())
(loop for i from 0 upto 3
do (setf (char str i) #\a)
(push str lst))
(format t "~A ~A ~A ~A~%" (car lst) (cadr lst) (caddr lst) (cadddr lst)))
(test "test")
* aaaa aaaa aaaa aaaa
NIL
何故だ
0574デフォルトの名無しさん
2009/09/22(火) 22:48:46どんな状況でも自分を正当化できる人間って、ある意味羨ましいよな
0575デフォルトの名無しさん
2009/09/22(火) 22:53:20(defun test (str)
(format t "~{~A~^ ~}~%"
(loop
for i from 0 upto 3
for s = (copy-seq str)
do (setf (char s i) #\a)
collect s)))
* (test "test")
aest tast teat tesa
NIL
0576デフォルトの名無しさん
2009/09/22(火) 22:55:28i:0 str => "aest", lst => ("aest")
i:1 str => "aast", lst => ("aast" "aast")
i:2 str => "aaat", lst => ("aaat" "aaat" "aaat")
i:3 str => "aaaa", lst => ("aaaa" "aaaa" "aaaa" "aaaa")
どうなって欲しいのかがよくわからんが、push時にコピーしときたいならこうかな。
(defun test (str)
(let ((lst nil))
(loop for i from 0 upto 3
do (setf (char str i) #\a)
(push (copy-seq str) lst))
(format t "~A ~A ~A ~A~%" (car lst) (cadr lst) (caddr lst) (cadddr lst))))
0577デフォルトの名無しさん
2009/09/22(火) 22:57:26なんか違いあったりするの?
0578デフォルトの名無しさん
2009/09/22(火) 23:10:34toとuptoで違いがあるというより組合せだね。byでの増分値指定は正の数のみなので、
from .. to .. [by N] => inc
from .. upto .. [by N] => inc
downfrom .. to .. [by N] => dec
from .. downto .. [by N] => dec
となる。below/aboveとかもあるけど。詳細は CLHS 6.1.2.1.1 The for-as-arithmetic subclause 参照。
0579デフォルトの名無しさん
2009/09/22(火) 23:15:47お、ありがとう
charを使ったら思うようにならなくなって困った
0580デフォルトの名無しさん
2009/09/22(火) 23:37:17だってシェア10%未満の環境のみを基準にして、他は対応が大幅に遅れるんでしょう?
なら、地雷そのものじゃないですか。GCLにでも乗り換えますよ。
>>571
つまりMac信者の事ですね。
0581デフォルトの名無しさん
2009/09/22(火) 23:43:220582デフォルトの名無しさん
2009/09/22(火) 23:49:23シェアが大きいってことは「正しい」ってことでも「優れている」ってことでもないんだ。
ある条件にはよりよくマッチするってことはあるかもしれんがね。
0583デフォルトの名無しさん
2009/09/23(水) 00:06:52その話題を続けたいなら別スレに行こうな。
君が相手を続ける限り終わらないぜ。論理で信仰に挑んでも仕方が無いさ。
0584デフォルトの名無しさん
2009/09/23(水) 01:28:36【緊急情報カクサンよろしく】
ついに来ました。
大きい動きです。250nT超えてきました。ほぼ間違いありません。もう一度言います。
友人、知人、親類縁者、あらゆるつながりを駆使して巨大地震がくることを教えて下さい。
四川地震より大きいのが来る可能性があります。
http://g★olde★ntam★atama.b★lo★g84.fc2.c★om/
★★★★★危険度MAX★★★★★
★★★★★★★★★★★★★★★★
★千葉、静岡、東京、関東で大地震が起きる可能性が非常に高くなっています★★★
★千葉、静岡、東京、関東で大地震が起きる可能性が非常に高くなっています★★★
★千葉、静岡、東京、関東で大地震が起きる可能性が非常に高くなっています★★★
★千葉、静岡、東京、関東で大地震が起きる可能性が非常に高くなっています★★★
★★★★★★★★★★★★★★★★
★★★★★危険度MAX★★★★★
警告!連休中の21、22、23日が危ない!かも2
http://live24.2ch.net/test/read.cgi/eq/1★253494015/
【大気イオン】e-PISCO Part11【また延長】
http://live24.2ch.net/test/read.cgi/eq/1★252991726/
本当に地震が来たら、犯人は特権階級全員だということ2
0585デフォルトの名無しさん
2009/09/23(水) 04:56:01SBCL は *nix 上で動作するものとして開発が始まっていてだなぁ,
Windows 上での動作なんてのは想定外だったんだよ。
# Mac も OS X は, ユーザーランドは立派な *nix だしな………
そうゆう意味では地雷だったわけだ。
# ぶつぶつ文句言うくらいだったら SBCL Windows 版の開発に参加すればいいのに
# 何のためのオープンソースなんだか………
0586デフォルトの名無しさん
2009/09/23(水) 05:16:22|
\ _ /
_ (m) _
目 ピコーン
/ `′ \
∧∧
(・∀・)
ノ( )ヽ
< >
HSP <-> I_ISP <-> LISP 俺って天才?
0587デフォルトの名無しさん
2009/09/23(水) 10:58:03天才。
0588デフォルトの名無しさん
2009/09/23(水) 13:08:59_人人人人人人人人人人人人人人人_
> な、なんだってー!! <
 ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
∩___∩ ∩____∩
| ノ u ヽ / u u └| ∩____∩
/ # ● ● | | ● ● # .ヽ/ u └|
| u ( _●_) ミ 彡 (_●_ ) u |● ● # ヽ
彡、 |∪| 、`\ / |∪| 彡 (_●_) u |
/ __ ヽノ /´> ) ( く ヽ ノ / u |∪| ミ
(___) / (_/ \_ ) ( く ヽ ノ ヽ
0589デフォルトの名無しさん
2009/09/23(水) 13:14:10お前天才だな
0590デフォルトの名無しさん
2009/09/23(水) 17:49:43quoteっぽく見えるけど、やってることはquote剥がしに近い
0591デフォルトの名無しさん
2009/09/23(水) 18:42:50俺も、似たようなこと思ってた。
時々、#'がquote の関数版とか言う表現を見かけたんだけど、
「やってることの向きが逆じゃね。」
と、思ってたよ。
ただ、だまってたけど。
0592デフォルトの名無しさん
2009/09/23(水) 19:13:29見た目のはなし?気に入らないなら function でもどーぞ。
>>591
それって見た目の話じゃなくて意味の説明だった?
俺には向きというか全然別物に見えるけど。
0593デフォルトの名無しさん
2009/09/23(水) 19:42:15ラップするのとは逆といえば逆かな。
lambdaに対する#'は微妙だけど。
0594デフォルトの名無しさん
2009/09/23(水) 21:22:02quote と function は元々同じ意味で、
function を使うのは処理系に与えるヒントでしかなかった。
emacs lisp では今でもそう。
Common Lisp では (たぶん lexical closure のせいで)
quote と function は違うものになった。
0595デフォルトの名無しさん
2009/09/23(水) 21:23:14全体として関数名とみなされ、#'で対応する関数が得られ、
それとは別にlambdaマクロで関数が得られる?
もうschemeに帰りたい…
0596デフォルトの名無しさん
2009/09/23(水) 21:46:35(QUOTE object) => オブジェクトそのものを返す
(FUNCTION name) => カレントレキシカル環境の指定された名前の関数を返す。みつかんなかったらグローバル環境から探す。
だろ?>>593のいうようなデリファレンスはSYMBOL-FUNCTIONを想像するなぁ。
0597デフォルトの名無しさん
2009/09/23(水) 21:49:02>>594
ありがとう。
"lisp quote function"でぐぐって、関係ありそうな日本語の文書として
ttp://www.ice.nuie.nagoya-u.ac.jp/~h003149b/lang/p/funarg/funarg.html
ttp://www.ice.nuie.nagoya-u.ac.jp/~h003149b/lang/comparison.html
ttp://tips.lisp-users.org/common-lisp/index.cgi?QUOTE%E3%81%A8FUNCTION%E3%82%92%E4%BD%BF%E3%81%84%E5%88%86%E3%81%91%E3%82%8B
がひっかかった。これから読む。
0598デフォルトの名無しさん
2009/09/23(水) 21:54:46俺もお前が謎すぐるので、もうSchemeに帰ってほしい…
0599デフォルトの名無しさん
2009/09/24(木) 01:12:53ttp://www.youtube.com/watch?v=xO7KfTu7VmU
0600デフォルトの名無しさん
2009/09/24(木) 09:25:01その辺はemacs lispの方がわかり易いな。
ただemacs lispはCLの人の為に #' は残してくれてるよね。
中では多分同等にあつかってるとおもう。
(defun foo (fn) (funcall fn))
=> foo
(foo '(lambda nil 1))
=> 1 (#o1, #x1)
(foo (lambda nil 1))
=> 1 (#o1, #x1)
(foo #'(lambda nil 1))
=> 1 (#o1, #x1)
(foo (function (lambda nil 1)))
=> 1 (#o1, #x1)
#'1
=> 1 (#o1, #x1)
0601デフォルトの名無しさん
2009/09/24(木) 10:15:30> => 1 (#o1, #x1)
こいつはくせえ。ゲロ以下のにおいがプンプンするぜ。
CLでもlambdaマクロからは同じようなにおいがするけどね。
0602デフォルトの名無しさん
2009/09/24(木) 10:21:50> こいつはくせえ。ゲロ以下のにおいがプンプンするぜ。
ちゃんと>>600を読めよ。 emacs lisp では
' == #'
なんだよ。
0603デフォルトの名無しさん
2009/09/24(木) 12:39:45FOO
> (defun fuga () (format t "test"))
FUGA
> (foo (fuga))
test
NIL
これって問題ないんですか?
funcallやapplyは不要??
0604デフォルトの名無しさん
2009/09/24(木) 12:56:460605デフォルトの名無しさん
2009/09/24(木) 13:01:03すみません、どう違うんです??
0606デフォルトの名無しさん
2009/09/24(木) 14:27:540607デフォルトの名無しさん
2009/09/24(木) 14:34:390608デフォルトの名無しさん
2009/09/24(木) 14:58:15*** - SYSTEM::READ-EVAL-PRINT: variable FUGA has no value
変数の名前空間と関数の名前空間が違うということですね。
ということは(foo (fuga))ではfugaは代入されて実行されたわけではない?
引数にした関数をなかで実行したい場合はどうすればいいんですか??
0609デフォルトの名無しさん
2009/09/24(木) 15:07:04何を言ってるんだお前は
0610デフォルトの名無しさん
2009/09/24(木) 15:10:060611デフォルトの名無しさん
2009/09/24(木) 15:33:59各 symbol には関数以外の値と関数の値(ポインターかコードオブジェクト)を
保持するスロットがある。名前空間が違うわけではない。
0612デフォルトの名無しさん
2009/09/24(木) 15:53:02呼び出し元で function(#')またはquote(')、
呼び出し先でapplyまたはfuncallを使う。
>>611
> 各 symbol には関数以外の値と関数の値(ポインターかコードオブジェクト)を
> 保持するスロットがある。
それが名前空間が違うということなんじゃないの?
0613デフォルトの名無しさん
2009/09/24(木) 16:10:27ここの方法を改変したらいけた
http://mono.kmc.gr.jp/~mak/hiki/?lisp%2Flispbuilder%2Fwindows%2Fsbcl
私は
Program Files
じゃなくて
c:\sbclに入れた
0614デフォルトの名無しさん
2009/09/24(木) 16:28:31たいていはどっちでもいいのだが
前者は関数定義そのもの、後者は関数名による呼び出しなので
別のものが呼び出される場合がある
0615デフォルトの名無しさん
2009/09/24(木) 16:38:35fuga
> (setq fuga1 #'fuga fuga2 'fuga)
fuga
> (funcall fuga1)
test
nil
> (funcall fuga2)
test
nil
> (defun fuga () (format nil "test"))
fuga
> (funcall fuga1)
test
nil
> (funcall fuga2)
"test"
0616デフォルトの名無しさん
2009/09/24(木) 17:24:11dot.sbclrcとかで代用できないの?
0617デフォルトの名無しさん
2009/09/24(木) 17:36:37;;; SBCL 1.0.29 on win2003
0618デフォルトの名無しさん
2009/09/24(木) 19:41:52コマンドラインからつくれなかったっけ?
0619デフォルトの名無しさん
2009/09/24(木) 20:00:000620デフォルトの名無しさん
2009/09/24(木) 20:42:09適当なファイル名で作ってから ren コマンドでリネームが常套手段
0621デフォルトの名無しさん
2009/09/25(金) 19:40:22((00-0000-0000 keitai)
(11-1111-1111 ie))
(("toukyouto chiyodaku nagatacho 1-1-1" jitaku)))
みたいなデータ構造を扱いたいと思っています
これってプロパティリストでは扱えないと思うんですが
アクセッサやフォーマットチェッカなんかを作ってくれるライブラリとかご存じないでしょうか
0622デフォルトの名無しさん
2009/09/25(金) 21:18:17> これってプロパティリストでは扱えないと思うんですが
内容によっちゃぁ、
(:type human :name (nanasino gonbe) :keitai 00-0000-0000 :ie 11-1111-1111 :jitaku "toukyouto ...")
とう形式で覚えて、入出力時に任意の表現でもいいんじゃないか。
> アクセッサやフォーマットチェッカなんかを作ってくれるライブラリとかご存じないでしょうか
どんなアクセサが欲しいのか?フォーマットチェッカはどんなデータをどうエラーにしたいの?
0623デフォルトの名無しさん
2009/09/26(土) 02:45:460624デフォルトの名無しさん
2009/09/26(土) 09:09:210625デフォルトの名無しさん
2009/09/27(日) 19:36:460626デフォルトの名無しさん
2009/09/29(火) 20:49:560627デフォルトの名無しさん
2009/09/29(火) 21:29:38どこで聞いたの?
0628デフォルトの名無しさん
2009/09/29(火) 23:35:13干潮 (かんちょう) というと当然ながら浣腸を連想するわけだ。
肛門にぶっ挿して中に出すあれだ。
では満潮 (まんちょう) というと、もちろん差し込む場所は…
0629デフォルトの名無しさん
2009/09/29(火) 23:36:340630デフォルトの名無しさん
2009/09/30(水) 10:27:370631デフォルトの名無しさん
2009/09/30(水) 10:52:140632デフォルトの名無しさん
2009/09/30(水) 10:56:53Lisperは変態の集まりだと思われかねないので
そのような誤爆には気を付けてくれた給へw。
0633デフォルトの名無しさん
2009/09/30(水) 10:59:46> Lisperは変態の集まりだと思われかねないので
え、違うの?
0634デフォルトの名無しさん
2009/09/30(水) 11:00:120635デフォルトの名無しさん
2009/09/30(水) 11:02:160636デフォルトの名無しさん
2009/09/30(水) 15:51:52/斗──= 、―-、\
/'´>‐‐──-\ ヽ`ニヽ
//// l ヽ ∨ヽ\
__〃 l | { ヽ | V-、/
く // │l ト、ノ ヽ \‐-! | トく \
//| l l |l┼匕_\|\ \ {_\| j l{ ヽ/}
</レV|ヽ小 ヾ心 \l〃⌒| 八ーW
// /| \ヽハ弋ヒ} , ::::::│/ / 从リ
/ /|__l | rfV \ ::: t=ー ァ // / `>、_ すまんコ!
∨ {ヘハヽト:!ハ\.> _`ー_,.イl/∨l / /\-、___
. ヽ从| | lヘn\ゝト、 7 :|八 '/ / ノ`'|lllレ│
| l人j {ヽミ :|二ニ二| / / |l斗' |\
{ ヽ `}\ ∨ ,' j '/ ォ<__/__ヽ、j _}
/ム , /}小\∨ r// / )><_|寸|/ /
/_|l`三彡ハ \∨l/ //「「|  ̄ _/
{/ \二イ `ーォ≧≦二ニ ≠ \>‐‐=彡'
| / / / / ハヽ │ `rー‐'´
l / 人く/イ| L_>、 /ヘ
`ー‐'´ / '/ | ! \ヽj/ / /^ヽ
r‐'´ ,' /j j ヽト、 / ノ\_
} / /// ∧ヽ /
ヽ. / /く/ │l\_> /
\_/ l │l /
|`ヽ{_ ノ { __/
| `ー┬┬-、(厂'ー'´/
| ,' / /
0637デフォルトの名無しさん
2009/10/01(木) 20:36:31hunchanroot使う人多いみたいだけど
0638デフォルトの名無しさん
2009/10/04(日) 01:05:34以下にいろいろインストールしちゃうんだけど
/usr/share/common-lisp/
以下に変更する方法ないものだろうか
0639デフォルトの名無しさん
2009/10/04(日) 02:32:41いまさらだし、ネタばれ読んでから作ったものですが、、、
(defun make-decode-hash (key-list)
(let ((d-hash (make-hash-table :size 47))
(bs-list (coerce "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" 'list)))
(dolist (x (append key-list bs-list) d-hash)
(or (gethash x d-hash)
(setf (gethash x d-hash) (pop bs-list))))))
(defun decode-google (key quest)
(let ((dec-hash (make-decode-hash (coerce (nstring-upcase key) 'list))))
(format t "~{~a~}~%" (mapcar #'(lambda (x) (gethash x dec-hash))
(coerce (nstring-upcase quest) 'list)))))
(decode-google "jobs" "8MLDQ6TUI6TFMLRHAANRA6Q8EFLDMQ86II2O32S5J13JXOJ")
この問題に関してなら、コンパイルなしでハッシュが使える言語なら、
何でも向いているといえそうな気がします。
0640デフォルトの名無しさん
2009/10/04(日) 09:55:07データが多くなければMySQLの代わりに使える?
0641デフォルトの名無しさん
2009/10/04(日) 09:59:12MySQL (リレーショナルデータベース) の価値は速さじゃないからなぁ…
代わりに使えるかどうかという疑問には簡単には答えられない。 状況による。
0642デフォルトの名無しさん
2009/10/04(日) 10:20:44SQLite使いなよ。
http://www.cliki.net/SQLite%20Lisp%20interface
0643デフォルトの名無しさん
2009/10/04(日) 10:22:48お前バカか?
基本ハッシュテーブルの方が早いわ。
0644デフォルトの名無しさん
2009/10/04(日) 10:28:32wikiで関係代数、関係論理の項目読んでみた。
無知でごめん。勉強になります。
0645デフォルトの名無しさん
2009/10/04(日) 11:40:30MySQLのHEAPテーブルだったらオンメモリなハッシュテーブルみたいだから
あまり変わらんのでは?
0646デフォルトの名無しさん
2009/10/04(日) 11:58:01いや基本遅いから。
いちいちこんな簡単なこと聞くなよ低能。
0647デフォルトの名無しさん
2009/10/04(日) 12:53:170648デフォルトの名無しさん
2009/10/04(日) 13:53:540649デフォルトの名無しさん
2009/10/04(日) 14:16:010650デフォルトの名無しさん
2009/10/04(日) 17:44:320651デフォルトの名無しさん
2009/10/04(日) 17:51:150652デフォルトの名無しさん
2009/10/04(日) 18:11:00この人なら、町内会のチラシ見て宇宙の真理とかもわかっちゃいそう。
0653デフォルトの名無しさん
2009/10/04(日) 18:16:470654デフォルトの名無しさん
2009/10/04(日) 18:53:3642という数字がそうであると一瞬で確信できるのはやっぱりキチガイ。
0655デフォルトの名無しさん
2009/10/04(日) 20:35:14(let ((g (gensym)))
`(eq ',g ',g)))
を評価して
>(macro-test)
を評価すると
T
となるのですが
>(EQ '#:G6575 '#:G6575)
を評価すると
nil
となるのはどうしてでしょうか?
0656デフォルトの名無しさん
2009/10/04(日) 20:53:59マニュアル見ると、機能的には実装もハッシュぽいね。
これならあんまりかわらないのかも。
0657デフォルトの名無しさん
2009/10/04(日) 21:08:32前者は gensym で作成されたシンボルが g にうめ込まれている。二つは同じシンボルなので比較するとT。
後者はリーダーが読む毎に別のシンボルを作成する。後者の場合はリーダーが読んだ結果は (EQ <シンボルA> <シンボルB>) でこの二つは別のオブジェクト。
SYNBOL-NAME で取得するとどっちも "G6575" がかえってくるだろうけど、別のシンボル。#: はこれを実現するためのマクロだからね。
この動作は CLHS 2.4.8.5 で規定されている。
0658655
2009/10/04(日) 21:53:020659デフォルトの名無しさん
2009/10/05(月) 01:54:11うまく動くPCと動かないPCがある
何が違うんだろう
0660デフォルトの名無しさん
2009/10/05(月) 06:08:18アホだなお前。
0661デフォルトの名無しさん
2009/10/05(月) 09:07:17苦笑い
0662デフォルトの名無しさん
2009/10/05(月) 09:09:42なんかこのスレの程度の低さが露呈されてきたようだな。
このスレッドには基礎的なデータ構造すら理解できていない人間が多すぎる。
0663デフォルトの名無しさん
2009/10/05(月) 09:12:220664デフォルトの名無しさん
2009/10/05(月) 21:29:52れないが、そんなことが分からない人間がこのスレにいることは信じるしかない
みたいだな。
0665デフォルトの名無しさん
2009/10/05(月) 22:11:24Lisp脳は簡単な日本語も分からないのか?
どこにLispの実装より早いと書いてある??? はぁ????
0666デフォルトの名無しさん
2009/10/05(月) 22:12:130667デフォルトの名無しさん
2009/10/05(月) 22:13:210668デフォルトの名無しさん
2009/10/05(月) 22:33:29ハッシュテーブルで済む用途にはハッシュテーブルを使ったらいいし、
RDBS が必要な用途にはそれを使えばいい。
機能が違うのに性能を比較するのはナンセンス。
ただのハッシュテーブルで済むことに MySQL を使ってたのだとしたら、
アホなことやってんなぁと思う。 そんな話。
どうしても速度が気になるなら自分がやりたい条件で実測しろよ。
0669デフォルトの名無しさん
2009/10/05(月) 23:10:59この低能さんはプログラマなの?
0670デフォルトの名無しさん
2009/10/05(月) 23:18:470671656
2009/10/05(月) 23:32:23不用意な発言で荒れてしまい申し訳ありませんでした。
0672デフォルトの名無しさん
2009/10/06(火) 00:13:37旦旦旦旦旦旦旦旦旦旦旦/⌒ヽ旦旦旦旦旦旦旦旦旦
⊂二二二二二二二二二二( ^ω^)二二二二二二二二⊃ お茶が入りましたおー
| /
( ヽノ
ノ>ノ
三 レレ
∩ ダシャーン
ミ //
ミ ⊂'ヽ ∩ // \
ミ \\\\_,,,,,,,,/ ∠ /
\\\\ .,''.,':.',, .,':.',, .,': l .,':.',,|[]].,':...,
ガッ ) \\ ).,':.',,:.',, []] .,':.',,.,':.',,.,日 .,':.',,.,':.',, /
凵@ ⊂二二二、___ヽ \_,,..ノ /[]].,':',,:',[]]/[]]\[]].,':.',,|[]].,':.',, _ .,':.',,]]/ 日.,':.',,.., . ..,,,;:[]]
0673デフォルトの名無しさん
2009/10/06(火) 00:20:50最初は間違うものだから頑張れ。頑張れ。
0674デフォルトの名無しさん
2009/10/06(火) 00:53:48黙れマッチポンプ
0675デフォルトの名無しさん
2009/10/06(火) 02:10:33脳細胞がリストとS式で出来てるなんてうらやましい
0676デフォルトの名無しさん
2009/10/06(火) 02:15:530677デフォルトの名無しさん
2009/10/06(火) 02:53:180678デフォルトの名無しさん
2009/10/06(火) 03:38:22表現可能ってだけで、できているわけではない。
それにS式である必要もない。
0679デフォルトの名無しさん
2009/10/06(火) 12:48:29単に(S式)か(アトムとコンスセル)かどっちかだな
0680デフォルトの名無しさん
2009/10/06(火) 20:28:07(lambda (...) ...)はマクロとして評価されて返ってくるのは関数ですよね。
直接lambda式をいじる、という状況はあまり思い浮かばないけど
なんとなく気になったもので。
0681デフォルトの名無しさん
2009/10/06(火) 22:30:21M式って別の表現があることで分かるように、S式は印字表現だぜ。
>>680
#'(lambda (...) ...)のこと?
0682デフォルトの名無しさん
2009/10/06(火) 22:42:27なにをば(ry
0683デフォルトの名無しさん
2009/10/06(火) 22:47:15#'(lambda (...) ...)だと返ってくるのは関数ですよね。
ほしいのはその一段階前の状態です。
マクロとして評価されない(lambda (...) ...)と言えばいいのかな?
0684デフォルトの名無しさん
2009/10/06(火) 22:56:050685デフォルトの名無しさん
2009/10/06(火) 23:16:17これかな。使ったことないけど。
http://www.lispworks.com/documentation/HyperSpec/Body/f_fn_lam.htm
0686デフォルトの名無しさん
2009/10/06(火) 23:38:20意図していたのはまさにそれです。ありがとうございました。
自分で聞いといて何ですが、どういうときに使うんでしょうね。
0687デフォルトの名無しさん
2009/10/07(水) 00:04:50CLHSにあるとおり nil が返る可能性があるからねぇ。最悪常に nil でもいいわけで。
ほとんどの処理系で最適化の具合でなくなっちゃうから、ユーザーレベルでこれを
アテにするほうな利用法はあまり見かけないね。プリティプリンタ、インスペクタなどの
表示系で nil になったても致命的じゃない場所で使われてるのはたまに見かける。
0688デフォルトの名無しさん
2009/10/07(水) 00:20:36節子、それcommon lispやない、schemeや
0689デフォルトの名無しさん
2009/10/07(水) 01:40:170690デフォルトの名無しさん
2009/10/07(水) 05:16:56書けばいいんでねえか
0691デフォルトの名無しさん
2009/10/07(水) 09:28:13なるほど。表示系が一番適切そうですね。
>>690
書き込み見て気づきました。
|
\ __ /
_ (m) _ピコーン
|ミ|
/ .`´ \
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(・∀・∩< lambda式ってただのS式?
(つ 丿 \_________
⊂_ ノ
(_)
0692デフォルトの名無しさん
2009/10/07(水) 10:26:33defun特化なら、そのシンボルのsymbol-plistに加えた方がいいのでは?
ただdefun特化だと、無名のクロージャのfunction-lambda-expressionは取れないよね。
それからS式は印字表現だっての。
http://en.wikipedia.org/wiki/S-expression
> The term S-expression or sexp (for symbolic expression) refers to
> a convention for representing semi-structured data in human-readable
> textual form.
Elisp辺りはobjectの意味で使ってるけど。
0693デフォルトの名無しさん
2009/10/07(水) 13:56:53schemeだと、それがnilにならないの?
stalimもそうなのかな
0694デフォルトの名無しさん
2009/10/07(水) 14:14:45$ gosh
gosh> (lambda () t)
#<closure #f>
$ guile
guile> (lambda () #t)
#<procedure #f ()>
0695デフォルトの名無しさん
2009/10/07(水) 20:54:11データがメモリーに入りきらないとき?
0696デフォルトの名無しさん
2009/10/07(水) 21:11:110697デフォルトの名無しさん
2009/10/07(水) 21:44:42冗長性を減らすとか、一貫性が必要な場合とか、完全性とか
セキュリティとか…いっぱいあるから RDBMS は勉強しとくといいよ。
0698デフォルトの名無しさん
2009/10/07(水) 22:03:50「リレイション」は無視かよ。
0699デフォルトの名無しさん
2009/10/07(水) 23:19:42なんか嫌なことでもあったのか?
0700デフォルトの名無しさん
2009/10/08(木) 11:58:370701デフォルトの名無しさん
2009/10/08(木) 13:35:12readlineとlibsigsegvはインストール済ですがffiもどこかから持ってくる?
configureするとこうなっています
Configure findings:
FFI: no (user requested: default)
readline: yes (user requested: default)
libsigsegv: yes
0702デフォルトの名無しさん
2009/10/08(木) 13:55:41configure の時のオプションは何?
0703デフォルトの名無しさん
2009/10/08(木) 14:06:29prefixでインストールディレクトリだけ指定しています
あと、configureではありませんが、srcディレクトリで
./makemake --with-dynamic-ffi
等も試してみました
0704デフォルトの名無しさん
2009/10/08(木) 16:35:16http://d.hatena.ne.jp/smeghead/20081223
しかし、clispのバージョンによって、ソースからインストールしたときに、ffiパッケージが
有効になるバージョンと有効にならないバージョンがあるようでした。
とあった。ここによると clisp 2.42 だと大丈夫のようだけど、調べてないです。
ほかにこんなのもありました。
http://blog.goo.ne.jp/espiya/e/d860223142e8884f7eb937db9ecc1712
0705704
2009/10/08(木) 17:00:25入れているので、./configure のときにちょっと書き足したけど、結果は以下の
通り。
Configure findings:
FFI: yes (user requested: default)
readline: yes (user requested: default)
libsigsegv: yes
ということで、バージョン依存でよさそう。2.47 だと FFI は no になってた。
0706デフォルトの名無しさん
2009/10/08(木) 19:19:35ゲームを題材に、ってのは惹かれる
0707デフォルトの名無しさん
2009/10/08(木) 22:23:35http://www.haible.de/bruno/packages-ffcall-README.html
以前は同梱してありましたが2.44で同梱されなくなりました。
0708デフォルトの名無しさん
2009/10/09(金) 10:43:42どうもアチラさんの絵のセンスは理解できない。
試み的には期待してる。
0709デフォルトの名無しさん
2009/10/09(金) 11:21:50インストールできました。ffcallという名前のライブラリだったんですね
ありがとうございます
0710デフォルトの名無しさん
2009/10/09(金) 19:03:51には
Note
The old page, http://www.haible.de/bruno/packages-ffcall.html, is deprecated (it offers an obsolete source tar ball).
と書いてあるんだけど、なんかあったの?
0711デフォルトの名無しさん
2009/10/09(金) 19:22:36そっちの旧ページはもうメンテされてないし、古いソースがころがってるから見ちゃだめ、という意味。
0712デフォルトの名無しさん
2009/10/10(土) 17:15:09ありがとうございます。
cvs ってのがイマイチよく分からなかったのですが、なんとか落としてみました。
;; tgz で固めたのでも置いてくれれば個人的には楽なんですけど、筋違いですね。
0713デフォルトの名無しさん
2009/10/11(日) 02:50:45cvsメンテしてる奴って完全にアホだよね
0714デフォルトの名無しさん
2009/10/11(日) 07:00:090715デフォルトの名無しさん
2009/10/12(月) 21:45:55どのようにすればいいのでしょうか?よろしくお願いします。
使用OSはWindows XPです。
0716デフォルトの名無しさん
2009/10/14(水) 23:07:20俺んとこでは普通に動いたからなー
逆になんで動かないのかこっちが聞きたいw
0717デフォルトの名無しさん
2009/10/16(金) 21:10:09日本語も空白もないパスのときは普通に起動した。
0718223
2009/10/16(金) 23:10:51うまく動作したよ。フォルダの問題だったんだ。ありがとう。
かなり速い。
? (time (tak 12 6 0))
(TAK 12 6 0) took 0 milliseconds (0.000 seconds) to run
with 2 available CPU cores.
During that period, 172 milliseconds (0.172 seconds) were spent in user mode
0 milliseconds (0.000 seconds) were spent in system mode
12
?
0719デフォルトの名無しさん
2009/10/18(日) 08:51:34処理系はSBCLを使っています。
日本語を扱うため、色々調べた結果.emacsには以下の設定を書きました。
(set-language-environment "Japanese")
(set-terminal-coding-system 'utf-8)
(prefer-coding-system 'utf-8-unix)
(set-keyboard-coding-system 'utf-8)
(set-clipboard-coding-system 'utf-8)
(set-selection-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(modify-coding-system-alist 'process""'utf-8)
(setq default-buffer-file-coding-system 'utf-8)
(set-default-coding-systems 'utf-8-dos)
(set-selection-coding-system 'utf-16le-dos)
(setq slime-net-coding-system 'utf-8-unix)
しかし、REPLで日本語を入力すると
decoding error on stream
#<SB-SYS:FD-STREAM for "standard input" {23B57741}>
(:EXTERNAL-FORMAT :SHIFT_JIS):
the octet sequence (130 10) cannot be decoded.
というエラーが出てきてしまって日本語が扱えません。
どなたか解決法を知っている方がいましたら教えて下さい。
0720デフォルトの名無しさん
2009/10/18(日) 10:30:46新聞の今日の一句を見て思い直す
>>719
slime起動して
sb-impl::*default-external-format* と
sb-alien::*default-c-string-external-format*
の値を調べて、:utf-8じゃなかったら
Emacsのホームフォルダに .sbclrcというファイルを作って
(setf sb-impl::*default-external-format* :utf-8)
(setf sb-alien::*default-c-string-external-format* :utf-8)
と書きこんどく。
直らなかったら次の人頼む
0721デフォルトの名無しさん
2009/10/18(日) 11:08:53レスありがとうございます。
しかし、そのように設定してもREPLで同様のエラーが出てしまいました。
ちなみに外部のテキストファイルtest.txtに対して
test.txt
----------
(12 23 あ)
以下を実行すると
(with-open-file ( in "test.txt")
(let ((word (read in)))
(format t "~A " word)))
(12 23 \202\240)
このように表示されてしまいます。
0722デフォルトの名無しさん
2009/10/18(日) 16:34:53(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
;; slime
(setq inferior-lisp-program "sbcl.exe") ; your Lisp system
(add-to-list 'load-path "~/.emacs.d/slime/") ; your SLIME directory
(require 'slime)
;(slime-setup)
(slime-setup '(slime-repl))
(add-hook 'lisp-mode-hook (lambda ()
(slime-mode t)))
(setq slime-net-coding-system 'utf-8-unix)
自分の設定はこんなだけど、utf-8で問題なく動くよ。
0723720
2009/10/19(月) 23:27:45それと同じ設定にしてみてもダメでした。
Windowsからだと難しいようですね。
Linuxの環境を整えた後にまた挑戦してみます。
0724デフォルトの名無しさん
2009/10/20(火) 07:03:00Windowsのインストーラは標準ではUTF-8の環境をインストールしてくれないので
インストール時に項目をチェックしてないのではないかな?
0725デフォルトの名無しさん
2009/10/20(火) 20:23:07QuantLib のようなものを探しているのですが
0726722
2009/10/20(火) 20:50:16ntemacs-23, sbcl1.0.29で、win xp, vista共に
UTF-8で使えているよ。
何が違うのでしょうね。
0727sage
2009/10/25(日) 13:31:350728デフォルトの名無しさん
2009/10/25(日) 20:28:590729デフォルトの名無しさん
2009/10/25(日) 22:45:38どちらが初心者におすすめですか?
0730デフォルトの名無しさん
2009/10/25(日) 23:12:490731デフォルトの名無しさん
2009/10/25(日) 23:57:060732デフォルトの名無しさん
2009/10/26(月) 00:35:320733デフォルトの名無しさん
2009/10/26(月) 08:28:260734デフォルトの名無しさん
2009/10/26(月) 15:37:10ANSI Common Lisp の方がいいんじゃね。
古本屋にウインストンの本があったら、それもいいかもね。
0735729
2009/10/26(月) 16:28:55両方買いますが、まずは「ANSI Common Lisp」の方で
勉強することにしました。
0736デフォルトの名無しさん
2009/10/26(月) 19:09:06Lisper には当たり前の話なんだろうけど、テスト用の
データも S 式で用意するのね。これは簡単で良いね。
0737デフォルトの名無しさん
2009/10/27(火) 01:26:17他の図書館から借りてくれたものを貸してくれるよ。
みれば分かると思うけど、car/cdrを使わずにfirst/restでやってるから
当時のご時世がよくわかると思うよ。グレアムのANSI Common Lispのほうが
いいんじゃないの?
0738デフォルトの名無しさん
2009/10/28(水) 22:15:02数学っぽいものがあるんで、また違う角度からLispが楽しめるんじゃない?
0739デフォルトの名無しさん
2009/11/05(木) 22:51:180740デフォルトの名無しさん
2009/11/16(月) 11:58:43(flatten '`(,X Y))
を計算させると、
`(,X ,@QUOTE)
となるのですが、どうしてこうなるのか、どう考えればいいかよくわからないので
どなたか教えてください。
なお、flattenは
(defun flatten(x)
(labels((rec(x acc)
(cond((null x)acc)
((atom x)(cons x acc))
(t(rec(car x)(rec(cdr x)acc))))))
(rec x nil)))
です。
0741デフォルトの名無しさん
2009/11/16(月) 13:09:17改良されたmetabangの人の関数がお勧め
0742デフォルトの名無しさん
2009/11/16(月) 17:11:31以下に各種アプリを入れる方法ないのでしょうか
0743デフォルトの名無しさん
2009/11/16(月) 22:18:220744デフォルトの名無しさん
2009/11/17(火) 08:50:05えーとまず、back quote 式は read 時に、指定された通りのリストを構築する式に展開される。
`(,x y)であれば、たとえば scheme 風に(qq (unquote x) y)といった感じになるかもしれない。
ただし、この展開された式がどのようなものになるかは処理系に依存する。
で、これに'をつけると、その展開された式を quote したことになる。
'`(,x y) なら(quote (qq (unquote x) y)) とかになる。
それが flatten に渡されるわけだから、上記のように展開されていた場合には結果は (qq unquote x y) となる。
と、ここで話が終われば簡単なんだけれど、
repl に表示する式が(この場合での qq のように)back quote 式の展開形であると判断する手掛かりがある場合、
処理系によっては back quote 式に戻して表示しようとする。
しかし flatten の戻り値の場合には当然 back quote 式の展開形としては不適切なものになっているはずなので、
なにやらぶっこわれた back quote 式が表示されることになる。
どうぶっこわれるかは処理系依存。
0745デフォルトの名無しさん
2009/11/17(火) 11:52:05実はダグホイトのLOL(Let Over Lambda)という本を読んでるんですが、
そこで、flatten関数にback quoteされた式を入れていて、一体どうなってるのか
だんだん分からなくなってしまったところです。
flattenは特別に難しい関数というわけではないので、back quoteの問題なのだと思います。
>>744
詳しい解説ありがとうございます。
私が使ってるlispはsbclなんですが、traceしてみると、途中、よくわからないですが(X '(Y))とかいうのをflattenしているらしく、これだったら(X QUOTE Y)となり、
最後によくわからないSB-IMPL::BACKQ-CONSというアトムをコンスしているようです、、。
試しに
(cons 'SB-IMPL::BACKQ-CONS '(X QUOTE Y))
を計算させると、
`(,X ,@QUOTE)
となります。
LOLの本でdefmacro/g!というマクロはflattenを使っていて、
このマクロにback quoteした式を入れているのですが、
なにかよくわからなくなってしまった、、、。
0746デフォルトの名無しさん
2009/11/17(火) 16:06:57でもチュートリアルのそのままの説明で作ると一部ちゃんと動かないのがありますね
demoみるとちょっと泥臭いこともしているので、
本当に綺麗には書けないってことでいいんでしょうか
0747デフォルトの名無しさん
2009/11/17(火) 18:03:16Emacsなどのテキストエディタを使わずに、、saveinitmem、clisp -M を
使いながら、対話形式での開発の使い勝手を試している所です。
関数をコンパイルした後でも、定義内容を確認する方法はあるのでしょうか?
[1]> (defun double(x)(* x 2))
DOUBLE
[2]> #'double
#<FUNCTION DOUBLE (X) (DECLARE (SYSTEM::IN-DEFUN DOUBLE)) (BLOCK DOUBLE (* X 2))>
Break 1 [3]> (compile 'double )
DOUBLE ;
NIL ;
NIL
Break 1 [4]> #'double
#<COMPILED-FUNCTION DOUBLE> <-- 定義内容が判らない
0748デフォルトの名無しさん
2009/11/17(火) 22:56:21function-lambda-expression
[1]> (defun double (x) (* x 2))
DOUBLE
[2]> #'double
#<FUNCTION DOUBLE (X) (DECLARE (SYSTEM::IN-DEFUN DOUBLE))
(BLOCK DOUBLE (* X 2))>
[3]> (compile 'double)
DOUBLE ;
NIL ;
NIL
[4]> #'double
#<COMPILED-FUNCTION DOUBLE>
[5]> (function-lambda-expression #'double)
(LAMBDA (X) (* X 2)) ;
T ;
DOUBLE
0749デフォルトの名無しさん
2009/11/17(火) 23:38:28有り難うございます。
まだまだ判らない事が多いので、On Lispを読了したら、一度体系的なLisp可燃本も読んでみます。
0750デフォルトの名無しさん
2009/11/21(土) 08:52:27あれ?アパッチアップデートしたら普通に動いた
0751デフォルトの名無しさん
2009/11/24(火) 09:50:31#+gcl
などの処理系ごとに違う処理をさせたい場合の書き方の解説どこかにないでしょうか
0752デフォルトの名無しさん
2009/11/24(火) 12:40:11例えば式EをSBCLのみで使いたかったら
#+sbcl
E
と書けばいいし、SBCLでは使いたくなかったら
#-sbcl
E
と書けばいいだけでは。あとは
#+(or sbcl ccl)
とか
#+(and sbcl sb-thread)
なんてことも書ける。
ある処理系が#+の後に書いて受け付けるキーワードは、
変数 *features* をみればわかる。
そのくらいしか解説することないんだけど。
0753デフォルトの名無しさん
2009/11/24(火) 12:57:35つまり、
#+foo
次の1つのリストだけが意味があるということなんですね
0754デフォルトの名無しさん
2009/11/24(火) 17:23:57(defun set-equal (lx ly &rest lzs)
"Test equality of list as set."
;; !!TODO!! need keywords :test :test-not and :key
(let((r(and(subsetp lx ly)(subsetp ly lx))))
(cond((null lzs)r)
(r(set-equal lx (car lzs) (cdr lzs)))
(t nil) )))
この関数に:test :test-not :keyといったsubsetpに渡すキーワードを引数として渡せるようにしてやりたいと思っています。
単純に引数に書いてやればよいのですが、その場合にはsubsetpのキーワードのデフォルト値を調べ、
さらにtest test-notが排他になるようなコードを書いてやらなければならず、面倒くさいです。
簡単に書く方法は無いのでしょうか。
0755デフォルトの名無しさん
2009/11/24(火) 18:17:09&rest でキーワードを受け取って subsetp に apply すればいいんじゃね
そうすると &rest で lzs を取ることができなくなるけど、
union とかと同じインタフェースになるだけだから悪くはないと思う
(defun set-equal (xs ys &rest keys)
(and (apply #'subsetp xs ys keys)
(apply #'subsetp ys xs keys)))
0756デフォルトの名無しさん
2009/11/25(水) 00:54:50HyperSpec最高。
ttp://www.lispworks.com/documentation/HyperSpec/Body/02_dh.htm
0757デフォルトの名無しさん
2009/11/27(金) 19:18:43>lispを使用してC#やJAVAの代替にするための方法(おまけ)
ってどこに解説があるんですか?
0758デフォルトの名無しさん
2009/11/27(金) 21:12:21abcl使いがいれば そんなのがもっと増えるだろうが、国内にabcl使いはおらん。
0759デフォルトの名無しさん
2009/11/28(土) 03:25:11;; (consp nil) => nil だから
(destructuring-bind (x . y) (foo)
(cons x y))
ごめん、それだけ
0760デフォルトの名無しさん
2009/12/07(月) 13:43:22さきに計算されなければならないのではないのでしょうか?
例えば、
``(,z)
はzに値がセットされていなければunboundエラーになるはずではありませんか?
しかし、sbclでは
`(,z)
となるのです、、。
0761デフォルトの名無しさん
2009/12/07(月) 17:06:54quasiquote/unquoteのネストは内側から`と,の組み合わせを作っていき、できた組み合わせを
外側から展開していくことになるのだ。On Lispの16章にあるマクロを定義するマクロの例を
見るとよいだろう。
0763デフォルトの名無しさん
2009/12/09(水) 07:43:59ググり方でも教えてください。英語資料でもいいです。よろしくお願いします。
0764デフォルトの名無しさん
2009/12/09(水) 08:22:00使ったことないけどshelispというものもあるらしい。
sbclならsb-ext:run-program、cmuclならextensions:run-program で
外部コマンドが実行できる。こんな感じかな。
(with-output-to-string (so)
(sb-ext:run-program "/bin/bash" (list "-c" "which cal") :input nil :output so)
so)
英語で素直に common lisp external command などとググれば
色々出てくるぞ。
0765デフォルトの名無しさん
2009/12/09(水) 11:44:38サンクス、ちょっとやってみます。
djbのpublicfile、動かなねえ。
0766デフォルトの名無しさん
2009/12/10(木) 00:29:27http://common-lisp.net/project/trivial-shell/
0767デフォルトの名無しさん
2009/12/11(金) 23:22:10SBCLのバージョンが関係あるのか?
ってCuspって2007年で開発がとまってんだね
0768デフォルトの名無しさん
2009/12/12(土) 00:58:07Clozure CLは日本語もきちんと使えるようになってる。
対応エンコードは、CP932、EUC-JP、Unicode系全般。ISO-2022-JP未対応。
内部コードはUTF-32。単純さと速度の関係で決めたそうな。
それと、対応OSも、Windows、Solaris/x86が増えた。
全部の環境で64-bit対応済。Windowsでもスレッドが使える。
WindowsやMac OSユーザは、使ってみるのもいいかも。
0769デフォルトの名無しさん
2009/12/12(土) 01:02:440770デフォルトの名無しさん
2009/12/12(土) 01:09:280771デフォルトの名無しさん
2009/12/12(土) 05:51:17coreイメージがでかいんだよね
cclってプロセス起動でどれくらいだかしらないけどそんなに軽い?
;;;clispは軽いんだけど処理が重いorz
0772デフォルトの名無しさん
2009/12/12(土) 10:45:42カーネルが1.64MBだから、そこまで小さいわけじゃないと思う。
ECLがUnicodeをもっとちゃんとサポートしてくれれば、
SBCLとかとCLISPの中間くらいで、良い感じになると思うんだけどなー。
内部でUTF-32使ってるっぽいのに、I/Oではバイト単位でぶった切るとか、
エンディアンとかどうするんだ。external formatもサポートしてないし。
みたいなことを、ECLのマニュアル読んでて思った。
0773デフォルトの名無しさん
2009/12/12(土) 18:49:40port.lispで定義されているreturn-output-from-programに問題がある。
* formatの括弧が閉じてない
* 環境によるのかもしれないが、:waitがnilだと上手く機能しない
formatの括弧の閉じ忘れは、開発者が「直すぜ」と言いつつ放置中。
これで、tarの所で止まってたのが、動くようになるはず。
ちなみに、パスに空白が入ってると正常に動作しないのはお約束。
使いたいなら、cygpathとtarにパスを渡すところで「'」とかで囲んでやる。
0774デフォルトの名無しさん
2009/12/15(火) 18:37:36エディタをUTF-8にして (setq a '日本語) にすると文字化けします。
? (setq a '日本語)
|ニ律ニ悽ネェ桍
0775デフォルトの名無しさん
2009/12/15(火) 19:57:43サンクス。windowsでsbclだと上手くいくのにclispだと上手くいかなくて
困ってたんだ。試してみる。
0776デフォルトの名無しさん
2009/12/15(火) 23:38:45扱えるよー。というか、扱ってるよー。
ただ、-Kオプションを指定しないと、標準のISO-8859-1で出力されるよ。
ttp://ccl.clozure.com/manual/chapter2.5.html#Command-Line-Options
ttp://ccl.clozure.com/manual/chapter4.3.html#Unicode
を参照のこと。EmacsでSLIME使うと設定が減って楽だよ。
良く分からないなら、
(setf ccl:*default-external-format* :utf-8)
(setf ccl:*default-file-character-encoding* :utf-8)
(setf ccl:*default-socket-character-encoding* :utf-8)
を、ccl-init.lispに書くて、いつも-K utf-8すると、デフォルトがUTF-8になるよ。
他のエンコードのファイル使いたいときは、:external-format使ってね。
ttp://www.lispworks.com/documentation/HyperSpec/Body/f_open.htm#open
0777デフォルトの名無しさん
2009/12/15(火) 23:44:51何かの役に立てば幸い。
ついでに言うと、Drakmaを使いたい場合、
TCP_NODELAYを切り替える機能がCLISPにないので、
usocketがエラーを出す。CMUCLもお仲間のようで、
ttp://article.gmane.org/gmane.lisp.cmucl.general/6382
という報告があるので、:nodelay tのところを削るか、#-:clispすると吉。
0778デフォルトの名無しさん
2009/12/16(水) 01:10:401.4の現時点で付属のASDF-Installにはバグがあって、そのままだと上手く動かない。
ccl\tools\asdf-install\*.wx32fslを削除してから、
(push :win32 *features*)
(asdf:operate 'asdf:compile-op :asdf-install)
をして、ASDF-Installを再コンパイルしてから、.asdf-installに
#+(and :ccl :windows)
(in-package :asdf-install)
#+(and :ccl :windows)
(progn
;; 自分の環境に合わせて設定する
(setf *cygwin-bash-program* "c:/Cygwin/bin/bash.exe")
(export '*cygwin-bash-program*)
(in-package :asdf-install-customize))
とすれば、正常に動作するようになる。
0779デフォルトの名無しさん
2009/12/16(水) 18:40:00-K オプションを追加したらutf-8で漢字も処理できました。
ありがとう。
0780デフォルトの名無しさん
2009/12/19(土) 03:24:27珠玉のプログラミングを読んでいて、いろいろと考えさせられることが多かったです。
日本語を扱う際、UTF8はEUCの1.5倍のデータ量を使うようですが、大量の文字データ処理を扱うことも視野に入れているのであれば、
文字コードはEUCとUTF8をどちらを使ったほうがいいのでしょうか?
0781デフォルトの名無しさん
2009/12/19(土) 08:12:08あと内部と外部で同じものを使うのか?
0782デフォルトの名無しさん
2009/12/19(土) 08:46:38他もそれにあわせるといいことあるのかな
0783デフォルトの名無しさん
2009/12/19(土) 09:18:32プラグインとかぐらいと思うが。
0784デフォルトの名無しさん
2009/12/19(土) 10:04:040785デフォルトの名無しさん
2009/12/19(土) 10:14:14処理系の内部コードのこと言ってるの?
それ以外にもプログラム上の内部コードってあるよね?
HTTPサーバ/クライアントみたいに、
受けてからデータの文字コードが分かるケースあるから、
byte arrayで受けて〜ってことは日常茶飯事かと。
0786デフォルトの名無しさん
2009/12/19(土) 13:48:490787デフォルトの名無しさん
2009/12/19(土) 23:05:000788デフォルトの名無しさん
2009/12/19(土) 23:17:50いろいろ問題はあってもみんなでUTF-8使ってれば解決策は出てくるよ。
場当たり的に符号を変えるよりはUTF-8で統一するのが一番マシ。
0789デフォルトの名無しさん
2009/12/19(土) 23:20:290790デフォルトの名無しさん
2009/12/19(土) 23:22:370791デフォルトの名無しさん
2009/12/20(日) 00:29:19何文字目ってのがUTF8だとアタマから数えないといけないのでそういう状況が多いときは困る
なので内部UCS4とかがわりと好きかな。
0792デフォルトの名無しさん
2009/12/20(日) 01:27:20俺もそっちの方が好き。
0793デフォルトの名無しさん
2009/12/20(日) 02:31:180794デフォルトの名無しさん
2009/12/20(日) 02:42:080795デフォルトの名無しさん
2009/12/20(日) 15:14:57ぽーたぶるヘムロックちゃん、TTY で動く様になったのね。
知らんかった…
しかも Qt バックエンドもいつの間にか出来てる……
http://gitorious.org/qthemlock
0796デフォルトの名無しさん
2009/12/21(月) 23:02:27(handler-case
...
(:no-error(condition) ....))
といった場合に変数が使われていないというエラーを抑制したいのですが
どうしたらよいのでしょうか
0797デフォルトの名無しさん
2009/12/22(火) 00:51:34(handler-case
...
(:no-error(condition)(declare (ignore condition)) ....))
0798796
2009/12/22(火) 01:20:38ありがとうございます
うまく行きました
0799デフォルトの名無しさん
2009/12/22(火) 17:04:42アスキーアートの頻出するスレで止まりまくりだった
今はだいぶましになったのだろうか
0800デフォルトの名無しさん
2009/12/22(火) 17:10:09全角スペース+半角スペース
あるいはその逆が含まれているレスはAAと見てスルー
それが楽になれる
0801デフォルトの名無しさん
2009/12/24(木) 11:56:39(setq x 10)
(setq y "x")とやって、
(うんにゃら y)
とかすると10って出てほしいのですが。
0802デフォルトの名無しさん
2009/12/24(木) 12:24:37関数ならsymbol-valueをsymbol-functionにすればいい。
使い方によるけど、文字列から変数の中身を直接触れちゃうと安全じゃない気がするから、
直接symbol-valueを見ないでhash-tableなりalistなりを使った方がいい気がする。
0803801
2009/12/24(木) 12:31:340804デフォルトの名無しさん
2009/12/29(火) 17:29:330805デフォルトの名無しさん
2009/12/30(水) 17:14:470806デフォルトの名無しさん
2010/01/01(金) 17:31:29リストではなく多値を利用した方がいいのはどんな時ですか?
0807デフォルトの名無しさん
2010/01/01(金) 19:41:46http://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3A%E5%A4%9A%E5%80%A4
0808デフォルトの名無しさん
2010/01/03(日) 01:09:350809デフォルトの名無しさん
2010/01/03(日) 20:47:59たとえば変数tablenameに"menberlist"というテーブル名が保存されていても、
(select * from tablename)とするとtablenameというテーブルからselectすると解釈されますよね?
queryはインジェクションが怖いので使わない方向で…
0810質問
2010/01/04(月) 15:36:21をこれ以上簡単にする方法は無いでしょうか?
0811デフォルトの名無しさん
2010/01/04(月) 18:58:30(defun pa$ (f &rest c)
#'(lambda (&rest x) (apply f (append c x))))
とか作って
(funcall (pa$ #'> 5) 10)
ってやるとか?
0813デフォルトの名無しさん
2010/01/04(月) 19:47:210814質問
2010/01/04(月) 21:15:080815デフォルトの名無しさん
2010/01/04(月) 22:20:410816デフォルトの名無しさん
2010/01/06(水) 15:25:23したいのですが方法はあるのでしょうか?
0817デフォルトの名無しさん
2010/01/07(木) 05:00:460818質問
2010/01/07(木) 10:22:500819デフォルトの名無しさん
2010/01/07(木) 13:30:26/usr/share/common-lisp
にインストールされるけど
asdf
clbuid
それぞれ違う方法でインストールするファイルを
別な場所に置くならどこが推奨ですか?
0820デフォルトの名無しさん
2010/01/07(木) 13:32:13sb-ext:run-programでsbclを起動して子プロセスにlispコードを流して制御したいと考え、
まず、
(setf sbcl1 (run-program "sbcl" '() :input t :output t))
(setf sbcl1 (run-program "sbcl" '() :input :stream :output t))
(setf sbcl1 (run-program "sbcl" '("--help") :output *standard-output*))
echo '(loop(print "hello")(sleep 1)' > /tmp/hello.lisp
(setf sbcl1 (run-program "sbcl" '("--script" "/tmp/hello.lisp") :output *standard-output*))
等としてみたのですが、すぐに#<SB-IMPL::PROCESS :EXITED 1>が帰ってきてしまい、
helpメッセージやhello.lispの出力も得られません。
どうしたらsbclからsbclをインタラクティブに操作することが出来るでしょうか。
0821820
2010/01/07(木) 18:30:35少し調べたところ、どうやらプログラムをフルパスで指定しなければならないとわかり、
(setf sbcl1 (run-program "/usr/local/bin/sbcl" '("--help") :output t))
などとするとうまく行きました。ただ、Slime上で実行したのではcoreが見つからないらしく、
(setf sbcl1 (run-program "/usr/local/bin/sbcl" '("--core" "/usr/local/lib/sbcl/sbcl.core" "--script" "/tmp/hello.lisp") :output t))
としなければなりませんでした。M-x run-lispではcoreの指定をせずともよいので、Slimeがなにかしているんでしょうか。
また、このループするプロセスを終了させようと
(process-kill sbcl1 15)
としてみたのですが、Tは帰ってくるものの"hello"は出力され続け、他のターミナルからpsでプロセスを見ても子プロセスは生きたままになっているようです。
どうしたらプロセスを殺せるのでしょうか。また、子プロセスのI/Oを操作したいと思い、
(setf sbcl (run-program "/usr/local/bin/sbcl" nil :input :stream :output :stream))
としてみたのですが、Slimeでもrun-lispでもターミナルでもプロンプトが戻ってきません。
なにが問題なんでしょうか。
0822デフォルトの名無しさん
2010/01/07(木) 22:25:42具体的にはどうやればいいのでしょうか。
ちなみにWin 、メモ帳、clisp、コマンドプロンプトでやってます。
0823デフォルトの名無しさん
2010/01/09(土) 06:20:39ttp://lispuser.net/commonlisp/clisp_module_howto.html
これ参考にならんかな?
でもwindowsだとconsoleアプリじゃないとgetchできないかも
0824820
2010/01/11(月) 20:28:53どうやらプロンプトが戻ってこないのは、run-programの時に:waitがデフォルトでtになっているのが原因のようで、
(setf sbcl
(run-program "sbcl"
'("--core" "/usr/local/lib/sbcl/sbcl.core"
"--noinform" )
:search t :wait nil
:input :stream :output :stream ))
としたら上手くいきました。
ただこのままだと(read-char-no-hang (process-output sbcl))などとしたときにプロンプトも戻ってきてしまいます。
sbclの--noprintオプションを使うと出力を制御できるのですが、今度は何も出力されなくなってしまいます。
プロンプトの文字を変えるにはどうしたら良いんでしょうか。
0825デフォルトの名無しさん
2010/01/11(月) 21:16:50何がありがとうございますなのか知らないが、
質問の仕方がどれも信じられないくらい下手だな。
メモ帳代わりに使ってるなら知らんけど。
他の人は君が知ってる前提を一切知らないんだから、
そこをはしょったら、当然だけど、話通じんぞ。
自分の文章、回答者の立場でもう一度読んでみなよ。
0826デフォルトの名無しさん
2010/01/17(日) 18:50:31sdlの初期化の段階で
「Lisp connection closed unexpectedly: connection broken by remote peer」
とメッセージが返されてslimeとの接続が切れてしまいます。
Lispbuilder-sdlは、slime上では動かせないのでしょうか?
環境は、 OSX 10.6 + CarbonEmacs(2009-07-26) + slime (svn20100117)
+ sbcl(1.0.32) です。
Lispbuilder-sdlライブラリは、clbuildで今日インストールしたものです。
行おうとした操作は下記です。
--------------------------------------------
(asdf:operate 'asdf:load-op :cocoahelper) <--ここで「Lisp connection...」
が出てslimeとの接続が切れる
;; そのため↓を実行できない
(asdf:operate 'asdf:load-op :lispbuilder-sdl-examples)
(sdl-examples:BEZIER)
--------------------------------------------
上記の操作は、ターミナル上で ./clbuild lispして
実行すればきちんと動作します。
0827デフォルトの名無しさん
2010/01/17(日) 20:16:13*inferior-lisp*バッファには何か表示されてない?
あるいは、Common Lisp側のバックエンドを手動で起動して、
Emacsからはそれに接続するようにしてみたら、
エラーメッセージとか拾えるんじゃないかと思うんだけど、どうだろう?
ttp://common-lisp.net/project/slime/doc/html/Connecting-to-a-remote-lisp.html#Connecting-to-a-remote-lisp
この辺参考に。
0828デフォルトの名無しさん
2010/01/17(日) 20:22:01SLIMEの通信ログが出力されてるから。
0829デフォルトの名無しさん
2010/01/17(日) 21:32:46> *inferior-lisp*バッファには何か表示されてない?
「Process inferior-lisp trace/BPT trap」
と表示されていました。
> あるいは、Common Lisp側のバックエンドを手動で起動して、
> Emacsからはそれに接続するようにしてみたら、
> エラーメッセージとか拾えるんじゃないかと思うんだけど、どうだろう?
下記のようにして
$ ./clbuild lisp
* (load "/path/to/swank-loader.lisp")
* (funcall (read-from-string "swank-loader:init"))
* (funcall (read-from-string "swank:start-server") "/var/folders/B8/B8zxQQFbGsWSqD-hxDT5pk+++TI/-Tmp-/slime.17139" :coding-system "utf-8-unix")
バックエンド起動してから、
Emacsから、slime-connectで接続して
* (asdf:operate 'asdf:load-op :cocoahelper)
を実行したところ、バックエンド側に
* ./clbuild: line 415: 17419 Trace/BPT trap ${lisp} $common_options $eval "$require_asdf" $eval "$set_central_registry" $eval "$EXTRA_CLIM_FEATURES" "$@"
と表示がされていました。
これどんなエラーなのでしょうか?
0830デフォルトの名無しさん
2010/01/17(日) 22:13:18SLIMEでのasdf:*central-registry*の値と、
clbuildでインストールされているライブラリの場所は?
どんなエラーなのかは、Mac OS X持ってないから分からない。
でも、全く同じ症状訴えてる人いるみたいだね。
0831デフォルトの名無しさん
2010/01/17(日) 22:33:53ttp://code.google.com/p/lispbuilder/issues/detail?id=12&can=1
0832デフォルトの名無しさん
2010/01/17(日) 22:38:07> SLIMEでのasdf:*central-registry*の値と、
CL-USER> asdf:*central-registry*
((MERGE-PATHNAMES "links/docs/0114/clbuild/systems/" (USER-HOMEDIR-PATHNAME))
(MERGE-PATHNAMES ".sbcl/systems/" (USER-HOMEDIR-PATHNAME))
(LET ((ASDF::HOME (POSIX-GETENV "SBCL_HOME")))
(WHEN (AND ASDF::HOME (NOT (STRING= ASDF::HOME "")))
(MERGE-PATHNAMES "site-systems/" (TRUENAME ASDF::HOME))))
*DEFAULT-PATHNAME-DEFAULTS*)
> clbuildでインストールされているライブラリの場所は?
~/links/docs/0114/clbuild/systems
にasdファイルを置いています。
0833デフォルトの名無しさん
2010/01/17(日) 22:42:35ありがとう、でも
問題切り分けのため、lispbuilder-sdlのみ
インストールしている状態なので、
lispbuilder-sdl-gfx関連は関係ないです。
0834デフォルトの名無しさん
2010/01/17(日) 22:54:12Terminalからだと成功するんだよね?
それぞれの環境変数LD_LIBRARY_PATHの値は?
0835デフォルトの名無しさん
2010/01/18(月) 00:20:00> >>832
> Terminalからだと成功するんだよね?
はいそうです。
> それぞれの環境変数LD_LIBRARY_PATHの値は?
emacs上でもtermain上でも
LD_LIBRARY_PATHは定義されていません。
原因がある程度絞れました。
sdlにCFFIを使ってアクセスしているようなのですが、
emacsで
(cffi:load-foreign-library "/Library/Frameworks/SDL.framework/SDL")
を実行すると、*Messages*に「Process inferior-lisp trace/BPT trap」が
表示され接続が切断されることが分かりました。
terminal上では、きちんと
(cffi:load-foreign-library "/Library/Frameworks/SDL.framework/SDL")
#<CFFI:FOREIGN-LIBRARY {1003717241}>
となります。
おそらく、
(asdf:operate 'asdf:load-op :cocoahelper)
を実行中にcffi関連が呼ばれて、切断がされてしまうみたいです。
0836デフォルトの名無しさん
2010/01/18(月) 00:37:53cocoahelperを読み込む時に、依存関係でcffiを
読み込むのですが、その際に
(cffi:use-foreign-library sdl)
が呼ばれて、slimeと切断されてしまうようです。
lispbuilder-sdl/cffi/library.lisp
-----------------------------------
(cffi:define-foreign-library sdl
(:darwin (:or (:framework "SDL")
(:default "libSDL")))
(:windows "SDL.dll")
(:unix (:or "libSDL-1.2.so.0.7.2"
"libSDL-1.2.so.0"
"libSDL-1.2.so"
"libSDL.so"
"libSDL")))
(defun load-sdl-library ()
(cffi:use-foreign-library sdl) <--ここで死ぬ
(when (handler-case (cffi:use-foreign-library sdl-glue)
(load-foreign-library-error () nil))
(progn
(setf *glue-loaded-p* t)
(pushnew :lispbuilder-sdl-audio *features*))))
(eval-when (:load-toplevel :execute)
(load-sdl-library))
-----------------------------------
0837デフォルトの名無しさん
2010/01/18(月) 02:29:300838デフォルトの名無しさん
2010/01/19(火) 13:15:270839デフォルトの名無しさん
2010/02/02(火) 00:27:18活用術みたいなのってない?
0840デフォルトの名無しさん
2010/02/02(火) 09:39:120841839
2010/02/02(火) 11:17:040842デフォルトの名無しさん
2010/02/02(火) 18:11:300843デフォルトの名無しさん
2010/02/03(水) 01:26:43ttp://programming.nu/index
0844デフォルトの名無しさん
2010/02/03(水) 18:01:14があるなら
#+amd64
#+i386
なんてもあるのかな
動いてるシステムが64bitか判定したいんだけど
0845デフォルトの名無しさん
2010/02/03(水) 18:24:38+64bit
だった
0846デフォルトの名無しさん
2010/02/03(水) 18:34:02*features*にそのキーワードが含まれているかどうかで判別するから、
見てみるといいよ。値は一部除いて実装依存だけど。
CCLなら、:x8632-targetとか:32-bit-hostとかそういうのが含まれてる。
ttp://www.lispworks.com/documentation/HyperSpec/Body/v_featur.htm
0847デフォルトの名無しさん
2010/02/03(水) 18:53:25(require :cffi)
としたらエラーでまくる
clispはエラーなく動く
0848デフォルトの名無しさん
2010/02/03(水) 19:08:20その出てるエラー書かんと。
SBCLは一番メジャーな処理系なんだから、
それでエラーが出るのは考えにくい。
あるいは、そういう状況なら各所で報告が絶対ある。
0849デフォルトの名無しさん
2010/02/03(水) 19:44:30パッケージよみこむときに
ロック解除しますか
にYesじゃなくて
Accept
押してただけでした
すみません
0850デフォルトの名無しさん
2010/02/12(金) 14:01:31なにか良いマニュアルとかありませんか?
0851デフォルトの名無しさん
2010/02/12(金) 15:31:04CLtL2
0852デフォルトの名無しさん
2010/02/13(土) 00:15:03CLHS
0853デフォルトの名無しさん
2010/02/14(日) 03:49:04また、Lisp用に別のインタプリタは存在しないのでしょうか?(pythonのipythonのようなものです)
OSはubuntuを使っています。よろしくおねがいします。
0854デフォルトの名無しさん
2010/02/14(日) 04:07:17素のターミナルから入力してんの?
どうせエディタのサポート無しでまともなものは書けないから emacs か vi 入れることをオススメする。
0855デフォルトの名無しさん
2010/02/14(日) 05:12:51Ubuntuならaptでおk
SLIMEもaptでいけるからEmacsわかればそっちのほうがいい
0856デフォルトの名無しさん
2010/02/14(日) 05:28:11矢印キーを何に使うの?
履歴辿りたいだけなら、rlwrap使えばいいみたいよ。
IPythonみたいな環境が良ければ、Emacsをインストールして、
SLIMEを使えば良い。インタラクティブ開発の本家の実力を体感できる。
0857デフォルトの名無しさん
2010/02/17(水) 09:48:27の人にEmacsはやっぱりきついのかもね。PLT-Scheme (Dr. Scheme)みた
いな環境がCommon-Lispにもあるととっつきやすいのかも知れないけど。
LispWorksやAllegro CLはよくできてるけどお高いし。
MacだとMCLIDEというのがあるんだけど、まだ発展途上なので今後に期待。
http://mclide.in-progress.com/
0858デフォルトの名無しさん
2010/02/17(水) 12:01:220859デフォルトの名無しさん
2010/02/17(水) 13:31:45他に良い環境無いの?
人に勧めにくいなあ
0860デフォルトの名無しさん
2010/02/17(水) 21:28:29Allegroは買えない値段じゃないんだけど、小売りしてないんだよ
個人購入する品物じゃ無いの承知の上で言うけどものすごく不便
なんで購入の意思をメールで送るところからせにゃならんのだ!
ちなみにLispWorksはよくできてるけどIDEから日本語入れると悲惨なので却下
emacs+slimeするって前提なら別なんだろうけど、それじゃ金出す意味がない
0861デフォルトの名無しさん
2010/02/18(木) 00:37:24ccl:save-applicationを使う。
ttp://ccl.clozure.com/manual/chapter4.7.html#Saving-Applications
save-applicationはLispシステムの状態をファイルに保存する関数。
このファイルに、Lispのコア部分を含めると、実行可能なバイナリができる。
(save-application "a.exe" :prepend-kernel t)
ただ、これだとエントリポイントがREPLで、大抵は不都合なので、
(defun main () (format t "Hello, world!"))
(save-application "a.exe" :prepend-kernel t :toplevel-function #'main)
みたいに、自分でエントリポイントを作って指定する。
0862デフォルトの名無しさん
2010/02/18(木) 00:50:40Lispのコア部分のことを「カーネル」というから、覚えとくといいよ。
実行可能なバイナリを作るとき以外でも、
例えば、大量のライブラリの読み込みが必要な場合、
読み込んだ状態をイメージとして保存しておけば、
起動時間を短縮できたりして、上手く使えば重宝するよ。
0863デフォルトの名無しさん
2010/02/18(木) 01:23:50ありがとうございます
さすがLispスレの人は親切ですね
0864デフォルトの名無しさん
2010/02/18(木) 13:53:26windows上のclispにasdf、asdf-installをインストールするまではできたのですが、
ためしに(asdf-install:install 'cffi)を実行してみたところ
WARNING: Cannot find tar command "C:\\PROGRA~1\\Cygwin\\bin\\bash.exe".
というメッセージが出て続けることができませんでした。
cygwinをインストールしてgpgとtarは用意してあり、windowsの環境変数のPATHに登録済みです。
0865デフォルトの名無しさん
2010/02/18(木) 14:10:55質問は?
0866デフォルトの名無しさん
2010/02/18(木) 17:52:060867デフォルトの名無しさん
2010/02/18(木) 19:19:29bash が tar を見付けられんのだろ。
0868デフォルトの名無しさん
2010/02/18(木) 20:16:02仮想マシンのubuntuでやれよ。
cygwinは相当やる気ないとできないと思うぞ。
Ubuntuの入手 | Ubuntu Japanese Team
ttp://www.ubuntulinux.jp/download/
0869デフォルトの名無しさん
2010/02/18(木) 22:50:120870デフォルトの名無しさん
2010/02/19(金) 00:41:47ASDF-Install使う方法書いてるのはスルーか。
0871デフォルトの名無しさん
2010/02/19(金) 00:54:12ある程度以上のスペックのマシン使ってるなら、>>868の言うように、
VirtualBoxとかcoLinuxとかで仮想環境用意するのは良い案だよ。
ファイルのやり取りは共有かネットワーク使えばいいわけだし。
0872デフォルトの名無しさん
2010/02/19(金) 01:48:27違うでしょ、プログラマの問題。
0873デフォルトの名無しさん
2010/02/19(金) 06:13:36/usr/lib/foo/
/home/taro/usr/lib/bar/
0874デフォルトの名無しさん
2010/02/19(金) 09:08:17「Windowsでの問題」とあるのを「Windowsの問題」とか読まれても。
>>873
ASDFならasdf:*central-registry*。
requireの場合は、SBCLだと何かあるのかな?
公式のドキュメントにはそういった記述を見付けられなかった。
CLISPならcustom:*load-paths*、CCLならccl:*module-search-path*
とかあるみたいだけど。
0875デフォルトの名無しさん
2010/02/20(土) 00:00:40レス、ありがとうございます。
0876デフォルトの名無しさん
2010/02/26(金) 19:55:57ことある人いる?
「初めての人のためのLISP[増補改訂版]」
竹内 郁雄 (著)
http://bit.ly/at642O
0877デフォルトの名無しさん
2010/02/26(金) 20:14:13Lispエッセー集だと思っていればいい。
技術書としての価値を求めるタイプの本じゃない。
昔のLispの事情はいろいろ学べるけれども。
0878デフォルトの名無しさん
2010/02/26(金) 20:15:53TAO/ELISの記事の方が、技術色は強い。
まあCommon Lispの良書は今やたくさんあるから、
そういうのを読んでから、暇な時の読書として読む本。
0879デフォルトの名無しさん
2010/02/26(金) 20:20:23あー、そういう感じなら、とりあえずはもういらないなw
THX
0880デフォルトの名無しさん
2010/02/26(金) 21:01:02Common Lispの良書を2〜3冊教えてください。
0881デフォルトの名無しさん
2010/02/27(土) 00:08:540882デフォルトの名無しさん
2010/02/27(土) 00:18:15>4-6
0883デフォルトの名無しさん
2010/02/27(土) 04:52:03LOL,CLTL2,Practical Common Lisp
あとグレアム御大の書いたやつ
0884デフォルトの名無しさん
2010/02/27(土) 11:04:14CLtL2とかOn LispとかPCLはオンラインで読めるから良いよ。
0885デフォルトの名無しさん
2010/02/27(土) 12:43:540886デフォルトの名無しさん
2010/02/28(日) 16:49:430887デフォルトの名無しさん
2010/03/01(月) 02:40:04abcd
<!-- eewfsijflsjfs -->
eeee
<!--- eewfsijflsjfs --->
fjjfsj hoge
-------------------------
$cat hoge.html
abcd
<!-- eewfsijflsjfs -->
eeee
fjjfsj hoge
-------------------------
これってどうやればいい?
$ cat smb.conf | grep ^[^#].*$
smb.confだったら、こんな感じでコメント行をはずせるんだけど
0888デフォルトの名無しさん
2010/03/01(月) 04:38:19予防的に買っておくか・・・
0889デフォルトの名無しさん
2010/03/01(月) 04:52:58なかなか見つからない・・・
Lispって数値計算得意とかポールグレアムのCL本に書いてあったけど
カリカリチューンされた数値計算ライブラリとかあんまりなくね?
FFIでGSLとかを呼ぶにしてもFFIを通すことのコストが大きいみたいだし
ttp://risupu.blogspot.com/2009/05/cffi-vs-uffi-performance.html
0890デフォルトの名無しさん
2010/03/01(月) 15:36:27amazonでも中古安いし、出たらまた下がるだろうし、
投機的に買うほどのこともないのでは?
>>889
カリカリチューンされたのが必要な人は、
まずライブラリを選んで、次に言語を選ぶから、
Common Lispになくても別に不思議はない。
相対的に得意だったのはMacLispの頃で、
今では不得意でもない程度のこと。
0891デフォルトの名無しさん
2010/03/02(火) 22:56:42何をやりたいのか、良く分からない。
単に、行頭が「<!---」の行を省きたいってことなの?
それなら、一行ごとに正規表現でマッチを掛けて、
必要なものだけ出力すればいいと思うけども。
せめて、abcdとかeeeeとかの適当な文字列じゃなくて、
「本文」とか「ドラフトにだけ必要なコメント」みたいに、
意味の読み取れる文字列にして欲しい。
0892デフォルトの名無しさん
2010/03/02(火) 23:23:06不正なマーク宣言は除去していって事かな? <!--- 後ろのハイフン三つが問題になる --->
0893デフォルトの名無しさん
2010/03/03(水) 04:08:06cffi使わないで単純にパイプでつないだ方がいいのかなと
思う今日このごろ
0894デフォルトの名無しさん
2010/03/03(水) 17:30:00おい 宣伝やめろ
>>890
普段から投機的に買ってらっしゃるのですか?
0895デフォルトの名無しさん
2010/03/03(水) 18:08:39Allegroserveが実際に使われているWebサービスとかあったら教えてくらさい
0896デフォルトの名無しさん
2010/03/03(水) 20:01:43目次出てたけど、読み物っぽい感じなのね
http://www.saiensu.co.jp/?page=book_details&ISBN=ISBN4-7819-0454-8
自分は各種書評を見てから買うか決めるわ
0897デフォルトの名無しさん
2010/03/03(水) 20:08:36おい 宣伝やめろ
0898デフォルトの名無しさん
2010/03/03(水) 20:11:45どういうつもりでそんな事言ってるの?
0899デフォルトの名無しさん
2010/03/03(水) 21:32:35いいかげん飽きた
0900デフォルトの名無しさん
2010/03/03(水) 21:36:03ひょっとして出版社に何か問題でもあるのか? >>897
0901デフォルトの名無しさん
2010/03/03(水) 21:58:46ttp://d.hatena.ne.jp/nagayoru/20090112/1231769571
みたいな話もあるから、Hunchentootのがいいんじゃない?
0902デフォルトの名無しさん
2010/03/04(木) 00:06:110903デフォルトの名無しさん
2010/03/04(木) 00:12:24一種のアラシだから放っとくべき。
0904デフォルトの名無しさん
2010/03/04(木) 00:12:31Hunchentootは知らなかったな。ちょっとみてみます。
CL-HTTPもあるしCommon LispはWebサーバいっぱいあっていいね。
0905デフォルトの名無しさん
2010/03/04(木) 00:44:32自称最速teepeedee2もあるぜよ。
ttp://www.cliki.net/teepeedee2
あとは、継続使ってるWeblocksとか。これはHunchentootベースだけど。
ttp://common-lisp.net/project/cl-weblocks/
0906デフォルトの名無しさん
2010/03/05(金) 12:40:10<!--- eewfsijflsjfs --->もコメントです。
hoge-draft.html に何かの処理をして、<!--- eewfsijflsjfs ---> のコメント部分を除いて、hoge.htmというファイルを作りたいのです。l
0907デフォルトの名無しさん
2010/03/05(金) 13:54:13> <!--- eewfsijflsjfs --->もコメントです。
これは不正なマーク宣言です。(後ろの--->が問題になる有名な例)
>>887から帰納的にルールを推測すると、>>892になります。
0908デフォルトの名無しさん
2010/03/07(日) 12:34:56.lispファイル中で C-x C-e でS式を評価すると、REPLから C-c C-c で処理を中断できない。
この場合どうやって処理を中断すればいいのでしょうか?
0909デフォルトの名無しさん
2010/03/07(日) 12:49:180910デフォルトの名無しさん
2010/03/08(月) 03:35:27http://www.ranoba.com/
sbcl+aserve+clsql
aserveはURLでマッチングが使えないので、
すべて属性で渡す必要があるためURLがきれいにできない。
(/entry/0001 -> /entry?id=0001みたいな)
あとファイルのアップロードとかも独自実装しないといけないので面倒。
上にも張ってあったけど、日本語問題は簡単に回避できる。
Hunchentootはよく知らないけど、でかくて重くて煩雑で使いにくい印象だった。
0911デフォルトの名無しさん
2010/03/08(月) 04:01:16PAPR
だったかそんな名前の本もなかった?
前に調べたらめっちゃ値段高くて買うのあきらめたけど
0912デフォルトの名無しさん
2010/03/08(月) 06:27:490913デフォルトの名無しさん
2010/03/09(火) 00:15:57色々家の鯖で試してるけど、あっちでつまづいたり、こっちでつまづいたり
全然環境作りがなかなかすすまねーだ。
なんでCentOS5にClisp入んないの?
なんでDebianにApache2.2入れると設定ファイルとっちらかってるの?
なんでopenSUSEインストールしたらLANに繋がらなくなった?
んで考えたんだが、Common Lispで書いたプログラムを、コンパイルして
拡張子*.cgiにしてあげれば動くんでねーの?
まずがってるがぁ?
0914デフォルトの名無しさん
2010/03/09(火) 03:20:43おれもミーハーなんで実践CLでWebアプリ作るぜーってなって作ったけど超大変だった。
なんかLispじゃない部分でつまづいてそうだが、
cgiは実は裏でコマンドを毎回実行してるだけなんで
起動自体が遅いCLだと超重いのでやめたほうがいいと思う。
外部ライブラリとかユーティリティーをまったく使わないならありかも知れないが
基本使うでしょ?asdfのプリントとかが出てきてやばいよw
まぁfastCGIつかったり、eclでコンパイルしたりすれば速いかもしんないけど、
フレームワーク使ってAPサーバ立てたほうがLisp的なことが
いろいろできるので楽しいと思う。
0915デフォルトの名無しさん
2010/03/09(火) 04:52:32ECLもそうだけど、CLISPは普通に軽量級。
それと、重量級CLをCGIに使っても、コンパイルすれば、
起動時間含めてトータルでPerlとかより速かったりする。
とは言え、フットプリントが馬鹿でかいのは事実なので、
アクセスが集中するプログラムではお勧めしないけど。
ASDFについてはマニュアル参照。
(asdf:operate 'asdf:load-op 'foo :verbose nil)
それ以前に、ライブラリ読んだ後にダンプしたイメージを使う方が速いよ。
0916デフォルトの名無しさん
2010/03/09(火) 05:33:37コンパイルと実行ファイルを作るのは、本来別の処理だよ。
Common Lispのcompile-fileとかは、機械語に翻訳するだけ。
実行ファイルを作りたい場合、Common Lispの世界では、
Lispのコア部分にメモリイメージをくっ付ける方法が主流。
>>861とか>>862とかも見てね。自分の処理系のマニュアルも。
31.2. Saving an Image - Implementation Notes for GNU CLISP
ttp://clisp.cons.org/impnotes/image.html
Saving a Core Image - SBCL 1.0.29 User Manual
ttp://www.sbcl.org/manual/Saving-a-Core-Image.html#Saving-a-Core-Image
0917デフォルトの名無しさん
2010/03/09(火) 20:42:46"abc"というような形で全ての要素を連結した文字列を作りたいと思っています。
concatenateという関数が見つかったので、
&restにこのlistを渡せばいいのかと思うのですが
やり方が分かりません。どうしたら良いのでしょうか。
0918デフォルトの名無しさん
2010/03/09(火) 21:20:05(apply #'concatenate 'string '("a" "b" "c"))
0919917
2010/03/09(火) 21:40:39ありがとうございます
うまく行きました
0920デフォルトの名無しさん
2010/03/10(水) 22:04:26基本的なとこだけでも。
0921デフォルトの名無しさん
2010/03/12(金) 12:39:45(max '(1 2 3))
みたいにするか、あるいは
(max 1 2 3)
みたいに可変長引数をとるようにするかで悩むときがあるな。
後者の場合はリストに対して適用するときにいちいちapplyするのが面倒なように思える。
スタイルとしてはどちらが正しいんだろう。
0922デフォルトの名無しさん
2010/03/12(金) 21:29:39「リストを処理する」というのが目的なら本質的には前者だろ。
後者は記法上の便宜が必要なときにそうする気がする。
0923デフォルトの名無しさん
2010/03/12(金) 23:58:21前者で定義して、後者をユーティリティとして用意するに一票。
別にどっちでもいいけど。
0924デフォルトの名無しさん
2010/03/16(火) 19:45:240925デフォルトの名無しさん
2010/03/16(火) 20:13:11「うー」とうなっただけで「ごはんたべる?」と聞いてくれる
0926デフォルトの名無しさん
2010/03/16(火) 22:56:10ACLじゃね?
0927デフォルトの名無しさん
2010/03/16(火) 23:50:38なるほど、Allegro という手があったか。フリーのやつしか頭になかった。
ありがとん。
0928デフォルトの名無しさん
2010/03/17(水) 00:10:21お前以外に対応してない可能性が高い。
部分最適化の極値で、むしろクセが強いと思う。
0929デフォルトの名無しさん
2010/03/17(水) 00:17:07一瞬、ACLの話かと思ってからアンカー先に気づいてワロタ!
0930デフォルトの名無しさん
2010/03/17(水) 16:13:220931デフォルトの名無しさん
2010/03/17(水) 19:46:39ググれば30秒くらいで分かりそうなことを。
ttp://ja.wikipedia.org/wiki/Mathematica
独自言語。CLなのはMaximaね。
ttp://ja.wikipedia.org/wiki/Maxima
0932デフォルトの名無しさん
2010/03/17(水) 19:55:480933デフォルトの名無しさん
2010/03/17(水) 19:58:570934デフォルトの名無しさん
2010/03/17(水) 23:07:340935デフォルトの名無しさん
2010/03/18(木) 10:31:22Starndard Lispを移植すれば、その上で動いた。
0936デフォルトの名無しさん
2010/03/21(日) 18:23:36p.171のマクロの説明のところが悲惨なことになっているんですけど。
0937デフォルトの名無しさん
2010/03/21(日) 19:00:43待つのもよいが、教えて上げるのも吉
0938デフォルトの名無しさん
2010/03/21(日) 20:31:07でるのがおくれたのって誤植を取り除いたりする時間がかかったんじゃないんだ・・・
0939デフォルトの名無しさん
2010/03/21(日) 20:53:02だからこの手の本の初版版は避けたくなっちゃう。
文芸作品なら初版マニアがいたりするんでしょうけど。
この本に2版があるかは分からないけど。
0940デフォルトの名無しさん
2010/03/21(日) 20:59:48ノ´⌒`ヽ
γ⌒´ \
.// ""´ ⌒\ )
r‐、 i 彡 \ / .i ,-ァ
ヽ ヽ!_ 彡 (・ )` ´( ・) .Y -く
[i 6 ● (__人_) ●ト、/ 脱税〜はママの味〜♪
. ト-' 、 `ー' .ノ
> ___ <_
/ヾ ヽ ヾ ヽ\
/ | ◯ ̄ ̄ ◯ |/
0941デフォルトの名無しさん
2010/03/21(日) 23:49:16第2刷が出る保証が無いから当日に買った。どっちが良いのかなぁ。
実践Commno Lisp も第2刷が出る気配はないし(これはオーム社だけど)。
0942デフォルトの名無しさん
2010/03/22(月) 06:30:22全編オヤジギャグでお送りするとは思っていなかった
抗体のある漏れですらこれはきつい
でもいいこと書いてあるっぽくて2度悔しい
(+ 3 5) は何か、とか好きだ
0943デフォルトの名無しさん
2010/03/22(月) 20:57:49なにを今更なことを。
初版(復刊前の方ね)の時代ですらオヤジギャグだってのは知れ渡ってるじゃないか
;;;そこは目をつぶるべきなのか、著者の人柄を思ってニンマリするのかでちがうのだろうけど
0944デフォルトの名無しさん
2010/03/24(水) 06:48:27個人的には時代を感じるギャグ本としても面白い。
ただLispについて調べたい人がふと手に取ったとき、
「装填はしっかりしているのに……なぜ」と思った後、その本をどうするかは気になる。
0945デフォルトの名無しさん
2010/03/24(水) 08:08:440946デフォルトの名無しさん
2010/03/24(水) 10:29:37>装填
zap!zap!zap!
0947デフォルトの名無しさん
2010/03/24(水) 10:42:59Computer Todayの中でも浮きまくっていたけどな。 (Computer Today は bitをほんのちょっぴりアカデミックに振った感じだった。)
0948デフォルトの名無しさん
2010/03/24(水) 11:02:150949デフォルトの名無しさん
2010/03/24(水) 12:43:56Computer Todayは編集方針が全くわからない雑誌。
同じ出版社の数理科学、日本評論社の数学セミナーの方が
よほど、しっかりしている。
それより、最後の頃ではない、マトモナ時代のbit(含む 増刊)を
共立はなんとか出してほしい
0950デフォルトの名無しさん
2010/03/24(水) 13:59:30なんで共立出版ってPOD版に手を染めないのかな?
事情通の人いないかな?
0951デフォルトの名無しさん
2010/03/24(水) 15:12:220952デフォルトの名無しさん
2010/03/26(金) 23:44:55「共通のリスク」語ってことなんだろうけど
この言語にはどんなリスクが内在しているのでしょうか?
0953デフォルトの名無しさん
2010/03/27(土) 01:24:340954デフォルトの名無しさん
2010/03/28(日) 01:58:050955デフォルトの名無しさん
2010/03/28(日) 08:31:200956デフォルトの名無しさん
2010/03/28(日) 10:06:020957デフォルトの名無しさん
2010/03/28(日) 13:47:580958デフォルトの名無しさん
2010/03/28(日) 15:03:090959デフォルトの名無しさん
2010/03/28(日) 15:50:280960デフォルトの名無しさん
2010/03/28(日) 15:55:140961デフォルトの名無しさん
2010/03/28(日) 17:15:130962デフォルトの名無しさん
2010/03/28(日) 18:11:220963デフォルトの名無しさん
2010/03/28(日) 19:56:350964デフォルトの名無しさん
2010/03/28(日) 22:38:180965デフォルトの名無しさん
2010/03/28(日) 23:26:52Lisp には「舌足らず」という意味がある。
でも、 Common を「みんなが」とするのはちょっと無理あるんじゃね?
0966デフォルトの名無しさん
2010/03/29(月) 00:58:12意味分からんなw
0967デフォルトの名無しさん
2010/03/29(月) 01:29:27案外普通の2chっぽくてホっとした
0968デフォルトの名無しさん
2010/03/29(月) 03:31:260969デフォルトの名無しさん
2010/03/29(月) 03:32:370970デフォルトの名無しさん
2010/03/29(月) 08:30:020971デフォルトの名無しさん
2010/03/29(月) 09:07:580972デフォルトの名無しさん
2010/03/29(月) 09:33:30僕はあなたのレスの括弧が見えないのですが、これは僕があなたの仰る相当の熟練者だと言う事でしょうか?
0973デフォルトの名無しさん
2010/03/29(月) 09:52:08()
カッコ
()
[]
0974デフォルトの名無しさん
2010/03/29(月) 09:54:58http://www.aozora.gr.jp/cards/000119/files/621_14498.html
0975デフォルトの名無しさん
2010/03/29(月) 21:05:43ttp://www.genyris.org/wiki?page=default/introductiontocodesyntax
0976デフォルトの名無しさん
2010/03/30(火) 13:47:460977デフォルトの名無しさん
2010/03/31(水) 12:59:490978デフォルトの名無しさん
2010/03/31(水) 18:15:320979デフォルトの名無しさん
2010/04/02(金) 04:59:340980デフォルトの名無しさん
2010/04/03(土) 00:28:250981デフォルトの名無しさん
2010/04/03(土) 04:00:21レス数が950を超えています。1000を超えると書き込みができなくなります。