09/05/08 13:07:33
>>174
pdfならapressのページで登録すれば配布されているんだよ。<PCL
もっとも原著だろうが訳書だろうが、本をもってるほうがなにかと
便利なんだが。
176:デフォルトの名無しさん
09/05/08 15:58:21
>>175
本は目にやさしいしね
力尽きたときに寝転がりながらパラパラ読めるのがいい
全体把握もしやすいし、索引がしっかりしていれば検索もしやすい
pdfってうざいなあと思っちゃうんだけど、これは印刷して読んでください用ということなのかな?
emacsでpdfって読めないのかなw
そしたら便利なんだが
slime便利だね
関数補完(一覧)が出るだけでも勉強効率があがって、すごく助かる
177:デフォルトの名無しさん
09/05/08 16:51:39
買えって、てっきり翻訳版のことを言ってるのかと思った
あれよくないの?
178:デフォルトの名無しさん
09/05/08 17:25:50
PDFも上手く作ってあれば画面で読んでも快適だよ。
目次からジャンプしたり好き勝手に検索したりというのは紙じゃ無理だ。
単にスキャンしただけというのは駄目だけど。
形式は別にPDFじゃなくてもいいんだけど、数式や特殊記号や図が多く
なりがちな専門書は他にいい形式がないんだよね。
本を何冊も持ち運ぶのは大変だけど、データなら何冊あっても楽だ。
もう紙の辞書なんか誰も使ってないのはこの便利さがあるからでしょう。
ただ寝転んだままノートパソコンの画面をみるのはつらいので、
日本でもKindleが使えるようになって欲しい。とりあえず日本語出なくても
いいから。洋書の専門書は重いんだよなあ。
179:デフォルトの名無しさん
09/05/08 17:32:29
>目次からジャンプしたり好き勝手に検索したりというのは紙じゃ無理だ。
見覚えのあるテキストをもう一度読みたくてざっとめくるってのができないのが電子書籍の欠点なので僕は紙の媒体を捨てられない
180:デフォルトの名無しさん
09/05/08 19:13:52
>>178
>もう紙の辞書なんか誰も使ってないのはこの便利さがあるからでしょう。
羅和とか大漢和とか古語辞典も全部電子化されればいいのになあ
紙媒体しかない辞書が多過ぐる
181:デフォルトの名無しさん
09/05/08 20:30:36
電子版は定期的にシリアルナンバーを打ち込まないと使えないとか
他に何を仕込まるか分からないとか、そういうのをやめてくれたらなあ
182:デフォルトの名無しさん
09/05/09 12:09:45
数年ぶりに開いた本に陰毛がはさまってることだってあるじゃないか
183:デフォルトの名無しさん
09/05/09 14:23:45
apply ってどういうときに使うんですか?
例えばOn Lisp って本に↓のように書かれてたんですが
(apply #'format *query-io* args)
これって
(format *query-io* args)
ってやるのと変わらないですよね?
シンボルの値に関数が入ってるんだったら apply を使う意味はあると思うんです。
例えば関数を 仮引数 fn で受けてるんだったら
(fn args)
は動作しないから
(apply fn args)
ってやると思うんです。
でも最初の例のように 関数は format って分かってるのに apply を使う意味は何なんでしょうか?
184:デフォルトの名無しさん
09/05/09 14:47:34
formatをlistに置き換えて考えればわかる
(apply #'list 1 2 '(3 4 5)) => (1 2 3 4 5)
(list 1 2 '(3 4 5)) => (1 2 (3 4 5))
185:183
09/05/09 14:51:29
今気づいたのですが同じ本に↓のようにありました。
URLリンク(user.ecc.u-tokyo.ac.jp)
> 以下の4個の式はみな同じ働きをする:
> (+ 1 2)
> (apply #'+ '(1 2))
> (apply (symbol-function '+) '(1 2))
> (apply #'(lambda (x y) (+ x y)) '(1 2))
これだと関数が分かってるときに
何でわざわざ apply を使うのかますます分からないです。
気にするなって事なんでしょうか。
186:デフォルトの名無しさん
09/05/09 14:58:54
(apply #'+ '(1 2))と(+ 1 2)が同じってことわかってる?
(+ '(1 2))とか(funcall #'+ '(1 2))だとエラーになるよね
187:183
09/05/09 15:13:20
>>184
引数をリストで渡せて、その要素が一つ一つ関数への引数として渡せるのが便利だからって事ですよね。
確かにそれだと納得できます。ありがとうございます。
a が (1 2 3) として
(list a) のように関数を先頭にした表記で
実際には (list 1 2 3) と引数を展開して実行できるやり方はないんですか。
188:デフォルトの名無しさん
09/05/09 15:39:44
sbclrcをコンパイルする事はできないでしょうか?
sbclrcでシェバング対策やらasdfのインポートやらをしていたら
sbclを立ち上げてから*のプロンプトが出るまでに5秒ぐらいかかるように
なったのですが、皆さんもこれぐらいなのでしょうか?
よろしくおねがいします。
あと、sbclに履歴機能をつける方法とEmacsキーバインドで
操作できる方法が有ればよろしくおねがいします。
189:デフォルトの名無しさん
09/05/09 15:46:34
>>188
>あと、sbclに履歴機能をつける方法とEmacsキーバインドで
>操作できる方法が有ればよろしくおねがいします。
Slimeでも何でもいいからEmacsの中で使えばいいのでは。
190:デフォルトの名無しさん
09/05/09 15:49:21
>>188
sbclrcの内容を foo.lisp とかに移してからそれをコンパイルして
foo.fasl にし、sbclrc はそれをロードするだけにするとか。
191:159
09/05/09 15:50:21
>>188 sb-ext:save-lisp-and-die じゃあかんの?
192:デフォルトの名無しさん
09/05/09 18:59:29
>>190
そうしました、しかしsbclに標準でそういった機能がつくと
うれしいですね。(rc-compile)見たいな...
193:192
09/05/09 19:09:09
sbclのtoplevel.lispをざっと読んでみましたが
もしかしたら、sbclrc.faslというファイルが有ればそちらを
優先して読み込むと言う設定に改造してコンパイルすれば
良いかもしれませんね。ついでに(rc-compile)関数を組み込みにして
ファイル名を指定しなくても組み込みのsysinit-pathname
という関数を利用して適切なsbclrcファイルを選択してコンパイル
してくれるという関数が作れそうです。
194:デフォルトの名無しさん
09/05/09 21:58:39
(defun foo (...) ...)
の中身をみたいなのだけど
clispだと
#'foo リターン
だけで関数のソースみれる
sbclだとできない
sbclでfooのソースが帰ってくる関数ないのでしょうか
195:デフォルトの名無しさん
09/05/10 00:15:10
Common LispでOpenGLを使うライブラリみたいなのはありますか?
196:デフォルトの名無しさん
09/05/10 00:25:57
URLリンク(www.cliki.net)
197:デフォルトの名無しさん
09/05/10 00:50:16
どうもです。ありがとうございます。
198:デフォルトの名無しさん
09/05/10 12:17:48
cmucl の最新スナップショットではutf8が使えるようになったよ。
これで高速なcmuclが日本語でも使える。ただし、32bit x86 のみ
199:デフォルトの名無しさん
09/05/10 14:32:19
>>198
最新じゃ無くてもutf8は使えてたぞ
日本語はダメだったけど
200:デフォルトの名無しさん
09/05/10 14:59:37
metatilitesの中のon lispのコード入ってるんだね
こういう便利なものってみんなどうやってみつけてるの?
201:デフォルトの名無しさん
09/05/10 16:19:01
CLiCCを動かせた人いますでしょうか?
いろいろコードの手直ししないとコンパイル通りませんよね?
最後にlispのコードよむところで
ffiがどうとかいうエラーでてあきらめたのですが
202:デフォルトの名無しさん
09/05/10 21:10:48
imaximaってslimeみたいにソース編集しながら
式の評価をいろいろ試せる環境なわけじゃないんだね
203:デフォルトの名無しさん
09/05/10 23:53:07
素直に、質問しろよ。
204:デフォルトの名無しさん
09/05/11 09:26:05
>>207
inferior-maxima-modeと組み合わせてみればできるんだけど、その方法はあまりかかれてないね。
205:デフォルトの名無しさん
09/05/11 11:20:08
>>207 に期待。
206:デフォルトの名無しさん
09/05/11 21:18:44
>>207 その発想はなかったわ。
207:デフォルトの名無しさん
09/05/11 21:47:36
Maximaとslimeのreplを行き来しつつ、ついでにemacsの中で
皿洗いも済ませてしまいたいのですが、そういうことは可能でしょうか?
アイコンを見ている限りは何とか出来そうな気もするのですが。。。
ご教示いただければ幸いです。
208:デフォルトの名無しさん
09/05/11 22:41:23
>>207
インターネット経由で皿洗い機に接続するモードを用意すれば出来そうです。
URLリンク(ascii24.com)
209:デフォルトの名無しさん
09/05/12 11:24:27
トースターでnetbsdが動くから、トースターで皿洗いができるということか
210:デフォルトの名無しさん
09/05/13 12:31:58
meta-bangの人のコード見てたら
#+test
でテストコード挿入する方法があるんだね
便利そうだけど使い方わかんない
211:デフォルトの名無しさん
09/05/13 13:18:08
>>210
この辺から見てみるといいよ。
URLリンク(www.lispworks.com)
212:デフォルトの名無しさん
09/05/13 20:46:53
clozure cl のWindows版のインストールの仕方を教えてください。
ダウンロードして解凍、CCLのフォルダができたのですが、
その後、どうしたらいいのでしょう?
213:デフォルトの名無しさん
09/05/13 23:04:50
>>212
それでインストールできてるんじゃね?
何がわからんのかわからん
214:デフォルトの名無しさん
09/05/14 06:12:02
ClozureCL関連の質問が出たのでついでに質問させてください。
Mac 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のバグだと思うのですが、どうなのでしょうか?
解決法などありましたらご教授ください。
215:デフォルトの名無しさん
09/05/14 18:53:33
split関数がなかったのでネットからダウンロードしたのですが、
こういう関数がパッケージになっているのは何故ですか?
パッケージにせずに単にloadする場合との違いは何でしょうか
216:デフォルトの名無しさん
09/05/14 23:11:26
>>215
URLリンク(www.komaba.utmc.or.jp)
217:デフォルトの名無しさん
09/05/15 01:09:13
clozure clっての入れてみたんだがSBCLより速いんだな
フィボナッチの計算で比べてみたら3倍ぐらい速かったわ
218:デフォルトの名無しさん
09/05/15 01:12:25
>>217
速い部分もあれば、遅い部分もあるよ。
ベンチマークが公開されてるから、見ると結構面白いと思う。
Allegroとかとの比較もあるよ。
219:デフォルトの名無しさん
09/05/15 01:33:51
>>217
ピープホール持ってない sbcl/cmucl に言ってはならないことを…
220:デフォルトの名無しさん
09/05/15 03:39:02
>>216
ありがとうございます。
名前が重複しないように、ということですね。
221:デフォルトの名無しさん
09/05/15 15:46:48
(setq l (list 0))
(pushnew 0 l) -> l= (0)
(push 0 l) -> l=(0 0)
こんなことおきるんだね
ゼロって怖い
222:デフォルトの名無しさん
09/05/15 16:19:42
>>221
よく考えたらあたりまえだった
223:212
09/05/15 21:35:51
wx86clを呼び出すと
> 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.
224:デフォルトの名無しさん
09/05/15 23:16:57
Common LispでCや他の言語のようなキャリッジリターンを使用する方法は
どんな方法が有るのでしょうか?
formatについて調べてみたのですがそういう物は無いようですし。
よろしくおねがいします。
225:デフォルトの名無しさん
09/05/15 23:52:16
改行コードのことか?
(format t "hello~%yahoo")
226:デフォルトの名無しさん
09/05/16 00:05:07
>>225
そちらではなくて復帰のほうです。
引き続きよろしくおねがいします。
227:デフォルトの名無しさん
09/05/16 00:28:26
Cでやるようにキャリッジリターンを出力したいって言うんなら
(princ (code-char 13))
じゃないかな。本当にスクリーンコントロールしたいならcl-ncursesとかを使ったほうがいいと思うけど。
228:デフォルトの名無しさん
09/05/16 01:10:25
>>227
ありがとう御座います。
ロード画面のように
棒がのびるエフェクトをつけたかったのでキャリッジリターンを
知りたかったのです。インタプリタだと確認できないので
ファイルに書いて試してみたいと思います。ありがとう御座いました。
229:デフォルトの名無しさん
09/05/16 13:00:24
またmximaスレが落ちた
ある意味matlabより便利なのに,思ったより使ってる人すくないのかなあ
230:デフォルトの名無しさん
09/05/16 13:36:20
Common Lispでリストの要素を文字列化するには
どのようにすれば良いでしょうか?
'(hello world)というリストの
各要素の長さを別のリストに移したいのでmapcarをつかおうと思うのですが、
legthは文字列でないと受け取ってくれないので、どうしようかと
思っています。
よろしくおねがいします。
231:デフォルトの名無しさん
09/05/16 14:09:31
(mapcar 'length (mapcar 'string '(hello world)))
232:デフォルトの名無しさん
09/05/16 14:35:32
ありがとう御座います。
233:デフォルトの名無しさん
09/05/17 10:30:29
clbuildでmcclimをインストールし、デモもちゃんと動いたのですが、
lispファイルからmcclimをrequireしてもmcclimが見つからないようです。
URLリンク(mcclim.cliki.net)
ここを参考にしたのですが、他に何かやることがあるのでしょうか?
234:デフォルトの名無しさん
09/05/17 12:09:23
URLリンク(www.neuroarena.com)
裏で動いてるのはsbclらしい。
235:デフォルトの名無しさん
09/05/17 22:29:13
Common Lispの仕様書が欲しいのですが、
HyperSpecやらCLtL2やら
ANSI X3.226-1994 Information Technology - Programming Language - Common Lisp
やらが出てきてどれが本物なのかがわかりません。
少し聞いた話がANSIが仕様書でCLtL2はその仕様書の編纂途中の様子とかを記録した物で
HyperSpecは辞書のような物だと聞いた事が有ったような....
できれば書籍で販売されているとうれしいです。
236:デフォルトの名無しさん
09/05/17 23:15:45
ヤンデレが治ったら本気出すスレ
237:デフォルトの名無しさん
09/05/17 23:28:46
そりゃANSIで規格になってるんだから当然書籍で売っている。
ANSI/INCITS 226-1994
URLリンク(www.techstreet.com)
$350.00 USD
238:デフォルトの名無しさん
09/05/18 00:27:09
$350.00 って趣味で出すにはちょっと高いかも
239:デフォルトの名無しさん
09/05/18 00:35:58
趣味ならANSIからPDFを買って自分で印刷すればいい
240:デフォルトの名無しさん
09/05/19 00:14:37
lambdaを打つのがめんどくさかったのでlbdとうって処理できるようにしようと思い
(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式でも関数でもないと帰ってきてしまいます。
これを回避するにはどのようにすれば良いのでしょうか?
よろしくおねがいします。
241:デフォルトの名無しさん
09/05/19 01:12:37
>>240
carにlambda式を置くというバッドノウハウは無視して
常にfuncallを使うようにすれば良いと思います
242:デフォルトの名無しさん
09/05/19 06:03:18
>>240
はまる人の少ないところだからあまり知られてないけれど。
URLリンク(www.lispworks.com)
>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 で始まるリストじゃなきゃ駄目です。
リーダマクロなら評価の前に式の変形を行うからいけるはずだけど。
243:233
09/05/19 14:09:39
>>233です。
なんとかmcclimを読み込んでhello worldを表示することができたのですが、
今度は日本語表示を表示しようとmcclim-truetypeをrequireして実行すると、以下のエラーが出ます。
unhandled ZPB-TTF::BAD-MAGIC:
Bad magic value in font header: #x4F54544F (expected #x00010000 or #x74727565)
見ての通りZPB-TTFというライブラリが何かエラーを起こしているようなのですが、対処法はありますでしょうか?
244:デフォルトの名無しさん
09/05/20 15:05:06
OpenTypeFontが扱えないとか。
245:233
09/05/23 13:25:12
>>244
返信ありがとうございます。
フォントとなると環境が絡んでくるのですね。
後からになって申し訳ないのですが、MacOSX(leopard)、SBCLを使っていまして、
調べてみたところOSはOpenTypeFontには対応しているようです。
また、代わりにmcclim-freetypeをrequireすると、
unhandled SIMPLE-ERROR: attempt to multiply define ENUM FREETYPE:GLYPH-FORMAT-
というエラーが出て、こちらも駄目でした。
Lispはエラーを検索しても解決策が出てくることが少ないですが、皆さんはどう対処しているのですか?
SBCL含め全て再インストールした方が良いでしょうか・・
246:デフォルトの名無しさん
09/05/24 02:13:30
>>245
こちらではほとんど同じ環境ですが、mcclim-freetypeもmcclim-truetypeも
使えているようです。mcclimはclbuildで入れました。mcclim-truetype.asdでのcl-aaへの
依存を取り除いた以外は特に変更を入れていません。
247:233
09/05/26 12:08:56
>>246
返信ありがとうございます。
長々と場所を取ってしまいすみません。
今、部分的に再インストールしてみたりして試行錯誤しているのですが、
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だけではインストールされなかったライブラリ等あれば、お教えいただけると幸いです。
248:246
09/05/26 18:05:45
>>247
gitは入れていますか?zpb-ttfをclbuildで入れるときにこれが必要だったような気がします。
(macportsで入れました)
249:デフォルトの名無しさん
09/05/28 12:23:50
Teepeedee2ってほんとに速いの?
250:233
09/05/29 05:58:43
>>248
返信ありがとうございます。
どうにもならないようなので、一度すべて再インストールしてみることにしました。
アンインストールしてから、SBCL、darcs、clbuild、Gitを再インストールし、
clbuildを使ってmcclim、cl-vectors、zpb-ttfを入れましたが、
truetypeは>>243のエラー、freetypeは>>245のエラーがやはり出ます。
これ以上場所を取るのも悪いので、以降は自分で何とかしてみることにします。
また新しく何か分かった時は質問させていただくかもしれないので、その際は宜しくお願いします。
251:246
09/05/29 06:25:07
>>250
ほかの話題を邪魔してしまってる訳でもないし、スレチでもないので別にいいのでは?
エラーメッセージから推測するに、特定のフォントのフォーマットが合わないのかも
しれませんね。
URLリンク(www.xach.com)
によると、ユニコードマップがないフォントはだめと書いてあるのでもしかしたら
互換性のないフォントのせいでこけているということもあり得ます。
追加で入れたフォントをいったん外してみたらどうでしょう?
252:233
09/05/29 13:23:54
>>251
すみません、恐れ入ります。
ターミナルに表示される処理から察するに「ヒラギノ丸ゴ 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*には存在しないディレクトリが与えられていて、それでもライブラリフォルダを参照しているので、どう変更したものか、というところです。
もう少し考えてみます。
253:246
09/05/31 22:08:45
>>243のエラーは (require :mcclim-truetype) しただけで出ますか?それともほかの
パッケージをロード/実行した際でしょうか?
こちらで少し試してみたところ、ヒラギノはTTFでなくOTF (open type)なのでzpb-ttf
では読み込めないようです。M+フォントやIPAモナーフォントはOKでした。
もし(require :mcclim-truetype) が通るのであれば、そのあとで
mcclim-truetype::*families/faces*パラメタの方を修正してやればとりあえずごまかせる
かもしれません。>>252のフォントのリストはこのパラメタ (assocリスト)の値のリスト
なので、ヒラギノに対応する項目を適当なフォントのパスに付け替えれば動くかもしれません。
また、*truetype-font-path*の方はこれらの値のうち相対パスになっているものにだけ
使われるので、今は気にしなくて良さそうです。
254:デフォルトの名無しさん
09/06/01 19:37:29
on lisp 注文しちまった
255:デフォルトの名無しさん
09/06/02 01:52:27
>>254
なんだか注文した事が後悔されているように読めて悲しい。
技術書の良くできた本って読み物としても良くできてるんだよね。
そしてOn lispは読み物としてもおもしろい本だったよ
他のlisp本だと実践CommonLispが楽しかった。
;;; 小生は活字中毒なのもあるかもしれんが
256:デフォルトの名無しさん
09/06/02 02:12:19
OnLispは文学
257:デフォルトの名無しさん
09/06/02 02:13:22
勃起した
258:デフォルトの名無しさん
09/06/02 02:18:11
技術書でかつ訳書といえば、大抵は意味不明な難読日本語に悩まされるのが常だけど、
On Lispは明瞭かつ流暢な日本語で書かれているので、100点を付けてもいいよ
259:デフォルトの名無しさん
09/06/02 02:42:29
>>258
それで悩んだのはクヌース本の初版だけだったな、ASCII版は普通によめた
でも算符とか鍵盤とかの訳語は好きだぜw
260:デフォルトの名無しさん
09/06/02 16:24:50
算符じゃなくて算譜だね。この訳語が定着しなかったのは残念。
確かに昔の技術書や科学書は硬い言葉使いが多くて読みづらかったけど、
それでも何とかなっちゃう秀才が大学教授になって、やはり硬い文章を
再生産するのかもしれないなあと思ったりして。
261:デフォルトの名無しさん
09/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))
これってもっとかっこよくエレガントに書けませんかね?
パターンマッチとか使えるといいんだがなぁ...
262:デフォルトの名無しさん
09/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))))))))
263:233
09/06/04 00:09:40
>>253
返信ありがとうございます。
requireの下に、
(setf (cdr (nth 8 mcclim-truetype::*families/faces*)) #P"/Library/Fonts/Arial Unicode.ttf")
を追加したところ、ようやく日本語が表示されました。
色々説明不足であったにもかかわらず、何日もに渡ってお教えいただき、本当にありがとうございました。
初めの方に返信を下さった方々もありがとうございます。
Lisperの皆さんの優しさにちょっと感動です。
264:デフォルトの名無しさん
09/06/04 05:38:14
今までsbclは末尾再帰を最適化してくれると思っていたのですが、
* (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の方が若干遅かったのは驚きました。
タイミングの問題ですかね?
265:デフォルトの名無しさん
09/06/04 07:01:08
末尾再帰最適化のメリットは主にスペース面で、スピード面の直接の貢献は少ないんじゃないかな。
むしろ末尾再帰のために引数が増えたりすると、スピード面ではデメリットになっているかもしれない。
266:デフォルトの名無しさん
09/06/04 10:59:58
>>264
コンパイルした?
>>265
なことはない。
267:デフォルトの名無しさん
09/06/04 11:59:07
相互末尾再帰は最適化やってくれるんかな
a->b b->c c->d・・・みたいな
268:デフォルトの名無しさん
09/06/04 12:09:26
末尾再帰も相互末尾再帰も末尾呼び出しの最適化だ
269:デフォルトの名無しさん
09/06/04 12:36:39
>>267
Clinger の "Proper tail recursion and space efficiency" でも読みなされ。
270:264
09/06/04 13:07:42
コンパイルした結果がそのようになりました。
(proclaim '(optimize speed))
を忘れていたので帰ったら試して見ます
271:デフォルトの名無しさん
09/06/04 22:00:17
>>266
tail call 用の引数の計算にスタック上のデータが必要だと、
処理が少しだけ面倒くさくならない?
なんかうまいやり方があるのかな。
272:264
09/06/05 01:03:18
帰ってきました。(proclaim '(optimize speed))したところ
以下のようにちゃんと末尾再帰版が速くなりました。
* (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
273:デフォルトの名無しさん
09/06/05 07:34:02
末尾再帰版が早いときもあれば遅いときもある、ってぐらいじゃないかな。
何回かやってみると必要サイクル数は少し変動してるし(ガベコレのタイミングのせい?)。
うちの環境ではどちらが早いとも言えなかった。
274:デフォルトの名無しさん
09/06/07 11:14:44
今時Common Lispを始めようなんて、
いったいどういう理由なんですか?
275:デフォルトの名無しさん
09/06/07 11:28:03
>>274
どういう理由と文脈で「今時」とか嫌味つけてそういうことを聞くの?
人それぞれだと思うよ。
276:デフォルトの名無しさん
09/06/07 11:31:25
sbclをアップデートしたのでasdfを再コンパイルするようにshell scriptを書いて
実行したのですが、
; 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のバグなのでしょうか?
よろしくおねがいします。
277:デフォルトの名無しさん
09/06/07 16:26:46
安物ルータのhtml形式で書かれた通信ログを定期的に保存したいんですが、どのようにしたらいいんでしょうか?
できれば、タグを取り除いたplain text形式で保存したい。
ヒントでいいので、教えていただきたい。
278:デフォルトの名無しさん
09/06/07 17:19:10
つcron, perl
279:デフォルトの名無しさん
09/06/07 17:32:26
>>278
cronは、使うと思うんだけど。スクリプトはclで書いてみたいんですが。
とりあえず、簡易版でいいので実装できれば、いいかなと思っています。
280:デフォルトの名無しさん
09/06/07 20:11:53
read-line-intoをSBCLで使えるようにできるライブラリはありますか?
281:デフォルトの名無しさん
09/06/07 20:31:22
>>280
(setq var (read-line ...))
じゃ, あかんの?
282:デフォルトの名無しさん
09/06/07 20:36:15
>>281
データが大量なのでバッファを使った読み込みが好ましいんですが、
read-sequenceでは使い勝手が悪いので・・。
283:デフォルトの名無しさん
09/06/07 20:39:46
固定長の、ですね。訂正します
284:デフォルトの名無しさん
09/06/07 20:41:21
>>282
ラッパ書けばいいじゃん
285:デフォルトの名無しさん
09/06/07 22:40:50
だれか私に最初から教えてください。clisp
286:デフォルトの名無しさん
09/06/07 22:47:12
いいよ。どのくらい最初から?
287:デフォルトの名無しさん
09/06/07 22:54:10
適当なデータ型のリストを作成して、リストの内容を表示しようとしたら、どう書いたらいい?
超初心者ですりません。Cしか知りません
288:デフォルトの名無しさん
09/06/07 23:03:01
>>4に乗っているチュートリアルのどれかかなにかを読むのが一番だと思います。
289:デフォルトの名無しさん
09/06/07 23:05:42
なるほど、勉強してきます。
290:デフォルトの名無しさん
09/06/07 23:10:54
えらく曖昧だな。こんなんか?
CL-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
291:デフォルトの名無しさん
09/06/08 02:24:42
いろいろ読みあさってなんとなくだけどわかってきた気がする。ありがとう。
292:デフォルトの名無しさん
09/06/08 06:59:56
>>279
それをlispで書きたい理由がわからないな。lispの練習をしたいならもっといい問題が
他にあるし、この問題を解きたいならもっといいソリューションが他にあるし。
それでもどうしてもcommon lispでやりたいなら
URLリンク(ja.doukaku.org)
でも見ればいいと思うよ。
293:デフォルトの名無しさん
09/06/08 08:48:04
>>292
> それをlispで書きたい理由がわからないな。lispの練習をしたいならもっといい問題が
> 他にあるし、この問題を解きたいならもっといいソリューションが他にあるし。
問題としては良くないんでしょうか?
練習もかねていますし、将来、この問題をもうちょっと高度にした処理も書きたいと思っています。
> URLリンク(ja.doukaku.org)
参考にさせていただきます。
ありがとうございました。
294:デフォルトの名無しさん
09/06/11 02:05:42
GNU Common Lisp 2.6.7を使っていて、記述した関数を読み込ませたのですが、
(load "ファイル名.l")と実行しても読み込めません。
コマンド自体は通っているようなのでファイルを置く場所が間違っていると思います。
GNU Common Lisp 2.6.7でいうカレントディレクトリは何処なんですか?
295:デフォルトの名無しさん
09/06/12 00:08:44
schme lispスレでこぼしていた者です。
遅くなってすいません。
パッケージのインストール・使い方について教えてください。
このサイトを読んでこいでもいいので、よろしくお願いします。
(load "hoge.lisp")は、わかるんですが、パッケージになるとわけがわかりません。
ライブラリのPATHの通し方もよくわかっていません。
でも、emacs lisp, schemeについては基本的なことはわかっているつもりです。でも、slimeのinfoをまだ読んでいませんが。
URLリンク(codepad.org)
CLの書籍はピーターうんたらさんの実践common lispの日本語訳のみ所有しています。
296:デフォルトの名無しさん
09/06/12 02:13:31
>>295
asdfで検索すると幸せになれる
主要なライブラリならclbuildを使う
297:デフォルトの名無しさん
09/06/12 02:38:17
あぁぁぁ (lambda x ...)素敵過ぎ
298:デフォルトの名無しさん
09/06/12 05:05:10
>>296
言われたとおり、ググって、みまわりしてきた。asdfは、ちょっとわかった感じだけど。まだ全然わかっていない。
asdfの英文のマニュアルも質素過ぎて、よくわからない。
clbuildは、asdf-installが中途半端に使った状態で使っていいのだろうか。
あとgentooのemerge(package system)を使わないで、clbuildを使って、処理系を入れた方がいいんでしょうか?
299:295
09/06/12 07:20:01
あっ、そういうことか。なんかわかってきたかも。
300:デフォルトの名無しさん
09/06/12 12:33:34
ubuntuだと
/usr/share/common-lisp
以下にasdfがつっこむようにされてるけど、他はどうなってるの?
301:デフォルトの名無しさん
09/06/12 19:26:50
>>294
*default-pathname-defaults* で確認できんか?GCLは使ってないが。
302:デフォルトの名無しさん
09/06/13 19:16:16
lingr-down-p
303:デフォルトの名無しさん
09/06/14 01:59:39
(defconstant lingr-down-p t)
304:デフォルトの名無しさん
09/06/14 02:06:33
Location: URLリンク(gigamonkeys.com)
Copyright ← 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
305:デフォルトの名無しさん
09/06/14 02:12:39
>>304
あるよ
URLリンク(www.lispworks.com)
306:デフォルトの名無しさん
09/06/14 17:46:52
>>305
>一行ずつ足す方法ってどうやるんですか?
304の本題のほうは、どう書くんですか?
307:デフォルトの名無しさん
09/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 とか好きな別の制御構文でいいけどさ。
308:デフォルトの名無しさん
09/06/14 18:37:30
loop が嫌いな人って do も go も嫌いな気がするんだ
309:デフォルトの名無しさん
09/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とか使ったほうがいいかもね。
310:デフォルトの名無しさん
09/06/14 19:34:36
>>307 summingなんてあったんか・・loopはまさに変態キングやね!
311:304
09/06/14 21:31:40
>>307
章単位でつまみ食いして読んでいます。飛ばした章はとりあえず流し読みだけ。
sbcl and slimeなんだけど、エラーはでないんだけど、答えが出てこないんだが。
loopは、よくわからないなあ。loopの章は読んだんだけどなあ。こういうものだと思って、構文を覚えればいいのかな。
fileもイマイチ書き方がわかっていないし。
>>309
動いた。動いた。
再帰版もサンクスです。
ちょっとしたものを書きながら、file関係の関数にについて理解を深めたいと思います。ありがとうございました。
312:デフォルトの名無しさん
09/06/14 21:58:33
それは飛ばし杉というか、手を動かしてないとかじゃないかなぁ。
LISPはじめてなら、本を読むときには、サンプルをREPLに何回か打ちこむくらいはしたほうがいいよ。
313:デフォルトの名無しさん
09/06/14 22:33:40
>>312
手を動かしているよ。
飛ばした章に書かれている内容は大雑把だけど、把握していて、読みたい章で飛ばした章の内容が出てきたら、戻るようにしている。
schemeは多少ゴリゴリやったので、Lispはちょっと実験的に章ごとの拾い読み的な勉強法を試している感じ。
304の話は、軽く調べた限りでめぼしいのがなく、初級レベルのレスも過疎っていたので、質問させていただきました。
314:デフォルトの名無しさん
09/06/14 22:42:33
string-to-integerといってる時点でSchemerと気がつくべきだったな。私がニブかったね。
PCLを原文で読めるくらいなら、LOOPは書けなくても読めると思うけどやっぱキモいかね。
英語圏の連中が自然に読み書きできる事をめざしていたそうだが・・・まぁSQLもそんな事いってたけど
315:デフォルトの名無しさん
09/06/14 22:58:49
COBOL もそんなこと言ってたよな
316:デフォルトの名無しさん
09/06/14 23:43:49
>>301
ダメでした
eclipseを使うことを勧められたのでそちらでやってみようと思います
ありがとうございました
317:デフォルトの名無しさん
09/06/15 01:56:24
Lispは処理系なり何なりがバラバラすぎる
自由度が重要なのは分かるけど、ただでさえ少ない人口が更に分散してる
318:デフォルトの名無しさん
09/06/15 15:49:11
人口多い言語はエラーメッセージ検索するとすぐひっかかるからいいよね
319:デフォルトの名無しさん
09/06/15 17:10:53
>人口多い言語はエラーメッセージ検索するとすぐひっかかるからいいよね
すぐググるという思考になって、よくない気もするけどなあ。
軽くググったりもするだろうが、10時間ぐらい悩むのがいいんじゃないだろうか。
いろいろ試行錯誤しても解決しないということは、いいことだし。肥やしになる。
解決するためには英文も読む必要が出てきて、英語の力もつくし。
奥村晴彦のアルゴリズム辞典という本があるけど、Lisp版って需要あるのかな。
ネットでLisp版サンプルコードを晒すだけなんだが。
コメント入れて、読みやすくはするつもりではいる。
320:デフォルトの名無しさん
09/06/15 17:18:48
ググらなくてもソースコードの中検索すれば大抵すぐ解決するでしょ
321:デフォルトの名無しさん
09/06/15 17:26:20
> 奥村晴彦のアルゴリズム辞典という本があるけど、Lisp版って需要あるのかな。
覚え始めのころにちょっと挑戦してみたことがある。
魔方陣のコードが見た目凄いことになったのでマクロを覚えて書き直したら
他人に分ってもらえなくなったw
322:デフォルトの名無しさん
09/06/15 17:34:46
似たものでnumerical recipes in C のlisp版ソースを公開しているものが
あったけど、cをそのまんまcommon lispに直しているだけで、あれはだめだ
ひどいと思ったから、それそうとうのlispらしさを出す努力だけはしてね。
323:デフォルトの名無しさん
09/06/15 18:04:41
>>322
> ひどいと思ったから、それそうとうのlispらしさを出す努力だけはしてね。
ハードルをあげるのは好きだなw
lispらしさってlisperが思うlispらしさだろ。そんな10年ぐらい触らないとわからないんじゃないのかな。
とりあえず、糞コードを書いて、数年単位ぐらいで書き直して、精度を上げていけばいいんじゃない?
もちろん、過去の糞コードも残して。
そのくらいのスタンスだったら凡人でも鑑賞に堪えるものができるかなと思っているんだけど。
324:デフォルトの名無しさん
09/06/15 18:43:21
>>319の前半に同意なだけに
そんなの自分でやらせたらどうよと思うw
Cのソースからの単純な置き換えでなんとかなってしまうだけに
「lispらしい」例を少しぐらいは示しておくのでないと
325:デフォルトの名無しさん
09/06/15 18:44:35
> そんなの
ってのはlispへの書き換えのことね
326:デフォルトの名無しさん
09/06/16 12:27:52
>>324
らしさ、というと抽象的です。だけども、多値を使うということは意識できるだろう
マクロを使い過ぎというのも一時のもの(あれはlisperの中二病ですね。)だし、そこ
まではする必要はない。まして、最適化まではもとめないよ。loopかmap系かみたいな
ところも好みがあるので、それもらしさという意味ではどっちでもいいよ。また、
schemeとcommon lispでも違いはあるけども。
>>323
もし10年と考えているならば、それはあまり使ってない人だと思う。和訳も出ている
norvigのcommon lispのスタイルに関して記述したものくらいは読んで理解できると
思うがね。そのコードが見本になるものくらいの気持(決っして、そこまで要求しな
いけど、)はもっておいてほしいだけさ。そこに努力の意味が入っている。
327:デフォルトの名無しさん
09/06/16 14:28:54
聞く耳持たないんなら黙って実行しろよ
328:デフォルトの名無しさん
09/06/16 20:10:51
ごめん、何がしたいのか分らない。
329:デフォルトの名無しさん
09/06/16 20:36:48
CからLispへのトランスレータで解決だね
ていうか奥村さんのその本ちゃんと見たのかなー
ぱっと見で楽そうとか思ってね?
330:デフォルトの名無しさん
09/06/18 20:42:32
lispにforがないのはなんで?
331:デフォルトの名無しさん
09/06/18 21:22:11
LOOPマクロにある FOR じゃ駄目なのかい…まぁ、煽りなんだろうけど
332:デフォルトの名無しさん
09/06/18 21:35:09
>>330
君も知ってる通りLisperは再帰を使うのさ。って言って欲しかった?
333:デフォルトの名無しさん
09/06/19 00:10:11
>>330
自分で作れるから
334:デフォルトの名無しさん
09/06/19 00:28:40
LISPってC言語より古いんだぜ?
for(初期化付き繰り返し)の原型が最初に出てきた言語って何だろ
335:デフォルトの名無しさん
09/06/19 00:43:50
FORTRANじゃないの?
336:デフォルトの名無しさん
09/06/19 00:56:30
>331
煽りじゃないです>< ググってみます
>>332-334
りすぱーへの道のりは通そうです><
337:デフォルトの名無しさん
09/06/19 01:04:37
本気なの?じゃあ答えるけど、C風のforなら
for (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だろとか字面の話なら、存在しないってことでもいいけど
338:デフォルトの名無しさん
09/06/19 03:36:14
doのことも忘れないであげてね
339:デフォルトの名無しさん
09/06/22 13:20:40
初心者です。本で勉強してます。再帰関数をつかった問題を解いていて
自力で解けず、解答のコードを見ても再帰関数がどう動いて値を返してるのか
把握出来ません。例を当てはめても、理解出来ないこともあります。
こういう作業をするときはこのコードを使うと1:1で対応させて
暗記してしまえば良いんでしょうか?それとも、悩みぬいた方がいいんでしょうか?
340:デフォルトの名無しさん
09/06/22 13:37:29
コンピュータ上で動かしながら考えたらいいと思うよ
いわゆるprintfデバッグでもいいし、traceもあるし、デバッガも使えるし。
341:デフォルトの名無しさん
09/06/22 13:38:34
再帰の理解は基礎の基礎。ちゃんと理解しなさい。
どうしてもダメなら自分では再帰は書かない、あらゆる処理をループで書くと決意する。
理解していないのに暗記で書くなんて最悪だ。
342:デフォルトの名無しさん
09/06/22 13:55:44
理解する方がいいのは当たり前だが、暗記がそれほど悪いわけでもないと思うけどなあ
暗記で書くのとライブラリを使うのとは本質的に同じだ
使うライブラリはすべて理解しろと言うわけでもないだろうし
343:デフォルトの名無しさん
09/06/22 14:02:51
> 暗記で書くのとライブラリを使うのとは本質的に同じだ
んなわけない。まあ書くのも使うのも自分一人なら同じかも知れないが。
344:デフォルトの名無しさん
09/06/22 14:24:02
>>339 そんなあなたに little schemer
345:デフォルトの名無しさん
09/06/22 14:47:12
doとかloopの使い方なら暗記で良いけど、
再帰関数はコードが読めないと何をしているかわからなくなるよ。
自分も教えられるほど理解してないけど、基本的には、呼び出し側の関数に呼び出された関数を展開するように考えればいいと思う。
346:デフォルトの名無しさん
09/06/22 17:30:51
みなさん、レスどもです。理解するまでやってみます・・・
ネスト入ると、頭が沸騰しちゃいますね・・・
347:デフォルトの名無しさん
09/06/22 18:25:49
ネスト?相互再帰とかかな。どんなので沸騰してるんだろ。
348:デフォルトの名無しさん
09/06/22 20:23:39
再帰関数hogeの中で、別の再帰関数higeが呼ばれて
higeの引数にhogeが渡されるような関数です。
動きを頭の中で追おうとすると沸騰します。
349:デフォルトの名無しさん
09/06/22 23:01:07
>>348
人の関数を追いかけるからだよ
再帰で物がきれいにかけても人の考えまでは見えないからね
自分で再帰関数の定義を自在にできるようになるまでは相互呼び出し系は鬼門だとおもうよ(再帰に限らず関数ポインタ渡すCとかも)
350:デフォルトの名無しさん
09/06/22 23:08:21
「処理の流れ」をおっかけようとしているのが原因じゃないかな。(他の言語の経験があると仮定すると、ですが)
「どう動くか」じゃなくて、「何をやっているのか」を読めるようになるといいと思う。
停止条件と、次の呼び出しのときにどう問題を細かくしていくのか、に注目してみよう。
351:デフォルトの名無しさん
09/06/23 00:13:06
>>344
little MLerって本もあるらしい。
352:デフォルトの名無しさん
09/06/24 18:22:40
>>349
>>350
はい、処理をおっかけてとりあえず理解しようとしていましたが、問題を一つ解くのに
エライ時間かかりましたし。何をやっているかを読むようにしてみます。
>>351(>>344)
余裕が出来たら、読んでみます
353:351
09/06/24 21:29:07
>>352
ごめん、MLスレと間違えたんだ。無視してください。
354:デフォルトの名無しさん
09/06/24 21:56:05
maximaが静的スコープなのを確認した
355:デフォルトの名無しさん
09/06/26 00:03:38
lispboxを触ってみたら、さっそく分からないことが・・・。
Emacs上で以下のリストを書いて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画面に移動するにはどうすれば
いいんでしょうか?
356:デフォルトの名無しさん
09/06/26 00:45:29
>警告画面を消してslime-repl画面に移動するにはどうすれば
>いいんでしょうか?
Ctrl-H b
でキーバインドが表示される
Slime環境で楽しくLispを学ぶって事ならまずemacsの操作をおぼえなきゃいけない。
おまえさんが未だにemacsのキーバインドになれていないならeclipse+CUPSと言う環境に触れるのもいいかもしれない
また、Slimeにどっぷり浸かるつもりならCtrl-H tでemacs自体の学習が開始されるのでそれを先に済ませるのもいいかもしれない
URLリンク(journal.mycom.co.jp)
357:デフォルトの名無しさん
09/06/26 01:09:06
>>355
lispboxについてはよくわからないし、初心者に毛が生えたレベルだけど、
警告出たら、qなり、Ctrl-x oなりすればいいんじゃないの?
358:デフォルトの名無しさん
09/06/26 06:16:54
消したいウィンドウのモードラインで右クリックしたら消える
359:デフォルトの名無しさん
09/06/26 08:56:21
slime-compilation-finished 辺りを書き換えるか、
slime-compilation-finished-hook で警告を消せばいいんじゃないの?
slime はかなり読みやすいんだからこれくらい自分で探せよ
360:デフォルトの名無しさん
09/06/26 20:09:01
破壊的リスト操作をする関数を非破壊的操作に変えたいんだがなにか良い方法はないかな?
関数でsetqはあまり良くないよね
361:デフォルトの名無しさん
09/06/26 20:22:32
破壊的操作がされることを期待して書かれたコードがあったりしない?
大丈夫?
362:デフォルトの名無しさん
09/06/26 20:44:06
(defun non-destructive-function (list)
(destructive-function (copy-list list)))
3秒で書いたのでどうなっても知らない
363:デフォルトの名無しさん
09/06/27 10:44:15
>>356
ありがとうございます。
ふだんxyzzyは使うんですが、emacsには慣れてなくて。
>>357-358
ありがとうございます。
それでうまくいきました。
>>359
サーセン、無理ッス。
364:デフォルトの名無しさん
09/06/27 16:47:40
cond式で複数の値を返すってできる?
365:デフォルトの名無しさん
09/06/27 17:26:20
>>364 values 使うだけちゃうの?
CL-USER> (cond (nil (values nil t))
(t (values t nil)))
T
NIL
CL-USER>
366:デフォルトの名無しさん
09/06/28 02:27:58
再帰の利点って何ですか?
最適化でループになるのなら、初めからループで書けば良いと思うのですが
367:デフォルトの名無しさん
09/06/28 02:36:56
それは、再帰が何か特別な物に見えている人(再帰を消化しきれていない人)の
発想じゃないかなぁ。
ある動作を素直に表現しようとした時に、それが再帰と呼ばれるものを使用している場合がある。
他のあらゆる技法、概念と同じだよ。
368:デフォルトの名無しさん
09/06/28 03:07:08
>>366
再帰にすることで、構造が非常にはっきりする(場合がある)という利点はあるよ
ループのほうが速ければ、別に再帰にする必要なんかない
カルト宗教じゃないんだから
369:デフォルトの名無しさん
09/06/28 03:17:10
再帰はイメージできるようになったんだけど、loopの構文ってどうやって覚えればいいの?
loop構文で出てくる単語を覚えられない。
読むのは、いじっていればなんとかわかるんだけどなあ。
370:デフォルトの名無しさん
09/06/28 10:32:43
loopは、別に使えなくていいらしい。
構文の重箱の隅をつつくような使い方をすると、
ちゃんと動かなかったりするらしい。
…と初心者の聞きかじり。
371:デフォルトの名無しさん
09/06/28 10:49:37
関数の引数に大域変数を渡すと、その大域変数に値を代入してくれる関数って作れる?
rplaca,rplacdを使わないで
372:デフォルトの名無しさん
09/06/28 10:53:19
何を言っているのだお前は
373:デフォルトの名無しさん
09/06/28 11:22:02
イミフ。そもそも大域変数って何か分かってんのか?
374:デフォルトの名無しさん
09/06/28 11:23:03
>>372
(defun settest (x) (setq x 123))
で(settest y)としてもyに値を入れてくれないじゃん
どうすればいいの?
375:デフォルトの名無しさん
09/06/28 11:24:23
つ マクロ
376:デフォルトの名無しさん
09/06/28 11:33:36
>>374
関数に副作用持たすのはよくない傾向と共通認識があるからそもそも問題にならない
呼び出し側でsetfすればいい話
377:デフォルトの名無しさん
09/06/28 11:43:12
(defun settest (x)
(setf (symbol-value x) 123))
(settest 'y)
378:デフォルトの名無しさん
09/06/28 11:49:53
>>376
何を言っているのだお前は
379:デフォルトの名無しさん
09/06/28 19:07:50
URLリンク(www.komaba.utmc.or.jp)
まぁここでも見とけ
380:デフォルトの名無しさん
09/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...とやるとうまくいきます.
381:デフォルトの名無しさん
09/06/29 18:16:16
defvarで*test*が束縛されるのは実行時。
マクロが展開されるのはコンパイル時。
382:デフォルトの名無しさん
09/06/29 18:18:31
>>381
それかーっ!
ありがとうございます
383:380
09/06/29 18:22:44
うーん,原因はわかったんだけど解決法がわからない...
そもそも定数値をマクロに渡すような手法は間違っているのだろうか...
384:デフォルトの名無しさん
09/06/29 18:22:47
> ちなみに,,@(loop for i in *test* collect...とやるとうまくいきます.
てことは展開時に *test* はそのリストに束縛されてんだろう
(build-toolbar *test*)
のマクロ展開時に val が束縛されてるのは symbol *test* であって、その
値である '(("aaa" . "bbb") ...) ではないからじゃね?
385:デフォルトの名無しさん
09/06/29 18:28:51
the value *TEST* だからそれだな。
386:デフォルトの名無しさん
09/06/29 18:31:18
両方?
387:デフォルトの名無しさん
09/06/29 20:23:11
>>380
(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))))))
388:デフォルトの名無しさん
09/06/29 23:25:17
>>380
(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))))
389:デフォルトの名無しさん
09/06/30 01:35:37
なんでおまいらそんなにひねくれてるんだ
390:デフォルトの名無しさん
09/06/30 07:48:27
>>380に書いてあることを素直にやればいいんだ。
> ちなみに,,@(loop for i in *test* collect...とやるとうまくいきます.
↓
うまくいくマクロを定義するマクロを書く。
391:デフォルトの名無しさん
09/06/30 08:35:02
>>381のような誤解もあるので書いておくことにする。
>>380の最後に書いてあるように、大域変数の値に実際にマクロの定義文内で
アクセスすることは可能。でもトップレベルスコープであるマクロの展開中は
大域変数にしかアクセスできないのでふつうは>>387-388のように書く。
392:デフォルトの名無しさん
09/06/30 09:39:11
>>391のような誤解もあるので書いておくことにする。
URLリンク(www.lispworks.com)
> 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.
コンパイル環境と実行環境が理解できていないんだろうな。
393:デフォルトの名無しさん
09/06/30 16:58:27
あたしネカマだけど、マクロ展開とコンパイルを区別できない男の人って・・・
394:デフォルトの名無しさん
09/06/30 17:18:39
>>380のdefvarとdefmacroがコンパイルしたい同じファイル内にあるならそうだけど、
そんなこと書いてないじゃん。質問がreplでは通るのにcompile-fileできません><なら
ともかく、>>381の回答は明らかに状況が判ってないだろ。
実際、compile-fileが評価される前に評価されたdefvarの値をマクロ定義内で参照してる
ファイルはコンパイルできる品
395:デフォルトの名無しさん
09/06/30 17:22:42
clisp使ってるんですけどプログラムを走らせてる途中でメモリーが足りないというような
メッセージが出たんで一旦止めて
$ clisp -m 768KB program.fas
という具合に -m オプションをつけて走らせたんですけど、同じようにメモリーが足りないという
メッセージがでます。
ps でメモリーの使用量を調べたら30%も使ってませんでした。
これってclispのバグとかでしょうか?
396:デフォルトの名無しさん
09/06/30 17:23:06
ネカマの振りして後から必死で言い訳か。まあ頑張れ。
397:デフォルトの名無しさん
09/06/30 17:42:20
ついでに、たいていの処理系ではREPLで(defun ...)を評価しただけでコンパイルまで
されちゃうってことも知っておいてね☆
398:ネカマ
09/06/30 17:48:06
あたし頑張る!!
トップレベルの式がコンパイルするときには評価されないとか 全 く 関係ないから
>ちなみに,,@(loop for i in *test* collect...とやるとうまくいきます.
と書いてあるんだから、すでに *test* は束縛されてることがあきらかなのに
トップレベルの式はコンパイル時に評価されないとかズレたこと言い出す >>392
は無能すぎ
質問に答える価値なし
たとえ defvar 式がトップレベルに書いてあるファイルをコンパイルしてても
元々束縛されてるものはちゃんと束縛されてますから
小学校からやりなおしてね
>>395
申し訳ないが、今は>>392で遊ぶのに必死で、あなたの質問に答える余裕がないことを
どうか許してもらいたい
399:デフォルトの名無しさん
09/06/30 17:56:54
いつから幼稚園になったのこのスレ
400:デフォルトの名無しさん
09/06/30 18:10:16
おれはむしろ一度たりとも小学校レベルにたどり着いたことがあるのか知りたい
401:デフォルトの名無しさん
09/06/30 18:45:15
良く分からないんだけど、彼は何でこんなにヒートアップしてんの?
402:デフォルトの名無しさん
09/07/01 01:35:25
WindowsXP上で、CLisp(2.47) + ActiveTcl(8.4) + ltk(0.91) を使い、
テキストボックスを表示させてキー入力すると固まってしまいます。
(ウィンドウが完全無反応になる)
要はltkを使いたい(CLでGUIアプリを作りたい)のですが、
1.上記組み合わせ(CLisp + ActiveTcl)で解決方法はありますか?
2.ない場合、上記現象がおきない処理系の組み合わせを教えてください
(AllegroCLとかLispWorksといった有償のパッケージは使わない方向で)
403:デフォルトの名無しさん
09/07/01 03:26:13
LispWorks personal (無償)+ CAPIはだめなの?
関係ないかもしれんが、もしお商売の一環としてやるならフリーウェアを使うことでよけいに
手間がかかることの潜在的なコストというのも考えるべきだと思う。
404:デフォルトの名無しさん
09/07/01 05:11:52
>>403
LispWorksは日本語のリテラルが入ったソースの扱いで困る
ACLは店頭で気軽に買えないので困る(通販でも買えないし)
>>402
文字コード関係の問題だと思った過去スレ4だかに同じような話が出てたよ
405:402
09/07/01 20:30:57
過去スレ3にあった文字コード関連の設定を行ってみましたがダメでした。
((defun wish-enable-japanese… や (setf sb-impl::…)といったもの)
CLispの代わりにSBCL(1.0.20)を使ってみると、固まらずに動きました。
Windows版のSBCLは不安定、といった感じの文章をみたことがあるので、
できれば避けたかったのですが。
406:デフォルトの名無しさん
09/07/02 01:05:48
>>405
> ((defun wish-enable-japanese… や (setf sb-impl::…)といったもの)
CLISPつかってるのにsb-implを設定とな?
407:402
09/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
408:402
09/07/03 09:10:03
すいません、ageてしまいました
409:デフォルトの名無しさん
09/07/03 14:52:52
>>406は無視か…
410:デフォルトの名無しさん
09/07/03 15:03:00
多分難しくて理解できないんだろう
411:デフォルトの名無しさん
09/07/08 08:11:01
LISPでネタプログラム作ろうぜ!まずは俺から。
CL-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):
412:デフォルトの名無しさん
09/07/14 22:18:57
LispにJavaのURLクラスのようなものはありますか?
Webサイトを読み込みたいのですが
413:デフォルトの名無しさん
09/07/14 22:44:58
Drakmaつかえ
414:デフォルトの名無しさん
09/07/14 23:03:44
>>413
レスありがとうです。
やっぱりライブラリがあるんですね。
415:デフォルトの名無しさん
09/07/15 08:20:33
format関数の値を返さないようにする方法ってある?
値を返さない組み込み関数があるといいんだけど。
416:デフォルトの名無しさん
09/07/15 09:01:40
>>415
意味がわかりません
関数は必ず値を返します
elispでいうignore関数みたいなものが欲しいって事?
417:デフォルトの名無しさん
09/07/15 09:59:18
(defun my-format (stream format &rest args)
(apply #'format stream format args)
(values))
418:デフォルトの名無しさん
09/07/15 10:01:52
;; 書き忘れ: 値を返さないことが嬉しいってどういう場合なのか聞いてみたい
419:デフォルトの名無しさん
09/07/17 05:29:14
>>418
こっそり変化かぁ。おもいっきり副作用じゃないの。
たぶん言語的なものじゃなくて、機械語に変換される際の高速化に影響する場合
といったものだと思うよ。それも処理系依存だから、特殊な条件がかさなるよ。
420:デフォルトの名無しさん
09/07/17 12:20:20
formatって何が返るんだっけ
まあ関数型言語だし、何も考えずとも最適化されとるよ
421:デフォルトの名無しさん
09/07/17 22:03:26
nilとか返すよ
(do ((n 1 (* n 2)))((print (format (< n 1000) "~A" n))))
422:デフォルトの名無しさん
09/08/01 21:15:00
yaclmlを使ってcgiを作ろうと思うのですが
(require 'asdf)
(asdf:oos 'asdf:load-op :yaclml)
をしたときに
; loading system definition ...
などと出力されますよね?
この情報?の出力をやめさせたいときは、どうすればいいのでしょうか?
423:デフォルトの名無しさん
09/08/03 10:05:30
ch-whoじゃだめなの?
424:デフォルトの名無しさん
09/08/04 04:47:53
>>423
cl-whoでやりたいことはすべてできそうです。ありがとうございました。
425:デフォルトの名無しさん
09/08/05 03:27:16
>>422
CommonLispでcgiって遅くない?
動作は速いんだけど、起動してロードする時間かかりすぎた気がする。
結局その時はHTTPサーバとかも全部Lispにしたんだけど、なんか速くなる方法あるんですか?
コンパイルしといても時間かかるでしょ?
ECLとかでスタンドアローンにするのかな?
gaucheとかだとCGI速いんだけど、やっぱCLのほうが使いやすいからなー。
実用的速度で使える方法があるなら知りたい。
426:デフォルトの名無しさん
09/08/05 03:49:43
>>91
の言っている事って、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と同じ事をしているってことだね。
427:デフォルトの名無しさん
09/08/05 07:49:38
起動してロードする時間が少ないのはclispってどこかに書いてあった
428:デフォルトの名無しさん
09/08/05 08:37:44
>>425
fastCGI 的なことをするしかないと思う。
mod_lisp はあんまりメンテされてないという噂も。
429:デフォルトの名無しさん
09/08/05 08:52:38
普通はdumpするから起動したら既にロードし終わってるんじゃないの?
430:デフォルトの名無しさん
09/08/05 09:21:26
>>429
その時間がかかるのには違いない罠。
431:デフォルトの名無しさん
09/08/05 12:10:39
>>429
なんだかんだで大きなcore読まないとならんでしょ
短いcgiならfastcgi使うのがいい、システムが大きくなりそうならHunchentootとか
432:高崎佳子
09/08/11 00:12:02
「実践 Common Lisp」を買いました。
また分からないことがありましたら質問にきます。
433:デフォルトの名無しさん
09/08/11 01:04:00
買った報告なんていらねぇよ。
値段や表紙のデザイン程度でもなんか感想くらい書けよ。
434:デフォルトの名無しさん
09/08/11 02:52:59
何を実践するのか判らないね
435:デフォルトの名無しさん
09/08/11 19:04:24
>>434
URLリンク(pds.exblog.jp)
436:デフォルトの名無しさん
09/08/17 19:56:21
FreeBSD 7.2-RELEASE-p2 で Allegro CL 8.1 Free Express Edition を使おうとしています。
URLリンク(www.franz.com)から指定されたファイルを落として
URLリンク(www.franz.com)
に従って解凍し、
% ./newlicense
したのですが、
/libexec/ld-elf.so.1: Shared object "libpthread.so.2" not found, required by "newlicense"
と言われてしまいます。どうしたらインストールを完了できるでしょうか。
437:デフォルトの名無しさん
09/08/17 20:19:51
>>436
pthread 入れろ
438:デフォルトの名無しさん
09/08/17 21:29:50
>>436
/etc/libmap.conf を作って
libpthread.so.2 libthr.so
とか, 書き込むと幸せになれるかも知れない
だめだったら, あきらめろ
439:438
09/08/17 21:37:56
>>436
追加 ${PORT}/misc/compat6x をいれるってのもありかもしれない
それでもだめだったら本当にあきらめるしかないっぽいな
440:436
09/08/17 21:48:04
misc/compat*をインストールしたところうまくいきました
ありがとうございます
441:デフォルトの名無しさん
09/08/17 23:35:36
> pthread 入れろ
libpthread.* は *BSD には無条件でインストールされるはずなのに
どんな意味で言ってるんだろうか?
442:デフォルトの名無しさん
09/08/19 11:26:15
Common LispでSRFI-*の関数が使いたい時、一つ一つ移植してオレオレライブラリに追加してるんだけど、
これって非効率すぎるよね?皆さんどうしてるの?
443:デフォルトの名無しさん
09/08/19 18:43:12
そんな時はない
444:デフォルトの名無しさん
09/08/19 21:33:30
Windows環境でいちばんお勧めな処理系ってなんでしょ?
445:デフォルトの名無しさん
09/08/19 21:55:09
手頃なとこでclispでいいんでないかい
446:デフォルトの名無しさん
09/08/19 22:44:49
>>445
ありがとう。やはりclispが妥当ですか。
447:デフォルトの名無しさん
09/08/20 04:24:24
Windows上でThread使える環境ってACLしかないのかな?
448:デフォルトの名無しさん
09/08/20 06:54:54
どうしてそう思ったのかな?
449:デフォルトの名無しさん
09/08/20 09:46:43
clispとsbclはどっちもサポートされてなくてションボリしてるだけなんだ
450:デフォルトの名無しさん
09/08/20 10:09:27
>>442
commonlispの上でschemeを動かす
こんなのclerなら簡単だよね?
451:デフォルトの名無しさん
09/08/21 00:07:17
>>448
clozuer clが該当したけどXP64bit版でMeadowからslime経由で64bitのCCLを実行すると落ちるんだよね
32bit版のCCLは起動自体拒否されちゃうし
ちなみにThreadさえ使わないならSBCLは凄く使いやすいのだけど、hunchentootで遊ぼうとかするとモウダメポ
ACL店売りしてくんろ >> Franz
452:デフォルトの名無しさん
09/08/21 00:26:31
aclってクソ高かったような
453:デフォルトの名無しさん
09/08/21 16:23:08
aclダウンロード販売汁
454:デフォルトの名無しさん
09/08/21 17:52:20
+, -, incfみたいな既に定義されているオペレーターをオーバーライド
するのってどうやったらよいのでしょう.
vectorクラスを定義しておいて,+オペレーターの引数にvectorクラスが
渡されたら,自分が定義した処理を行うみたいな...
C++でいうoperatorみたなのをやりたいんですが...
教えてください
455:デフォルトの名無しさん
09/08/21 18:42:21
>>454
汎関数ならオーバーライド的なことはできるけど、
+はただの関数だから無理では。
C++と違って+はオペレーターじゃないぞ。
456:デフォルトの名無しさん
09/08/21 18:43:14
>>455
ちなみに汎関数(これって自分が定義する関数ってことですよね?)
どうするんでしょう??
457:デフォルトの名無しさん
09/08/21 19:18:39
> (これって自分が定義する関数ってことですよね?)
厳密には間違い。
ユーザ定義関数なら defun を使うが、
汎関数は defmethod を使って定義する。
汎関数のほうが汎用性が高く、引数の型によって
同じ名前の別の関数を定義可能。
> どうするんでしょう??
(defmethod funcname ((変数名 型名) 変数...)
本体)
みたいな感じ。
URLリンク(www.geocities.jp)
↑あたりが詳しいかな。
458:デフォルトの名無しさん
09/08/21 21:06:03
genericのことかよ
総称関数を普通汎関数なんて言わない
459:デフォルトの名無しさん
09/08/21 22:13:20
普通「汎関数」といえば“functional”の訳語だね。
460:デフォルトの名無しさん
09/08/21 23:19:25
すまん。用語を間違えた。総称関数のつもりだった。
汎関数てのは無いが汎変数てのがあるね。(defsetf)
461:デフォルトの名無しさん
09/08/22 09:53:44
増補改訂版が出るんですな。
URLリンク(www.bk1.jp)
462:デフォルトの名無しさん
09/08/22 10:24:30
>>461
なんでサイエンス社で出さないんだろう。
旧版、持ってるけどお布施で買うか。
因みに未だ読んでない。
463:デフォルトの名無しさん
09/08/22 12:24:33
>>462
旧版って20年も前の本ですよ。
随分と寝かしましたな~w
464:デフォルトの名無しさん
09/08/22 13:59:07
>>463
何年か前に古本屋で買ったんですよ。で、積読になってるんです。
465:デフォルトの名無しさん
09/08/27 20:53:45
汎関数は、単に関数オブジェクトを引数として取って、数値を返す作用のこと。
ところで、CLに確率過程を取り扱えるライブラリってある?
466:デフォルトの名無しさん
09/08/29 22:47:13
funcallってなんのでしょうか
lambda (f x) (funcall f x))
こんなのを定義したときの動きがよくわかりません
467:デフォルトの名無しさん
09/08/29 23:22:46
>>466
頭の括弧が抜けてるだけだよね?
それだと、
変数f と 変数x を引数に取って
変数xの値を引数にして
変数fに束縛されている関数を呼び出すlambda
になってる。
その例だと少しややこしいから、以下の関数と見比べて考えてみて欲しい。
(funcall '1+ 1)
(funcall (lambda (x y) (+ x y)) 1 2)
468:名無しさん@そうだ選挙に行こう
09/08/30 06:43:07
funcallはなんなのか?といわれれば関数適用applyの特殊形態だろ。
469:デフォルトの名無しさん
09/09/15 04:10:49
Lisp Scheme スレは既に墜ちた!残るは我らだけじゃ!
Snow LeopardにしたらSBCLが動かなくなってクマった。Maximaも使えないよ。(*・(エ)・*)
470:デフォルトの名無しさん
09/09/15 05:47:39
>>469
> Snow LeopardにしたらSBCLが動かなくなってクマった。Maximaも使えないよ。(*・(エ)・*)
clisp でやりゃいいじゃん。オレはしぶとく Tiger で Maxima 使ってるけど。
471:デフォルトの名無しさん
09/09/15 05:57:34
最新版の Sage だと ecl で Maxima を動かしてるみたい。昔は clisp 使ってたはずなんだけど。
472:デフォルトの名無しさん
09/09/15 08:59:53
>>466
Scheme出身ですかね?
473:デフォルトの名無しさん
09/09/15 10:40:46
>>469
cmucl とかあかんの?
474:デフォルトの名無しさん
09/09/15 13:12:08
Snow Leopard上のSBCLですが、とりあえずx86_64のバイナリなら動きますよ。
コンパイルするには若干修正が必要です。
475:デフォルトの名無しさん
09/09/15 17:11:18
clispでrequireがasdf:load-opに置き換わるマクロ書いたら不具合おきないのかな
sbclに慣れたので長いタイプが不便
476:デフォルトの名無しさん
09/09/15 20:03:57
>>469
Lisp Schemeスレはとうとうパンドラの箱を開けてしまった。
災厄なのか、キボウなのか。
477:デフォルトの名無しさん
09/09/15 23:23:05
そろそろID導入してアク禁することも検討しないといけなくなったな。
携帯の場合はアカロムになるから覚悟しとけよ。
478:デフォルトの名無しさん
09/09/15 23:34:14
コピペ乙
479:デフォルトの名無しさん
09/09/15 23:37:57
>>478
その態度も今の内だな。
世の中甘くないぜ。
480:デフォルトの名無しさん
09/09/15 23:45:39
甘いところはとことん甘いのが世の中。
481:デフォルトの名無しさん
09/09/15 23:57:31
>>479
勘違いしてるみたいだが、俺は荒らしている人間とは別だぞ。
下らないゴタゴタをこっちのスレまで持って来るなよ。
482:デフォルトの名無しさん
09/09/16 12:21:16
XreaにSBCL突っ込んでCGIやろうとしたらbashに制限かかってて断念
お金ケチると駄目だね
483:デフォルトの名無しさん
09/09/16 12:30:33
Gauche をクロスコンパイルして xrea に転送して使ってる。
SBCL も使えなくはないんじゃないかなぁ。 面倒だろうけど。
484:デフォルトの名無しさん
09/09/16 13:10:50
dreamhostでclispはコンパイルできた
clbuildも途中までは動いた
485:デフォルトの名無しさん
09/09/16 13:47:04
URLリンク(takogeek.rejec.net)
ここのpython実装はどれくらい使えるんだろう
486:デフォルトの名無しさん
09/09/16 17:48:07
windows上で動くlispboxでasdfとcffiが使いたいので
~/.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
となってうまく動かない
参考にしたのは
URLリンク(mono.kmc.gr.jp)
487:デフォルトの名無しさん
09/09/19 16:33:36
上のコメントに感化されてさくらサーバを借りてみましたが、どうも上手くいかないです。
sshを繋いで、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>~%")
うーん、何か間違ってますかね?
488:デフォルトの名無しさん
09/09/19 16:45:14
>>487
そのCGIの名前は? シェルから起動して動く? 権限の設定は?
~% で CR+LF が出力されているか確認した?
489:デフォルトの名無しさん
09/09/19 17:01:39
>>488
ありがとうございます。
名前はtest.cgi、権限は755ですね。改行コードの確認はどうやるのでしょう?
また、シェルで./test.cgiと打ってみると妙なエラーが出ました。
fatal error encountered in SBCL pid 54717:
can't find core file at /usr/local/lib/sbcl//sbcl.core
何故そんなところを・・。
あと、ググっていると関係のありそうなものを見つけたので今試しています。
URLリンク(faroffsea.blogspot.com)
URLリンク(faroffsea.blogspot.com)
とりあえずインストールしたバージョンは1.0.23なので一行目の最後に--scriptを追加するも、駄目ですね。
490:デフォルトの名無しさん
09/09/19 17:35:45
>>489
改行コードは od に出力を渡して調べる
とりあえず、Apacheがshebangを見てスクリプト起動できるようにしないと
先には進めないと思う
なので % ./test.cgi が動くようになるまでファイト
# Action, SetHandler, ラッパースクリプトを使えばなんとかなるかもしれないけど
# そこまでしても労に見合わない気がする
491:デフォルトの名無しさん
09/09/19 17:43:56
windowsでお勧めのCommon Lisp処理系はclispでいいの?
asdf関係がおかしい気もするんだけど
492:デフォルトの名無しさん
09/09/19 19:09:17
WindowsでのおすすめはAllegroだけって言っても問題ないような気がする
493:デフォルトの名無しさん
09/09/19 20:03:58
>>489
ちょっと試してみたんだ
さくらインターネットのスタンダード 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^)/
494:デフォルトの名無しさん
09/09/19 20:09:24
インストール先が/usr/local/*を想定されているから
sbclの起動引数
--core corefilename
を使って$HOME以下にインストールされているはずのcoreファイルの場所指定すればいいだけな気がするが?
495:デフォルトの名無しさん
09/09/19 20:11:01
と思ったらSBCL_HOME設定のうえBus Errorかよ
なんかMC68000を直にさわって落としてた頃を思い出したぜ
496:493
09/09/19 21:10:37
>>494
SBCL_HOME の代わりに --core を試してみたけど Bus Error
これ以上興味本位で引っ掻き回すのも悪いので成功者の報告を待ちます
497:デフォルトの名無しさん
09/09/19 21:21:18
>>496 uname -m の結果は?
498:493
09/09/19 22:11:00
>>497
%uname -p
i386
499:493
09/09/19 22:11:48
ああごめん・・・
% uname -m
i386
500:デフォルトの名無しさん
09/09/20 04:42:30
皆さんありがとうございます
いろいろ試したのですがBus errorですね
改行は問題ないようです
uname -mはi386と出ました
進展があればまた書きます
501:デフォルトの名無しさん
09/09/20 04:43:59
↑489です、すみません
502:デフォルトの名無しさん
09/09/20 08:50:34
xreaでやってみたけど同じエラーが出たよ
報告だけで助けにはなれないけど頑張って
503:デフォルトの名無しさん
09/09/20 11:50:59
>>492
LispWorksじゃ駄目なんか
504:デフォルトの名無しさん
09/09/20 12:26:39
>>503
せっかくIDEがあるのにマルチバイト文字(言語に関係なく)の扱いがぞんざいなので結局オペレーションにslime+emacsになっちゃう
505:デフォルトの名無しさん
09/09/20 18:18:40
URLリンク(code.google.com)
Lisp + 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です。
506:デフォルトの名無しさん
09/09/20 19:27:53
Windowsでうまく行かなくて・・・というのを見るたびに、まずはWindowsを窓から投げ捨て
ましょうと教えたくなってしまうのだが。プログラミングをしたければまず*nixを入れるが吉。
507:デフォルトの名無しさん
09/09/20 23:11:32
必ずしもそうとは言えないけど、
CommonLisp はあまり windows で使うことを考えてなさそうな傾向はあると思う。
508:デフォルトの名無しさん
09/09/21 05:57:08
>>506
えーと、うまくいかない理由は「Windows環境であるから」なんですか?
それとも「Windows版固有の不具合」なんですか?
わからないのなら無理に返事くれなくてもいいんですよ。
一体何がしたいんですか?「自分はWindowsが嫌いである」という信仰の告白ですか?
私はCommon Lispを使いたいんであって、Linuxを使いたいのではありません。
Linuxは環境構築するのに無駄に時間がかかりすぎますし、日本語環境とエディタが
糞すぎるので絶対に使いたくありません。コーディングはWindowsとxyzyyで万全です。
509:489
09/09/21 06:44:35
489ですが、結局駄目でした。CLISPを入れることにします。
ついでに質問なのですが、LispをコンパイルせずCGIで動かす場合、
処理が遅くなるevalやdefmacroは避けた方が良いですか?
それとも皆さんコンパイルして使うのでしょうか。
510:デフォルトの名無しさん
09/09/21 06:49:54
>>508
お前が無知なだけね。
今時のlinuxはインスコと同時に日本語も見れるし、日本語も打てるようにできる。
エディタもemacsで世界最強。 てか、ある程度完成されたエディタはどのOSでも使えるから理由になってない。
自分の使ってるエディタのスペリングを間違えるような厨房にレスするべきではないかもしれんな。
511:デフォルトの名無しさん
09/09/21 07:16:40
>>510
>今時のlinuxはインスコと同時に日本語も見れるし、日本語も打てるようにできる。
>日本語環境とエディタが糞すぎるので
cannaとかいうimmは入れ直さないと使いものにならないよね
512:デフォルトの名無しさん
09/09/21 07:28:54
>>510
> >>508
> お前が無知なだけね。
> 今時のlinuxはインスコと同時に日本語も見れるし、日本語も打てるようにできる。
Windowsと同等以上の手軽さでできるとでも?
日本語環境を構築できる事が必ず保証されてるわけではなく、インストールする環境次第では
日本語を表示できないトラブルが多発しますよね。
余計な手間がかかる上にはるかに見劣りする環境しか無いのがLinuxじゃないですか。
> エディタもemacsで世界最強。 てか、ある程度完成されたエディタはどのOSでも使えるから理由になってない。
emacsは重すぎて話になりませんし、Linuxには買ってきてすぐに使えるWindowsPCほどの便利さがありません。
コーディングの道具とするにはWindows搭載のノートPCとxyzzyを使うのが最適です。
> 自分の使ってるエディタのスペリングを間違えるような厨房にレスするべきではないかもしれんな。
そんな些細な部分しか反撃出来る箇所が見つからなかったんですか?
くだらない人格攻撃をしなければならないような程度の低い人は黙っていて下さい。
513:506
09/09/21 07:35:29
>>508
*nixと書いたのがなぜLinuxに限定されたのかわからんが・・
xyzzy使ってるんなら無理にCL入れずにxyzzy lispで遊んでればいいだろ。
SBCL開発者から見たらWin XPなんて「二級市民が口答えすんなや(゚∀゚)アヒャヒャヒャヒャ」って感じでしょ。
514:デフォルトの名無しさん
09/09/21 07:50:32
>>512 晒し揚げ♪
515:デフォルトの名無しさん
09/09/21 07:52:37
>>513
> *nixと書いたのがなぜLinuxに限定されたのかわからんが・・
えっ?Linux以外に個人ユーザが使う上で現実的な選択肢が他にあるとでもいうんですか?
> xyzzy使ってるんなら無理にCL入れずにxyzzy lispで遊んでればいいだろ。
えっ?LispとSDLを使って遊びたいだけなのに、xyzzyでSDLを使えるようにするところから
自力で書くんですか?そんな非効率的で馬鹿馬鹿しい事なんてしたくありません。
> SBCL開発者から見たらWin XPなんて「二級市民が口答えすんなや(゚∀゚)アヒャヒャヒャヒャ」って感じでしょ。
あー、やっぱり貴方はその程度の人なんですね。煽りたいだけなら黙っててください。
516:506
09/09/21 08:23:02
>>515
Windowsの汚濁から永らく離れてるスノッブで悪いが、そのlibrary.lispのコメントアウトされてるところ
を非コメント化してその下の今ある#+windows部分を代わりにコメントアウトしたらどうなるんだ?
517:デフォルトの名無しさん
09/09/21 08:39:27
>>514
www ワロタ。
>>512は、知能が低いのに「自分の主張 = 真理」
だと頑固に信じきっているようなリアル馬鹿。
他人にとっては、>>512は偏った主観でしかないのにな。
こういった人間は死んでほしいよ。
518:デフォルトの名無しさん
09/09/21 08:59:11
nautilusも糞
519:デフォルトの名無しさん
09/09/21 09:05:07
>>512
asdf-installを動かすだけでめちゃくちゃめんどくさい
そんなんだったらvmware上の*nixの方がはるかに簡単
最終的にslimeに落ち着く結果になるのにxyzzyにこだわるのがワケワカメ
520:デフォルトの名無しさん
09/09/21 09:06:34
関数型言語スレで有名らしいキチガイがLisperを問い詰めたいといってたが、あいつかなぁ
まぁ誰であれ礼儀をわきまえた初心者には親切にすべきだが、おかしな奴はスルーするのがいいぞ
521:506
09/09/21 09:10:44
ドッカン
ドッカン
☆ゴガギーン
.______
. | | |
∩∩ | | | ∩∩
| | | | | | | | | | | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ,,) | | | (・x・ )<オラ!人が教えてやってんだから出てこい>>515!!
/ つ━"....ロ|ロ . | l |U \___________
~( / | | |⊂_ |~
し'∪ └─┴─┘ ∪
522:デフォルトの名無しさん
09/09/21 10:43:24
Linuxはサーバとしては良いけれどデスクトップ環境としてはWindowsに大きく
見劣りしているのは確かでしょう。
LinuxをデスクットップOSとして使用している人は少ないし、
Lispを使っている人は更に少ない。
使用者の裾野を広げなければ将来はありませんな~
523:デフォルトの名無しさん
09/09/21 10:46:38
Mac全盛だったころに
DOS+Windowsに対して
同じことを言っている人がいたね
524:デフォルトの名無しさん
09/09/21 10:54:22
マク全盛と言ってもシェアは10%以下
Linuxは更にそれ以下
525:デフォルトの名無しさん
09/09/21 11:01:51
>>522
Lisp は別に広まって欲しいようなものではない。
526:デフォルトの名無しさん
09/09/21 11:05:19
>>522
CommonLisp をデスクトップマシンで使う意義がそれほど無い。
単に適材適所。
527:デフォルトの名無しさん
09/09/21 11:08:53
>>526
Windowsからtelnetか何かでLinuxに繋いでLispやってんの?
528:デフォルトの名無しさん
09/09/21 11:09:41
Clozure Common Lisp とか ECL とかは Windows でも不都合なく動くよね。
ところで Clozure って clojure と混同しやすくね?
529:デフォルトの名無しさん
09/09/21 11:10:17
漏れ明日からVMWareでXPにLinux突っ込んでLisp勉強するんだ
おまいらやさしくしてね
530:デフォルトの名無しさん
09/09/21 11:11:54
つか、windowsでclコード書いて、動かしてみても、その後どうすんの?
windowsでclサーバー立ち上げるなんて、実用的じゃないし、
単なる時間の無駄じゃね?
windows上でcl書くなんて、授業の宿題以外で何か使い道あんの?
531:デフォルトの名無しさん
09/09/21 12:40:24
>>522
>使用者の裾野を広げなければ将来はありませんな~
2番目に古いコンピュータ言語に対して面白いことをおっしゃいますな~
これだけ長きに渡って活発に処理系が開発されている言語もそう無いですぜ
532:デフォルトの名無しさん
09/09/21 12:40:39
clサーバって何ですか?
533:デフォルトの名無しさん
09/09/21 12:48:04
>>531
それは処理系が開発しやすいのとgccのような決定打が無いからじゃなかろうか?
534:デフォルトの名無しさん
09/09/21 12:53:02
>>515
>> *nixと書いたのがなぜLinuxに限定されたのかわからんが・・
>えっ?Linux以外に個人ユーザが使う上で現実的な選択肢が他にあるとでもいうんですか?
Mac OS X 良いよ。Lisp やる環境としてはかなり恵まれてるし、
デスクトップとしても使い易い。宗教的理由で Mac が使えない
とかじゃなければお薦めです。UNIX としても十分使える。
もちろん Linux でも良いけど、正直 Windows はお勧めしません。
使ってる人が少ないから。
535:デフォルトの名無しさん
09/09/21 12:55:19
>>533
gcc が決定打だとは思えないんだが…
最近ずいぶん賢くなったけど, 昔の gcc の最適化のおばかさかげんときたら………
536:デフォルトの名無しさん
09/09/21 13:23:05
決定打があってはいけない。
多様性が Lisp らしさの根源。
537:デフォルトの名無しさん
09/09/21 13:30:11
フリーの処理系だと一時期 CMUCL が決定打だったんじゃないのかな
その時代はよく知らないけど、何となくそういうイメージがある
538:デフォルトの名無しさん
09/09/21 14:03:37
Cygwinでも導入したらええがな。重いから俺は使いたくないけど。
539:デフォルトの名無しさん
09/09/21 14:12:36
>>536
Common Lispを否定するのか?
540:デフォルトの名無しさん
09/09/21 15:10:04
>>539
「標準的なものも必要だけど, もっと多様なものがあってもええんちゃう」
って言ってるんちゃうの?
541:536
09/09/21 15:27:15
>>539
実装も含めての話。 >>533 は GCC を例に挙げているけど、「C++99を否定するのか?」なんて言ったらナンセンスだろう?
それと同じ。
542:デフォルトの名無しさん
09/09/21 23:46:36
>>516
はい、今さっき帰宅しましたよ。昼間は我慢して下さいね。暇じゃないので。
で、それを試したらコンパイルは通りましたね。
かわりに↓なエラーが出るようになりましたが。
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とかが出たら考えちゃいますが。
543:デフォルトの名無しさん
09/09/22 00:00:54
かまってちゃんのキチガイはスルーでお願いします。
544:デフォルトの名無しさん
09/09/22 00:27:46
失敗してるからリコンパイルでもすればいいんですかね?
545:デフォルトの名無しさん
09/09/22 00:31:42
>>543
えーと、AAを貼りだしたからといって、>>506をかまってちゃんのキチガイ扱いするのは可哀相すぎじゃないですか?
個人的には>>520あたりの脳内仮想敵について語り始めたり、罵倒しはじめる人の方がどうかと思いますよ。