【入門】Common Lisp その9【質問よろず】at TECH
【入門】Common Lisp その9【質問よろず】 - 暇つぶし2ch177:デフォルトの名無しさん
12/04/23 13:50:28.56
>>176
おおざっぱに言えば処理系を起動してからがこのスレの話題。

初心者ってのはそういうもんだというのはわかってるが、
このスレの住民からするとたいそう「もどかしい」状態。

178:デフォルトの名無しさん
12/04/23 14:10:34.44
人工知能とのやり取りみたいだ

179:デフォルトの名無しさん
12/04/23 14:22:34.94
>>176
lispworks試用版のmacosx版でもつかったら良いんじゃないかな
URLリンク(www.lispworks.com)
とりあえず処理系動かすだけならフリーの処理系も試用版も同じかな五時間の時間制限あるけど

180:デフォルトの名無しさん
12/04/23 16:02:49.26
lispworksはmacosxにも対応していたのか

181:デフォルトの名無しさん
12/04/23 18:46:12.05
>>176
エラーメッセージ(の一部)でググレ。
さすがに釣りに思えて来た。

182:デフォルトの名無しさん
12/04/24 10:41:13.06
数行のコードを試しに動かすだけなら
URLリンク(ideone.com)
とかでも。

183:デフォルトの名無しさん
12/04/26 23:16:09.72
すぐ使えるLisp環境ならLispboxを使えばいいのでは。
URLリンク(common-lisp.net)
WindowsとMacとLinuxに対応していて、
ダウンロードして解凍してダブルクリックすればすぐ使える。
処理系はSBCLじゃなくてCCLだけど、初心者からしたら違いはない。

184:デフォルトの名無しさん
12/04/26 23:28:21.60
clispってcommon lispではないのですか?
On Lispの例がそのままでは動かなかったりするのですが

185:はちみつ餃子 ◆8X2XSCHEME
12/04/26 23:39:21.30
Common Lisp の規格に沿った処理系はいくつもあるけど、規格の不明瞭なところをそれぞれの解釈で実装してたり、
そもそも規格では未定義にされていたり、規格以上の機能を提供しようと拡張されていたりすることもある。
そういった言語の微妙なところに依存してしまっている記述はあるかもしれない。
あと、定義を書く順番が関係してくる箇所もあるので、動かないという箇所を具体的に提示すればこのスレで何らかの助言を得られるかもしれない。

186:デフォルトの名無しさん
12/04/26 23:50:21.73
>>184
CLISPは代表的なCommon Lisp処理系のひとつですよ。
オープンソースだとSBCLやCCLに次ぐくらいには使われている。
On Lispの著者のお気に入りの処理系のひとつでもあります。

>>185の言うように、書籍のミスなのか、あなたのミスなのか、
>>184の情報だけではわれわれとしても何とも言えません。

187:デフォルトの名無しさん
12/04/27 14:33:07.78
(6 4 0 4 8 3 7 4 5 7)
このリストの各要素を逐一足し合わせて
(6 10 10 14 22 25 32 36 41 48)
こういうリストを作るにはどうすればいいですか?
reduceを使えばいいのかと思ったのですが、
reduceに#'+を渡す例を考えると最終的な値はリストではなく一つの値になってしまいます

188:デフォルトの名無しさん
12/04/27 15:54:04.53
(loop for x in list for y = x then (+ y x) collect y)

189:デフォルトの名無しさん
12/04/27 16:02:39.06
ありがとうございます。ばっちりです。
for ... then を使えばこんなにすっきりと書けるんですね。

190:デフォルトの名無しさん
12/04/27 16:56:48.09
(loop for x in '(6 4 0 4 8 3 7 4 5 7) sum x into y collect y)
--> (6 10 10 14 22 25 32 36 41 48)
でもいけるね

191:デフォルトの名無しさん
12/04/27 18:44:37.15
相変わらずloopは黒魔術

192:デフォルトの名無しさん
12/04/28 00:04:03.22
>>187
reduceでの解ということでひとつ。

(nreverse (reduce (lambda (r x) (cons (+ (or (car r) 0) x) r))
'(6 4 0 4 8 3 7 4 5 7)
:initial-value nil))

こういうのはloopやiterate、Seriesとかの方がすっきりできる感じがする。
あるいは内包表記とかもこういうの得意分野な感じ。

URLリンク(github.com)

CLだとこの辺とか。

193:デフォルトの名無しさん
12/04/28 00:46:01.06
>>192を見て疑問に思ったんだけど
schemeの世界のsrfiってcommon lisp向けに移植されていないのかな

194:デフォルトの名無しさん
12/04/28 00:59:24.42
上に書いてる

URLリンク(github.com)

に大半のSRFIがあるよ。

195:デフォルトの名無しさん
12/04/28 02:11:38.34
本当だ。ありがとう。地道にもやっていたのか。

196:デフォルトの名無しさん
12/04/28 17:07:30.76
>>187
CL詳しくないのでHaskellで

sumlist xs = sumlist' 1 xs
where
sumlist' n xs | n > length xs = []
sumlist' n xs = sum (take n xs) : sumlist' (n+1) xs

CLにも同じ機能あると思うので、参考までに


197:デフォルトの名無しさん
12/04/28 17:23:23.52
CLですでに回答済なのに、場違いに出て来るHaskellerって・・・。


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