(make-thread :name c ..
[2ch|▼Menu]
116:デフォルトの名無しさん
08/07/21 23:41:40
>>115
そこでエラーが出て添付出来なかったんです。
使い方がマズかったかな。
また試してみます。

117:デフォルトの名無しさん
08/07/22 00:20:32
>>116
確認しました。fdiaryの管理人にお願いしておきました。しばらくすれば使えるようになる
と思います。URLリンク(wiki.fdiary.net) で確認してみてください。

118:デフォルトの名無しさん
08/07/22 00:52:55
>>117
確認ありがとうございます。

119:デフォルトの名無しさん
08/07/22 01:21:24
clisp処理系ってプロファイラないのですか?

120:デフォルトの名無しさん
08/07/22 20:02:53
すいません。
CommonLispでプログラミングをしている中で、
作ったプログラムは関数を定義したファイルを作成しておいて
毎回それをインタプリタにロードして関数を使うのが王道なのでしょうか?
私はプログラミングのときには、
関数をファイルの先頭の方で定義しておいて
後半でUIの部分つまり
(format t "x:")
(setq x (read))・・・・
などとして
ファイルの一行目に#!・・・(インタプリタの場所)
を書き込んで使っています。(つまりユーザーはインタプリタを目にしないで良いようになっている)
これは不純な方法でしょうか?
すこし自分のプログラミングスタイルに疑問を感じてきたのでよろしくお願いします。

121:デフォルトの名無しさん
08/07/22 20:51:43
それで済めば、それでいいのと違う?
ライブラリとして管理したければ、別ファイルにして読み込めばいい。
必要になってからでも遅くない。

122:デフォルトの名無しさん
08/07/22 21:10:37
ありがとうございます。

123:デフォルトの名無しさん
08/07/22 22:30:08
>>119GNU CLISPのこと?それともCommon Lisp一般のはなし?処理系によっては標準で備えてるものもあるし、
別途もってこないとダメなものもある。単純な比較なら標準のTIMEマクロでも結構便利だよ。


124:デフォルトの名無しさん
08/07/22 22:52:20
CLISP なんて略語で Common LISP 一般を指すことは少ないと思う

125:デフォルトの名無しさん
08/07/23 00:01:53
>>120
イメージ生成後にそれを起動する手順なら処理系依存としか言えない。
ポーティング先の都合ってのもあるから。


126:デフォルトの名無しさん
08/07/23 23:27:51
wikiの過去ログですが、 bcvrf.yahoo.comが見つかりませんということで開けませんでした。
共有設定がなされてるでしょうか?よろしければご確認を。
URLリンク(help.yahoo.co.jp)
URLリンク(help.yahoo.co.jp)


127:デフォルトの名無しさん
08/07/24 01:49:59
>>126
報告どもです。
Lisp schemスレはまとめて同じフォルダに入れてるんで、
共有設定のミスではないです。
ミスなら全部見れなくなるはずです。
たぶん、時間かアクセス数でURLが変わるんだと…
ファイル置き場変えながら、直しておきます。

128:デフォルトの名無しさん
08/07/24 17:39:47
Common Lisp入門を参考に、プログラムを書きました。
問題点、改善案など、何かアドバイスをもらえないでしょうか?
動作確認はxyzzyとclispで行いました。
●実現したいこと
ファイルから特定の行を抽出し、その行のみ新たにファイルへ書き出す。
動作確認がしやすいように、行の位置は変えないようにする。
●自分でおかしいと思ってる点
・1行ずつ読み込んでる力ワザ
・progn 使いすぎ?
・引数に nil が使われないように'(10000)を lst にバインドしている所
・行の指定が昇順でなければならない所

(progn
(setq str1 (open "in.txt"))
(setq str2 (open "out.txt" :direction :output))
(setq eos (cons nil nil))
(setq lst '(10 30 400)) ;取り出したい行をリストで指定、必ず昇順
(defun kakikaki (x)
 (setq str0 (read-line str1 nil eos))
 (cond ((eq str0 eos) (princ "STOP"))
     ((< x (car lst)) (progn (format str2 "~%" )
                   (kakikaki (+ 1 x))))
    ((not (eq str0 eos)) (progn (format str2 "~a~%" str0)
                   (setq lst (cdr lst))
                   (and (not lst) (setq lst (list 10000)))
                   (kakikaki (+ 1 x))))
     (t "END")))
(kakikaki 1)
(close str1)
(close str2)
)
よろしくお願いします。

129:デフォルトの名無しさん
08/07/24 17:58:17
>>128
行数はsort関数を使えば自由に入力できるように成ると思う。


130:デフォルトの名無しさん
08/07/24 18:03:53
おれがまずおかしいと思った点
・名前が異常 str0 str1 kakikaki・・ アホか
・破綻したロジック
>・引数に nil が使われないように'(10000)を lst にバインドしている
意味不明。10000行目は必ず出力するってことか?

131:129
08/07/24 18:05:48
>>128
最初と最後を結んでるprognは何のため?
ファイルは基本上から処理していくと思うからいらないような気がする。

132:デフォルトの名無しさん
08/07/24 19:12:06
prognん中にdefun入れて良かったんだっけか

133:デフォルトの名無しさん
08/07/24 19:23:40
釣りなのか本気なのか判断に迷う

134:128
08/07/24 21:00:52
>>129
ありがとうございます。
sort関数で昇順に並べ変えられそうです。

>>130
>名前が異常 str0 str1 kakikaki・・ アホか
これはプログラミングのマナーに反しているということでしょうか?
良かったら、マナーに則った命名を教えてください。
>>破綻したロジック
>>・引数に nil が使われないように'(10000)を lst にバインドしている
>意味不明。10000行目は必ず出力するってことか?
関数に nil を渡さないようにしたいのですが、上手いやり方が分かりませんでした。
そこでこのプログラムを使うつもりのファイルにはありえない行数を使い、
ファイルの終端まで入力を続けるようにしました。

>>131
>最初と最後を結んでるprognは何のため?
xyzzy の lisp-interaction-mode で Ctr-J 一回で動作させるには?
と、考えて書きました。どうもかなりマズイんですね。

>>132
>prognん中にdefun入れて良かったんだっけか
良いかどうか、考えずにやってしまいました。

>>133
>釣りなのか本気なのか判断に迷う
本気です。
初心者対象のスレだと >>1 にあったので、投稿しました。
プログラム経験は fortran で数値計算の入門を経験した程度です。
他に相応しいスレがあれば誘導をお願いします。

135:デフォルトの名無しさん
08/07/24 22:01:25
>>134
まあ焦らないことだな
URLリンク(www.geocities.jp)

基本を頭に入れないうちに強引に書くことができなくもないが
そういうのは発想が根本から違うので直す気にもならない

質問したければ別に構わないが
なんでも掲示板に聞きに来るのはかえって効率が悪い

136:129
08/07/24 22:08:47
>>134
がんばれ
>>最初と最後を結んでるprognは何のため?
>xyzzy の lisp-interaction-mode で Ctr-J 一回で動作させるには?
>と、考えて書きました。どうもかなりマズイんですね。

なるほどそれならわかった。
windowsでは一行目に#!〜ってやつはできないんだっけ。

>>All
UNIXの一行目に#!〜ってやつはなんと言う名前でしたっけ。
毎回こう書くのは大変なので技術名を教えてください。

137:デフォルトの名無しさん
08/07/24 22:26:05
>>132
初心者では普通はしないが、マクロでまとめてマクロや関数を作るときは
ないことはない。

>>136
わすれた。それだけは検索で引っ掛けようにも簡単に引っ掛けられないね。

>>134
フォートラン的なlispはつくれるけど、(グリーンブラット的とも言う。)
lisp的に見えないのが弱点かな。もう少ししたらいい参考書が発売になるし
手に入れてみたらいいよ。

138:デフォルトの名無しさん
08/07/24 22:35:21
たしかシェバングだっけ?
>>134
焦らず頑張れ

139:デフォルトの名無しさん
08/07/24 22:39:13
shebang というらしい
URLリンク(en.wikipedia.org)(Unix)
が、「一行目に#!〜ってやつ」のほうが通じやすいと思う。w

140:129
08/07/24 22:44:59
>>137-139
ありがとうございます。
通じるのはUNIX板だけかもしれないですね。
ググっても0件だったので検索に引っかからなかったので困ってました。
ありがとうございます。

141:128
08/07/25 00:24:41
>>136
>>138
励ましが嬉しかったです。
作ってみたい気持ちが先走り過ぎてました。

sort関数は凄いです。
おかげで昇順に並べ替えられるように直せました。ありがとうございました。
sort は偶数や奇数でも並べ替えできるようで、調べるうちにどんどん使ってみたくなります。
Common Lisp入門に載ってない、この関数を知れたことが大収穫です。

>>135
> 質問したければ別に構わないが
> なんでも掲示板に聞きに来るのはかえって効率が悪い
ずっと本を読みながら試行錯誤していて、とりあえず動作したところで途方にくれてしまい、
思わず勢いで書き込んでしまいした。
動作するけど、何かが違う感がぬぐえなかったです。
ご指摘の通りまるで基本ができていません。反省します。

>>137
>lisp的に見えないのが弱点かな。もう少ししたらいい参考書が発売になるし
>手に入れてみたらいいよ。
発売する頃には、いい参考書のその良さがわかるようになっていたいです。

僕の書き込みに時間を割いてくださった方々、ありがとうございました。

142:デフォルトの名無しさん
08/07/25 01:17:01
>>128Common Lisp入門って書籍?俺はこの場合だとNILは別に困らないなぁ。
一人で悩むよりはどんどん相談したほうがいいと思う派。どーせ最近はネタもないし。
こんなんなった。open は with-open つかえば安心確実。loop 使えば(ANSI CLなんできっとxyzzyでは動かないけど)
ループ毎に i を 1 ずつ増やし、line 一行呼んでソート済みの lst の先頭と行番号を比較して〜。

(defun kakikaki (lst &key (input "in.txt") (output "out.txt")
&aux (lst (sort lst #'<)))
(with-open-file (in input :direction :input)
(with-open-file (out output :direction :output :if-exists :supersede)
(loop for i from 1 by 1
for line = (read-line in nil :eof)
until (eql line :eof)
do (cond ((eql i (car lst))
(write-line line out)
(setf lst (cdr lst)))
(t
(write-line "" out)))))))

143:デフォルトの名無しさん
08/07/25 01:49:18
こんなん見つけた

URLリンク(cadr.g.hatena.ne.jp)

144:デフォルトの名無しさん
08/07/25 04:08:11
>>143
うはぁ、時々伺うサイトで速攻取り上げられているとは。

145:128
08/07/25 07:05:14
>>142
> >>128Common Lisp入門って書籍?
はい、岩波から出ている本です。
> こんなんなった。open は with-open つかえば安心確実。
わざわざ、書いていただいてありがとうございます。
僕の知識不足に配慮してもらってるようで、助かります。
CLISP で動作できました。
キーワードの使い方など、知識と理解があると出来ることが広がるんだと思えてモチベーションが上がります。
> ループ毎に i を 1 ずつ増やし、line 一行呼んでソート済みの lst の先頭と行番号を比較して〜。
loop に関する記述が手元の本に少ないので、これから検索しながらこのプログラムを読み込んでいきます。
だんだん楽しくなってきました。


でも・・・・・・
比べて振り返ってみると、今更自分のプログラムの幼稚さがよく分かる (´・ω・`)
得るものが大きかったんで後悔はないが……  恥ずかしぃ orz OTZ
>>128 はなかったことに…… 見た人の ( ゚д゚)ポカーン が目に浮かぶよぅ〜
専ブラ使ってる人はあぼーんしてくれーヽ(`Д´)ノ

あと3日でdat落ちしてくれないかな、このスレ(´・∀・`)

146:デフォルトの名無しさん
08/07/25 08:27:14
>>145
元コードの主旨に従った物を書いてみた。
xyzzy は使ったことないんで通るかどうかは不明だが…

(defun kakikaki (lines &key (in-file "in.txt") (out-file "out.txt"))
(with-open-file (is in-file)
(with-open-file (os out-file :direction :output :if-exists :supersede)
(labels ((rec (count lines)
(let ((l (read-line is nil :eos)))
(cond ((eq l :eos) "END")
((eql (car lines) count)
(write-line l os) (rec (1+ count) (cdr lines)))
(t (write-line "" os) (rec (1+ count) lines))))))
(rec 1 (sort lines #'<))))))
(kakikaki '(10 30 400) :in-file "in.txt" :out-file "out.txt")

loop 極めるのは結構大変なんで時間かけて覚えた方がいいと思う。


147:デフォルトの名無しさん
08/07/25 08:33:35
>>145
入門者にいきなりエレガントなコード書かれたら、
この道のプロの人たちは失業の危機じゃないか?

自分のコードの拙さを気にする奴は伸びる。
地道に頑張れ。

148:デフォルトの名無しさん
08/07/25 09:48:28
読む価値のあるコードを書く凄いプログラマが登場したら楽しいじゃないか。

149:デフォルトの名無しさん
08/07/25 10:32:01
こういう良い志を持ったプログラマ希望の人が
増えますように・・・・・
Lispプログラマに幸あれ

150:デフォルトの名無しさん
08/07/25 13:17:58
>>147
プロにはエレガントでないコードの需要が山のようにあるので失業しませんよw

151:デフォルトの名無しさん
08/07/25 18:12:53
>>150
んまぁ。。
最適化をやりだすとかなり泥臭いコードに変わるから、どろどろした速いコードは多いと思うよ。
マクロを使わなければ…

152:デフォルトの名無しさん
08/07/25 20:03:01
「エレガントでないコードの[後始末]という需要」だったらかなりイヤゲ

153:128
08/07/25 22:24:55
>>146
> >>145
> 元コードの主旨に従った物を書いてみた。
これはすごく参考になります。
自分で作っていて、関数定義の中で with-open 使った上で再帰すると、 close せずに再びファイルを open しようとしてエラーになるだろうし、lambda式では関数に名前を付けらず再帰できないし、と悩んでた部分が解決されてる!!
局所関数と局所変数をあわせて使うんですね。
自分の分かってなさもよく分かってくる…
それでも視界が広がった感じがあります。
> xyzzy は使ったことないんで通るかどうかは不明だが…
xyzzy では write-line が定義されてないので、そこを format で書き換えるだけで動きました。
ありがとうございました。

>>147
はい、地道にやっていきます。
ここ数時間で本に貼った付箋の数が、今までの5倍以上になって充実した時間が過ごせてます。
こんなに興味をもってプログラムを読めるとは、思わなかったです。

154:デフォルトの名無しさん
08/07/25 23:47:14
ふっふっふっふ。。。大量に平積みだよ。
URLリンク(raido.sakura.ne.jp)

155:デフォルトの名無しさん
08/07/26 00:40:42
>>154
AMOP 誰か、訳さんかのぉ
OO 系の LL user には福音のはずなんじゃが…


156:デフォルトの名無しさん
08/07/26 00:45:50
発送通知まだ来ない(´・ω・`)

157:デフォルトの名無しさん
08/07/26 01:28:40
>>153
> 関数定義の中で with-open 使った上で再帰すると
ここがそもそも勘違いのもとだと思う. 先にファイルって言う実体があるわけだ.

stream の実体はファイルでもいいし文字列でもいし ...中略... でもいい
何かの stream から読んで、その他の stream に出力する. で, 読み書き対象は?
と, 考えた結果が >>146 だと思う.

ちなみに >>146 の with-open-file は, 入出力をファイルに割り当てる操作.
(with-open-file (is ... ==> (with-input-from-string (is ...
(with-open-file (os ... ==> (let ((os *standard-output*)) ...
でも動作したりしないかい?


158:デフォルトの名無しさん
08/07/26 01:57:30
common lisp のシンボル早見表だって。
URLリンク(clqr.berlios.de)


159:デフォルトの名無しさん
08/07/26 05:41:24
>>158
GFDL だね。訳しても問題はおこらないかも。

160:デフォルトの名無しさん
08/07/26 05:52:31
まぎらわしいからその終助詞「かも」はやめなさい。
>>158
よく出来てるねえ。

161:デフォルトの名無しさん
08/07/26 07:25:34
ブルータス、お前かも

162:デフォルトの名無しさん
08/07/26 11:08:56
人気の高い「モカ」の使用休止が 相次いでいる。輸入の98%以上を頼っているエチオピア産から基準値以上の残留 農薬が 検出され、
厚生労働省が事実上、輸入にストップをかけている為。これに伴い、ヤミ業者による「カモ」の代替使用が急増し社会問題となっている。

URLリンク(headlines.yahoo.co.jp)

163:デフォルトの名無しさん
08/07/26 12:07:37
>>158
美しい!

164:デフォルトの名無しさん
08/07/26 12:13:17
>>128
CommonLispをもっと勉強するとさらにいろいろ発見があるよ。
たぶんまだ普通の言語みたいに行単位で Lisp 関数を書いている頃だとおもうが、
そのうち、ふっと行じゃなくてS式としてとらえられるようになる。
それからがまた楽しいのだよ。

165:デフォルトの名無しさん
08/07/26 17:02:14
pythonのimportに相当するのはasdfだと思っていいのでしょうか?

(require 'hoge)
で呼び出すように変更する手間がめんどい

166:デフォルトの名無しさん
08/07/26 19:56:36
>>154
買ってきた、せっかく大型書店へ行ったので他にもかったら3万ほど消えてしまった。


167:デフォルトの名無しさん
08/07/26 22:40:02
>>154
嬉々として、平積みされてる実践Common Lispを撮影している、
おまいを想像してワロタ。
同士ダナ!

>>158
これは3000円以上の価値があるな。
オレにとってはだが。
めっちゃ、ありがとう!!!

168:デフォルトの名無しさん
08/07/26 23:22:38
ちょっと奥さん、実践CLの正誤表ができましたわよ!
URLリンク(pcl.lispuser.net)

169:デフォルトの名無しさん
08/07/27 07:05:47
>>165
んだ

170:デフォルトの名無しさん
08/07/27 14:15:06
で、実践Common Lispって買う価値あったの?

171:デフォルトの名無しさん
08/07/27 14:21:41
人による

172:デフォルトの名無しさん
08/07/27 14:42:51
まだ序盤の三章まできたところですがポールグレアムANSIコモンリスプより例が平易だと思いました。達人のひとには物足りないのかもしれません。

173:デフォルトの名無しさん
08/07/27 16:27:50
おもしろさはNorvigほどじゃないYO!

174:デフォルトの名無しさん
08/07/27 16:29:02
原文は読めるんだからちょっと高いかな
そのぐらいの値段にならざるを得ないのは分かるが

175:デフォルトの名無しさん
08/07/27 16:42:22
英語すらすら読めない俺歓喜!
英語読めばいいとか言ってるムカつく野郎に追いつける。
日本語\(^o^)/

で、いつ届くんだAmazon

176:デフォルトの名無しさん
08/07/27 17:01:07
とっくにbk1から発送済なのにメール便でいつ届くか判らん俺、涙目

177:デフォルトの名無しさん
08/07/27 17:11:20
落ち着け まだ慌てるような時間じゃあない

178:デフォルトの名無しさん
08/07/27 17:14:17
例はともかく能書きが鬱陶しいのな
wktkしてるおまいらも読み飛ばすと思うけど

179:デフォルトの名無しさん
08/07/27 18:07:55
柿の種のピーナツみたいでああいうの実に好きなんだが

180:デフォルトの名無しさん
08/07/27 18:26:04
178はピーナッツ嫌い。でピーナッツが多いからダメといっとるんだろう。
C言語撃退塾とか読ませたら許せなくてマジギレするタイプとみた。

181:デフォルトの名無しさん
08/07/27 18:56:42
鬱陶しいブログ書いてるのはお前らか
キー!!

182:デフォルトの名無しさん
08/07/27 19:10:59
ごめん、ちょっとマジで意味わからん。ブログなんて持ってないけど……

183:デフォルトの名無しさん
08/07/27 19:34:17
>>181
オレオレ

184:175
08/07/27 22:09:27
能書きが欝陶しいのか…。なんか萎えたのでキャンセルした。
なんかオススメある? >>178

185:デフォルトの名無しさん
08/07/27 22:14:09
読み飛ばせばいいじゃん・・・

186:デフォルトの名無しさん
08/07/27 22:16:05
翻訳ものはたいていそんな感じでしょ
中はイイこと言ってるのに前置きに大演説が入るの

187:デフォルトの名無しさん
08/07/27 22:25:49
夏だなぁ。。。
おまえら、そんなことばかり言ってたら良書が出てきても日本語
を作ってくれる人がいなくなるぞ。
彼らの努力で出版までたどり着けて日本語で読めるってことのあ
りがたさをなぜ理解できない?

188:デフォルトの名無しさん
08/07/27 22:41:00
夏だなあ
誰も日本語にケチはつけていない

189:デフォルトの名無しさん
08/07/27 22:44:39
>>184
そんなわがままな子には何も勧められません

190:175
08/07/27 23:08:24
ちょっと勉強してみようと思ったのに週末オワタ\(^o^)/
なんなんだよー。ワクテカしてる人を見ると嫌がらせしたくなる人だったのか?

191:デフォルトの名無しさん
08/07/27 23:19:26
そんなにブレてどうすんの
中身が悪いとかいう話は出てないのに・・・

192:デフォルトの名無しさん
08/07/27 23:19:31
>>190
どんな本でもケチをつけようと思えばつけられる。それを踏まえて
匿名の所のレスを読んでたらいい。匿名は悪口を言うのが主流だか
らな。そのうちブロガーも書評を書くだろうから匿名よりそちらの
方が信頼できるだろう。どうせdanさんとか書くだろ。

>>188
わかっちゃいねーな。日本語にケチをつけなくても訳者が萎縮する
ようなことをいってれば日本語訳が公開されなくなるよということ
だ。丁寧に書かないと理解はできないかもしれないが、ここは数行
のレスにするほうが好まれるから、行数が6行以上つかうのは、控え
てるのだ。おまえら長文ウザいというだろ?

193:デフォルトの名無しさん
08/07/27 23:24:02
それに、日本語にケチをつけるとは書いてないんだが。

194:デフォルトの名無しさん
08/07/27 23:24:12
てか原文しか見てないけど悪くないよ
別の本で概略が頭に入ってた方がいいと思うけど

195:デフォルトの名無しさん
08/07/27 23:28:56
>>187
>>192

こんなに過剰反応する必要があるほど叩かれてないと思うんだが

196:デフォルトの名無しさん
08/07/27 23:35:59
たった一言でキャンセルとか言う人が出たからでしょ。
潔癖症だなw

197:デフォルトの名無しさん
08/07/27 23:41:30
訳者が萎縮するとか心配しすぎ

198:デフォルトの名無しさん
08/07/27 23:57:48
だよな。いやよいやよも好きのうちっつーか、批判の多い本ほど売れてるもんだよ。

199:デフォルトの名無しさん
08/07/28 08:57:00
>>197
萎縮した訳者が書いたなら心配しすぎとも言えないだろw

200:デフォルトの名無しさん
08/07/28 09:50:36
書評なら原文があるんだから日本語版がなくてもできたはずだな
やたらwktkしてたけど内容わかってなかったんかい

201:デフォルトの名無しさん
08/07/28 10:07:58
schemeを組みこんだemacsもどきなエディタの習作というのはたまに見ますが
sbclとかを組み込んだemacsもどきの習作ってありますか?

202:デフォルトの名無しさん
08/07/28 10:55:32
>>201 sbclとかを組み込んだの意味がイマイチ把握できないが
common lisp で書かれたemacsもどきのエディターならある


203:デフォルトの名無しさん
08/07/28 11:42:24
>>201
CMLCL
> ・an Emacs-like editor implemented in Common Lisp.

204:デフォルトの名無しさん
08/07/28 12:20:15
sbclを組み込むってのは、そのemacsもどきを作る時sbclのソースか共有ライブラリを
そのまま再利用するって意味だと思うぞ

205:デフォルトの名無しさん
08/07/28 12:31:56
組み込むってのは、
エディタありきで拡張言語として〜を
って考え方なんだろうと思うけれど、
解答者はその言い回しにこだわることはないと思う。

206:デフォルトの名無しさん
08/07/28 14:31:25
変数のスコープが変な以外はemacs lispもcommon lispと大まかには一緒
とにかく長い名前変数名つければどっちでも動くと思う

207:デフォルトの名無しさん
08/07/28 15:18:23
それはない

208:デフォルトの名無しさん
08/07/28 15:39:03
>>206
lambda関数一つとっても使い方が違う

209:201
08/07/28 16:00:12
ありがとうございました
CMLCLというのは見付けられませんでしたがclimacsというのを見つけました
結構長続きしているプロジェクトなんですね
こちらの環境はビルドできませんでしたのでコードを眺めていました
emacs本家のCコードと違って吐き気がしないのがいいですね

sbclとかを組み込むと云々というのは、
近代的で、マルチタスクの、高速なlispを備えたemacsクローンが欲しいってだけです
sbclが例なのは、簡単なsumで比べてもelispとは段違いで、「elispもこんなのだったらいいのに」っていう願望です

210:デフォルトの名無しさん
08/07/28 17:03:25
>>209
URLリンク(www.cons.org) のhemilock

211:デフォルトの名無しさん
08/08/01 00:01:04
Emacsのinfoでhyper specとか見れたらいいのになぁ
html2texiとか作れるのかな?
dpans2texiっていうのを見つけたけどftp鯖にデータが無くて使えないのに
もっと早くからcommon lisp触ってればよかったよ‥
ここの人達でemacs使ってる人なら皆texi版のdpANS持ってそうだなぁ

212:デフォルトの名無しさん
08/08/01 00:27:20
>>211
> Emacsのinfoでhyper specとか見れたらいいのになぁ

当然だけど見れるよ

213:デフォルトの名無しさん
08/08/01 00:31:06
>>212
マジでやりかた教えてください
html2texiを見つけてきてhtml->texi, そこからmakeinfoでtexi->info
と変換しようとしてるんですけどもう@Iとか変なコマンドを生成しやがって
修正が大変です‥
これならperlか何かで専用の変換スクリプト書いた方がいいかってぐらいに

214:デフォルトの名無しさん
08/08/01 02:03:59
>>213
URLリンク(www.emacswiki.org)

215:211
08/08/01 22:08:59
>>214
HTMLのまま見るやつですか、w3mを入れれば使えそうですね

結局dpans3で検索したら新しい場所が見付かり
dpans2texiで難なくinfoが作れました
でもhyper specの方が新しいんですよね…

216:デフォルトの名無しさん
08/08/02 14:04:38
基本となるデータの構造を全てリストで保持した場合には、
そのデータへのアクセスをcar, cdr 等の組み合わせのみ記述すると
可読性が著しく落ちることが良く有ると思います。
その場合に皆さんは普通にマクロのみで対処しますか?
それとも明示的に defstruct や CLOS を使いますか?

カプセル化だけしたい所で CLOS を使うと
なんとなく別の意味で面倒になった感じがします。
例えばリストだけなら copy-tree で済む所が
copy constructor みたいなものを書くのが面倒だとか、
コード記述に関するオーバーヘッドが大きいと思うのです。
まあ MOP は知らないのがいけないのかもしれないのですが。

217:デフォルトの名無しさん
08/08/02 14:17:35
>>216
リストの欠点がひとつも書かれてないけど、なんで迷うの?
可読性の問題はマクロで解決したんでしょ
パフォーマンスについては何とも言えないし、とりあえずリストでいいじゃん

218:デフォルトの名無しさん
08/08/02 14:48:10
>>206 そうですね〜。確かに。

カプセル化のみが重要な場合に CLOS が必要になる事例があるのかな?
という別の疑問だったのかもしれません。
C++ でクラスを使う時はカプセル化の意味は大きいのですが、
Lisp ではマクロがある以上、CLOS の出番があるのだろうか?と言う事です。
まあ、CLOS を、マクロのみで記述している処理系では実は意味がない疑問で、
結局はリストとマクロのみでしょ。って言われそうですが。w

219:デフォルトの名無しさん
08/08/02 14:49:19
>>217 の間違い。

220:デフォルトの名無しさん
08/08/02 17:14:47
>>216
内容によるけど、defstructやCLOSを使いますよ。ランダムアクセスをさせるような
木の特定部分に直接いじるような使い方をする場合はリストは使わないですね。

CLOSと構造体のオーバーヘッドの違いは、同じプログラムを作ってtimeをとれば、
コンシングの多さも含めて分かりますから、実際にベンチをとってください。

CLOSと構造体、リストはどんな楽をしたいのか?何を重視するのか?で変わってきますね。

221:デフォルトの名無しさん
08/08/02 18:41:15
短いプログラムならともかく、普通アクセサを作るんじゃないの?

それと、マクロマクロっていうけど、アクセサ程度はインライン関数を使う。
マクロだとfuncallが出来なくなるし、デバッグも面倒になる。

あと、処理系によっては構造体よりコンスを使ったほうが速い場合もある。

とりあえず、アクセサ作って実装を隠蔽しておく。実装はリストでやっとく。
で、あとでパフォーマンスが問題になったらプロファイリングして、インラ
イン宣言いれたり、構造体等で置き換えたり、って感じ。

222:デフォルトの名無しさん
08/08/02 19:00:48
>>216
普通は>>221のいうようにリスト操作して必要な情報を取り出す小さい関数を
定義する。例が欲しければSICPでも見てみればいい。

223:デフォルトの名無しさん
08/08/02 22:25:18
>>216
ケイスバイケイス。そういうとこでセンスの良い選択をするのが腕の見せどころ。
つまり、一概に「こうするのが良い」という解は無い。

224:デフォルトの名無しさん
08/08/03 13:07:46
多くの変数に同一の値を代入したくてマクロを書きたいのですが、
どのように書けば良いのでしょうか
一つの値を返す式またはデータと変数のリストを引数にとり
実行すると式orデータの値が変数に代入される。マクロです。

(multi-setf 3 '(a b c d))とすると

>>a
3
>>b
3

とできるようになるマクロです。

225:デフォルトの名無しさん
08/08/03 13:33:42
シンボルの値、ならリストにできるけど変数はリストにはできないです。
(defun multi-set-fn (value symbols)
(dolist (sym symbols value)
(setf (symbol-value sym) value)))
これなら (multi-set-fn 3 '(a b c d)) とかけるけど設定できるのは
変数ではなくシンボルの symbol-value スロットの値。
(defmacro multi-set-macro (value &rest symbols)
(let ((v (gensym "multi-set")))
`(let ((,v ,value))
,@(loop for sym in symbols
collect `(setf ,sym ,v)))))
マクロにすると変数にも設定できるが、渡せる変数は関数のように実行時に
決定することはできない。
(let (a b c d)
(multi-set-macro 3 a b c d)
(list a b c d))
シンボルと変数の概念を混乱している予感がする。

226:デフォルトの名無しさん
08/08/03 13:33:59
>>224
(defmacro multi-setf (atom list)
(let ((foo (loop for p in list collect `(setf ,p ,atom))))
`(progn ,@foo)))

細かい問題点の検証はしてないよ。
あまりおすすめ出来ないな。

227:デフォルトの名無しさん
08/08/03 13:35:20
>>226
* (macroexpand-1 '(multi-setf (+ 1 1) (a b c d)))

(PROGN (SETF A (+ 1 1)) (SETF B (+ 1 1)) (SETF C (+ 1 1)) (SETF D (+ 1 1)))
T


228:デフォルトの名無しさん
08/08/03 13:38:54
似たような質問が前にもいくつかあったが、
普通なら関数とハッシュテーブルを使うところに
なぜかマクロとsymbol-value等を使いたがるんだな。

他にも、リストを使うか構造体を使うか、とか、
やり方が2通り以上あると迷う人がいるのも気になる。

229:デフォルトの名無しさん
08/08/03 13:45:52
すいません
回答ありがとうございます。
じつは研究の過程で
100ぐらいの変数に同じ値を入れてある式に入れて結果の分布とかを求めなければ
いけない事体に陥りまして、Lispは少年時代から触れている言語なので
ぜひともLispで実装したく思いまして。
ありがとうございます。

230:デフォルトの名無しさん
08/08/03 13:53:14
>>229
なるほど、それなら、変数に配列を使った方が扱い易いと思うよ。
(setf arr (make-array 100 :initial-element 3)) とかすれば、いいし。
あるいは
(setf lst (make-list 100 :initial-element 3))とかね。
少なくとも、それだけ変数があるなら自動化が出来る方法を探さないと骨が折れるよ。

231:デフォルトの名無しさん
08/08/03 14:10:29
少年時代から…だと…。なんという期待の超新星。ついに次世代のLisper登場か。

232:デフォルトの名無しさん
08/08/03 14:12:27
より一般的に引数の固定を使ってやりたいな
C++のbindとかschemeのcutみたいにさ
(mapcan (bind #'setq _1 3) '(a b c d))
標準でありますか?

あと子供の頃からLispって羨ましすぐる…

233:デフォルトの名無しさん
08/08/03 14:43:42
>>230-232
ありがとうございます。
>>231
いえいえ、諸先輩方には遠く及びません。
精進いたします。

234:デフォルトの名無しさん
08/08/03 14:52:36
>> 232
なんか知識と書いてるコードがちぐはぐね。

235:デフォルトの名無しさん
08/08/03 19:19:14
Lispでアプリケーションを作っている物としてはどんな物が有りますか。
EmacsはLispからXwindowsを呼び出しているのでしょうか?
いまいちLispアプリケーションの配布方法がわからず困っています。


236:デフォルトの名無しさん
08/08/03 19:40:25
Lispだからどう、でなく、各処理系ごとに流儀が違うだよ。

237:デフォルトの名無しさん
08/08/03 19:52:37
clispです。
Ltkという物はMacOSXでも動くようなので導入したいのですが
asdfやasdf-installの仕方がわからず困っています。
ネット上の情報もMacOSX10.5対応の物かどうかが定かでないのですが、
Clispでのasdf系のインストールでおすすめのサイトをよろしくお願いします。

238:デフォルトの名無しさん
08/08/03 20:26:23
>>237
URLリンク(www.cliki.net)

239:デフォルトの名無しさん
08/08/03 20:37:52
asdfはできましたがasdf-installが難しくて挫折しました。
ありがとうございました。

240:デフォルトの名無しさん
08/08/03 20:40:49
もしかしてasdfさえ有ればasdファイルを手動でとる事を我慢すれば良いのでしょうか
そうするとasdf-installは不要なので大丈夫そうです。
ありがとうございました。

241:デフォルトの名無しさん
08/08/04 10:10:34
>>224
代入される方(リスト)を第一引数にして欲しいなあ。

242:デフォルトの名無しさん
08/08/04 15:54:41
>>235の言う「アプリケーション」って、
「GUIアプリケーション」に限定されてるの?
X Windowうんぬんのところは何を言おうとしているのか分からない。

243:デフォルトの名無しさん
08/08/04 20:18:13
エンドユーザーにも受け入れられるGUIアプリケーションを作りたかったのです。
通常のアプリケーションと同じように簡単に導入できるアプリケーションを作成したいのですが。
Lispでは方法がわからず困っていました。C言語ではGUIアプリケーションは作る事が難しい
と聞いていたので、Lispでも同じなのでしょうか?
Lispで作られたGUIアプリケーションはどんな物が有るか調べた所楽譜作成ソフトなどが
見つかり少し安心しているのですが、ああいった物はどのようにしているのでしょか?


244:デフォルトの名無しさん
08/08/04 21:59:50



ひみつです


245:デフォルトの名無しさん
08/08/04 22:25:50
GtkやQT辺りをCで叩けるようになってから出直してこい。
もしくはtkで我慢汁

246:デフォルトの名無しさん
08/08/04 22:38:22
Windowsだと洛陳だよ

247:デフォルトの名無しさん
08/08/04 22:57:26
LispとかUnixはWeb系ってかんじですか?

248:デフォルトの名無しさん
08/08/04 23:04:12
楽譜作成ソフトと言われてもなぁ。McCLIMとかのCLIMを使ったやつかLispWorksのCAPI製のやつか…。

Lisp用のGUIライブラリを備える処理系ACL,LispWorks,MCLとかならそれなりのGUIが作れる。
LispでもOpenGLやCLX、Win32 APIを直接叩くとCとそんなに手間はかわらない。
が資料はメジャーな言語にくらべると少ない。

名前を聞いても想像できないなら、いきなりLISPでGUIに挑戦するのは初心者にはお勧めできない。
資料の少ないからどーでもいいところで詰ってしまう可能性が高い。

249:デフォルトの名無しさん
08/08/05 00:50:02
英語ドキュメント読めないとすぐに手詰まりだろうしな。

250:デフォルトの名無しさん
08/08/05 11:17:23
>OpenGLやCLX
これは昔使った事が有ります。(UNIXとMac意外はあまり詳しくないのでWin32 APIはわかりません)
MacOSXだとAPIはCocoaになると思うのですが
clispなどの処理系でもCocoaは呼び出せるのでしょうか?
OpenMCLを使うしか無いのでしょうか?
それと、
>LispでもOpenGLやCLX、Win32 APIを直接叩くとCとそんなに手間はかわらない。
これはどの処理系でも良いのでしょうか?

251:デフォルトの名無しさん
08/08/05 11:58:31
CommonLispで改ページはどのようにすれば良いのでしょうか?


252:デフォルトの名無しさん
08/08/05 12:59:47
>>251
(terpri)

253:デフォルトの名無しさん
08/08/05 13:06:11
Allegro common lispのフリーのダウンロードしてみたんですが使い方がさっぱりわかりません。
本はCommon lisp入門っぽい名前のやつとOn LISPしか持ってないです

254:デフォルトの名無しさん
08/08/05 13:08:26
そうですか。

255:デフォルトの名無しさん
08/08/05 13:13:08
>>252
そりゃ改行だがね

256:デフォルトの名無しさん
08/08/05 13:55:25
改頁文字を出力するということだと、
(print #\Page)
(format t "~|")
なのかもしれない。

257:デフォルトの名無しさん
08/08/05 14:04:41
>>252,>>256
ありがとうございます。
>>256
処理系はclispなのですが、(print #¥Page)とすると
[2]> (print #¥Page)

#¥Page
#¥Page
となっておしまいなのです。これはどうしてでしょうかよろしくお願いします。
求めているのはUNIXのclearの様な機能です。

258:250
08/08/05 14:09:05
OnLisp,CommonLisp入門などの本が手元に有るのですが、
どちらもCUIアプリケーションの作製法は書いてあるのですが
GUIアプリケーションの作製法などについて触れている本が有れば
紹介お願いします。

259:デフォルトの名無しさん
08/08/05 16:00:22
>>258
URLリンク(www.cliki.net)

調べた情報を日本語blogかどっかたにまとめたらいろんな人に感謝されるよ


260:250
08/08/05 16:10:02
>>259
それはそのサイトの内容をと言う事でしょうか?
以前からLispをもっと活発にする活動をしたいと思っていたのですが
そのようにできたらうれしい限りです。

261:デフォルトの名無しさん
08/08/05 17:20:18
wikiの内容じゃなくて、wikiから辿れるページを纏めることになると思う

262:250
08/08/05 17:57:45
まとめるためにWikiページを作成したく思います。
何かベストな名前が有りましたらよろしくお願いします。
JCLikiだとあまりにも芸がないので

263:デフォルトの名無しさん
08/08/05 18:26:08
既に最近このスレ関係でwikiができて、
URLリンク(wiki.fdiary.net)
にwikiがありますよ。

あと、common-lisp-users.jpは空いてるようなので、ドメイン取って運用とか、
Smalltalk-users.jpみたいに、
google sitesで作るとか、
URLリンク(sites.google.com)

形とか運用方法にこだわっても利用されなければ意味がないので、
私は、
URLリンク(wiki.fdiary.net)
を育てるに一票

264:250
08/08/05 18:36:11
そうですか・・・・
ありがとうございます。
スレ独自の物に手を加えるのは私は心配なのですが、
2年前にじぶんで作った
`(CommonLisp Wiki)という全く何もおこっていないサイトが有ったのを
思い出したのですが、そちらに情報を蓄えて行く訳にはいかないでしょうか
全く何もないですが以下URL
URLリンク(www6.atwiki.jp)


265:デフォルトの名無しさん
08/08/05 18:49:16
自分である程度まで育ててから他に人にも支援を頼むって流れは良く見るが
全部他人任せワロスww

266:デフォルトの名無しさん
08/08/05 18:50:15
いや、志は全く同じなので、URLリンク(wiki.fdiary.net)
を勝手に改変して行けば良いのではないでしょうか。
編集しにくいということであれば、そちらのwikiにメインの記述をして、
リンクだけ貼るという手もありますね。

267:250
08/08/05 18:55:09
>>256
スマソ、トップページのメッセージは気にしないでください。
あれは開発当初はもっと熱心に改造して行くつもりだったので
あのような文章に成っています。
今リアルタイムでQ&Aページを作成してるので気になる点など有りましたら
よろしくお願いします。

268:デフォルトの名無しさん
08/08/05 18:58:48
>>264
fdiary.netに作ったものだが、どこでまとめても大丈夫だよ。lisper pagesにリンクを貼っ
ておけばいいよ。fdiaryのlisp wikiは誰がどのように使おうと構わないですから。スパム
はダメだということと、lispとちゃんとつながっていることが前提だが。

fdiary.netは昔よりサービスが悪くなってるようなので、より使い勝手のよいところを探
すのもよいかもしれない。昔はフランスに移籍した人が管理をやっていたけど、そのこ
ろは比較的速い対応をしていた。かずひこさんっていったっけな。

あそこはmatz lispの本拠が運営しとるから、もう少し頑張ってもらいたいんだけど、運営
がいまいちになってきているのをみていると大丈夫なのかな?という心配はある。

Norvig国のgoogle sitesもいいかもしれないな。

269:250
08/08/05 18:59:58
わかりました。
がんばって開発してみます。

270:デフォルトの名無しさん
08/08/05 19:08:50
お前ら…
あんまり変なことするとPythonみたいに妨害されるぞ…

271:デフォルトの名無しさん
08/08/05 19:12:01
>>267
目標も同じで、既に存在している、機能的にも似た物があるのに、
「スレ独自の物に手を加えるのは心配」とか、お前さんにしか理解できない理由で、
自分の方を使ってくれ、っていうのは、他の人には「(゚Д゚)?」って感じだと思うぞ。
現状だと子供のわがままにしか見えん。

他の人にも納得できるだけの相応の理由があって、
それなりの行動力があると思わせる言動をしていれば、
>>265みたいに皮肉られんよ。

272:250
08/08/05 19:21:53
わかりました、
確かにそうですな、そちらの開発に参加させて頂きたく思います。
たった今先ほどのWikiは削除させて頂きました。
ご指導ありがとうございました。
>>270
詳細は知りませんが私は全くおこらないタイプなので無害ですよ。
殴られてもおこらないぐらいです。

273:デフォルトの名無しさん
08/08/05 19:37:11
>>272
270は他言語圏にふれたことについて、危険だよといってるだけだから、気にしなくていい。


274:デフォルトの名無しさん
08/08/05 19:37:24
>>257
printじゃなくて、princでした。
clearということになると、
ncurse等を使うことになるのかも。

275:250
08/08/05 19:48:04
ちょっ誰ですか?
親切にも'(CommonLisp Wiki)をLisperBlogに登録してくださっていたのは
ありがとうございました。
自分で削除しておきますね。

276:250
08/08/05 19:50:29
と思ったが編集できない
変更お願いしますね

277:デフォルトの名無しさん
08/08/05 20:08:51
>>276
login: guest pass:cl
だよ

278:250
08/08/05 20:42:56
ありがとうございます。
手始めにClispのmacOSXへのインストールを書かせて頂きました
ご確認よろしくお願いします。

279:250
08/08/05 22:12:01
L-99の和訳をしたいと思うのですが
著作権的にどうなのでしょうか?

280:デフォルトの名無しさん
08/08/06 00:19:52
L-99のオリジナルは、P-99というPrologの問題集なので、
オリジナルのP-99の作者の先生に確認することになるのでは
ないかという気が…。
L-99はなんとも微妙な気がするので…。

281:250
08/08/06 10:39:33
>>280
ありがとうございます。

ところでasdfの使い方ですが
.clisprc にasdfのロードとasdファイルのディレクトリ設定は書いてあり
clisp内では確かにasdfは動作しています。
しかしシェバングしたファイルを作成して実行するのと
*** - READ from #<INPUT BUFFERED FILE-STREAM CHARACTER #P"./test.l" @2>: there
is no package with name "ASDF"

と出てしまいます。
ファイルの先頭に
(asdf:oos 'asdf:load-op :ltk)
(in-package :ltk)
とかいているのですが・・・・

282:デフォルトの名無しさん
08/08/06 17:03:26
asdfの話題が出ているようなので私も
cl-whoを導入したのですが、サイトのサンプルを実行して見たいのですが
*html-stream*なんて無いというエラーがかえってきてしまいます。
よろしくお願いします。

環境はMacOSX10.5です。

283:デフォルトの名無しさん
08/08/06 17:18:30
cl-whoは*html-stream*と関係なかったような?
他のパッケージからcl-who使っていたりしない?


284:デフォルトの名無しさん
08/08/06 17:23:00
ええっと・・・・
(asdf:oos 'asdf:load-op :cl-who)
(in-package :cl-who)
実行後
cl-whoの公式サイトっぽい所の
(with-html-output (*http-stream*)
(loop for (link . title) in '(("URLリンク(zappa.com)" . "Frank Zappa")
("URLリンク(marcusmiller.com)" . "Marcus Miller")
("URLリンク(www.milesdavis.com)" . "Miles Davis"))
do (htm (:a :href link
(:b (str title)))
:br)))
というサンプルコードを実行すると
*** - EVAL: variable *HTTP-STREAM* has no value
The following restarts are available:
USE-VALUE :R1 You may input a value to be used instead of *HTTP-STREAM*.
STORE-VALUE :R2 You may input a new value for *HTTP-STREAM*.
ABORT :R3 ABORT

というエラーが・・・これはサンプルコードはインタプリタ向けではないのでしょうか?
何となくそのような英語が上に書いてある気がします。



285:デフォルトの名無しさん
08/08/06 17:41:47
一番先頭に
>Let's assume that *HTTP-STREAM* is the stream your web application is supposed to write to.
って書いてますね。

出力したいストリームの名前の例として*http-stream*を使ってるだけではないかと。
とりあえず、*standard-output*とかにして動作確認すれば良いんじゃないしょうか。

286:デフォルトの名無しさん
08/08/06 17:51:29
g000001さんがアナウンスしたけど、ecl 0.9lって、maximaのビルドが
できるようになったね。その他は、GCとスレッドインタプリタのパフォー
マンス改善のようです。

ecl ってwindowsで動かんかったっけ?


287:デフォルトの名無しさん
08/08/06 18:08:10
>>285
できました。
ありがとうございます!!!
やっぱり英語はできないと苦労します・・・・0rz




次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4056日前に更新/237 KB
担当:undef