[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 02/01 06:02 / Filesize : 245 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Lisp Scheme Part33



1 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 17:58:58.06 ]
Common Lisp、SchemeをはじめとするLisp族全般のスレです

■前スレ
Lisp Scheme Part32
hibari.2ch.net/test/read.cgi/tech/1303299696/

■テンプレ
wiki.fdiary.net/lisp/

■関連スレ
【入門】Common Lisp その8【質問よろず】
hibari.2ch.net/test/read.cgi/tech/1309940115/

348 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 13:10:38.02 ]
Luaが形なし言語で最速と聞いて
LispやSchemeからの変換機あるかなと思ったら
以外と誰も作ってない。Stalinと速度比較したかった。

349 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 13:41:07.50 ]
>>348 LuaJIT がだろ?
ついでに言っとくと Lisp 系言語は変数側に型がないだけで
変数に代入されるオブジェクトには結構厳しい型付がある


350 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 14:11:05.70 ]
Cから別の動的言語に吐き出すのが
あるからlisp->C->luajitは出来るが、
cluecc.sourceforge.net/
直接変換では無いので、C止めの1/10になりそう。

最近だと、llvm経由で言語間コンバートあるけど、やっぱり最適化は難しいのかな。
llvm-to-javascript
https://github.com/kripken/emscripten/wiki

351 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 18:43:29.05 ]
>>348
SBCLの圧勝です。

352 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 00:00:34.74 ]
attractivechaos.github.com/plb/
shootout.alioth.debian.org/u32/which-programming-languages-are-fastest.php
shootout.alioth.debian.org/u64/which-programming-languages-are-fastest.php
fixnumとunsafe使えばsbclの方が速いかな?

353 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 00:03:50.29 ]
Luaの場合は小細工なしで速いから

354 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 00:57:49.97 ]
Scheme subset -> Luaならantlrあたり使って簡単にできそうなのになあ
Schemeでambとかマクロ展開してからLuaに変換できたら高速だし最高なのに

355 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 03:20:49.77 ]
lisperが妄言はいてる間にlua最速!
いいうさぎとかめですね

356 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 05:10:08.81 ]
小細工とか妄言とかえらい攻撃的な人が来てるね。
というより主張だけが必死で話を聞いてない
この2つの考察から
スルーするのが適当じゃなかろうか。



357 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 05:32:36.83 ]
小細工と妄言は別の人なのだが
妄想が激しい人なのな

358 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 05:35:02.00 ]
Luaは速度を速くするための
特別な書き方しなくても速いんだが

359 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 05:55:52.20 ]
luaはschemeと似てるけどcall/ccみたいな厄介なのはないし
言語実装が1つだから無駄なリソースをあまり使わずに進化できたんじゃないかな
あんま知らんけど

360 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 08:31:33.05 ]
機械語最速最強、とか言ってるのとたいして変わらんしw

361 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 12:41:29.83 ]
まあ、LuaとかJavaScriptが近年速度面で頑張ってるのは事実だし、
Lispも他に置いてかれないように頑張りましょう、ってことで。

RacketあたりはJIT採用してたはずだから、頑張って欲しいね。


362 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 12:54:12.80 ]
そういや、数理システムの人が CL の最適化は全然足りない、
って論文書いてたよね。 2009年だけど。
あのあとCLの最適化って少しは進んだのかな。

363 名前:362 mailto:sage [2011/11/27(日) 12:55:09.42 ]
これね
「An evaluation of Major Lisp Compilers」by Seika Abe
cl-www.msi.co.jp/solutions/knowledge/lisp-world/tutorial/compiler-eval-b.pdf


364 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 13:50:36.94 ]
>>362
商用の奴もダメって?
あとネットで(要約の)閲覧できるならリンク頂戴

365 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 14:03:59.93 ]
>>364
あと, cmucl のドキュメントの中で最適化を施すと危険な場合ってのが列挙
してあって, その部分の見直しがほとんどなされてない
コンパイラ製造技術は上がって来てるのでその辺の対応が強く望まれる
あと吐き出したコード見ればわかるんだけど peephole が壊滅的にだめ


366 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 17:17:23.09 ]
最適化しないでも
小細工すれば速くなるし



367 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 23:11:26.72 ]
>>354
なんでわざわざ遅いLuaに翻訳しないといけないの?
Javascriptならブラウザ上で動くとかメリットあるけど。

368 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 01:41:29.85 ]
lisp cabinetでCCLを使っているのですが、
自作の関数をいくつか書いておき、起動時にそれらを自動的に読み込ませる、というのは
どこにどのような設定をかけばよいのでしょうか

369 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 02:08:39.13 ]
>>367
Schemeが亀のように遅いからだろ

370 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 02:55:02.84 ]
? 変なのがいついてるな。

371 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 03:08:05.18 ]
Luaが遅いとか無知すぎるわ

372 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 06:50:26.82 ]
Cへのトランスレータは以前から研究されているのに、なぜLuaへのトランスレータを性能の為に用意するの?
バニラのLuaでもCトランスレータを超える性能面のメリットがあるの?
……って意味じゃないの、「遅いLua」って言い回しは
本人に訊かないと本当の所は分からないが

俺は性能面ではなく、ClojureやNuのようなホスト環境とよく馴染むLispとしては興味あるけど
SchemeやCLのトランスレータは実物を見てからでないとあまりワクワクしないな

373 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 07:28:31.90 ]
>>364
要約というか本文が >>363 にあるよ
日本語。共通部分式の除去も定数伝搬もほとんどされてない、
ってのは悲しくなった。誰かCommon Lisp on LLVM作って。

374 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 10:56:48.73 ]
>>368
ホームディレクトリの.ccl-init.lisp。
そこで直接関数を定義しても良いし、適当なファイルをloadで読んでも良い。

Windowsだとバージョンでデフォルトのホームディレクトリの場所が違うから、

(translate-logical-pathname "home:")

を評価して表示された場所。


375 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 13:43:19.86 ]
Lisp -> C -> 機械語
Lua -> JIT -> 機械語
だとLuaの方が速いんだよな

376 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 13:59:02.19 ]
じゃあ tarai で比較するか



377 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 14:00:07.69 ]
実用性のない何の価値もないコードで比較してどうする

378 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 14:02:00.71 ]
>>377
文句言うなら代替案を出せよ。
代替案ない批判は何の価値もないよ。

379 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 14:08:36.34 ]
ここは核融合プラズマシミュレーションで

380 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 14:21:30.36 ]
shootout.alioth.debian.org/u64/benchmark.php?test=all&lang=sbcl&lang2=lua

381 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 14:31:36.26 ]
>>380
Luaってどん亀Gaucheより遅そうだな


382 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 14:39:59.84 ]
型指定したコードと比べてどうすんだよ
馬鹿か

383 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 14:43:35.40 ]
出たものはとりあえず叩く人が居座ってるよな

384 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 14:44:43.14 ]
ドヤ顔で型指定しているコード持ってきて
Gaucheより遅そうって
馬鹿以外の何物でもないだろ

385 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 14:47:54.23 ]
何も出せずに文句しか言えない奴は哀れだねぇ

386 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 14:50:59.55 ]
馬鹿な発言しか出来ない奴よりはまし



387 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 14:59:20.86 ]
馬鹿はお前だろうw
shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=racket&lang2=lua

388 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 15:11:30.43 ]
なぜJITの付いてないバージョンのLuaと比べるんだよ

389 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 18:03:06.62 ]
luajit.org/performance_x86.html

390 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 18:41:59.63 ]
luajitでようやく比較対象になったレベルでしょ?
しかも組み込み用の糞言語w

391 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 18:52:17.99 ]
どん亀racketよりは速いお

392 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 19:56:21.62 ]
こんなところで油を打ってないで、一つでもマクロや関数の使い方
の理解を深めろって。^^; さもないと成長せんぞ。

393 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 22:37:16.30 ]
>>374
ありがとうございます!

394 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 23:59:23.73 ]
Gauche での JIT の実験結果からは今のところは導入は割に合わないと結論が出てる。
practical-scheme.net/wiliki/wiliki.cgi?Gauche%3aVM%E3%81%AE%E6%9C%80%E9%81%A9%E5%8C%96%3aJIT%3a%E4%BA%88%E5%82%99%E5%AE%9F%E9%A8%93
素人考えだと二倍とか三倍くらいの速度になるなら甲斐がありそうにも思うけど、
ポータビリティや保守性を捨ててまでやるほどではないということみたいだね。

Gauche に限らず JIT を入れた方が速くなるのは百も承知なんだよ。
それでももっと大事なことのために導入しないという決断をしたんだから、
遅いじゃないかと言われてもそういうものなんですというしかない。

逆に Lua は速度の方が大事だという決断をして他の諸々を捨てたんだから
そっちはそっちで不満なところもあるだろうさ。 銀の弾丸は無いって奴だな。

ところで Lua のロゴマークのデザインってセイコーインスツルのに似てね?
www.lua.org/
www.sii.co.jp/

395 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 00:06:47.55 ]
LuaJITだと2〜3倍どころ10倍くらいになってるな
保守性はともかくポータビリティは問題なさそう

396 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 01:05:55.94 ]
repo.or.cz/w/luajit-2.0.git/tree/HEAD:/dynasm
確かにluajitは個別にしか対応できないな。
googleのv8,naclみたいにx86,x64,arm,llvmでしか動かない実装考えるグループも出てきてる時代だけど、
schemeは置いといて、clは人材流入がなくて難しいのかも。
haskellでもx86専用SIMDコードが埋め込まれたり、llvmに載せちゃえとかあがいてはいる。
普通のコードをJITやCPU最適化で高速化するタイプの人材流入から
cl/.net/ruby/perl/phpあたりは置いていかれてる感はあるかもしれないね。




397 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 08:52:41.78 ]
.NET→MS実装は知らないが、MonoはLLVMバックエンドがある
Ruby→Rubinius
Perl→ParrotにLLVMプラグインがあるので、RakudoもLLVMを使える
PHP→PHP.rebootならHotSpot効くんじゃね?多分

398 名前:デフォルトの名無しさん [2011/11/30(水) 14:06:16.64 ]
lispのprin1やprincにある"1"や"c"は
何を意味しているのでしょうか?

399 名前:デフォルトの名無しさん mailto:sage [2011/11/30(水) 16:53:13.14 ]
prin1 の 1 は適当につけただけだと思う。改行するのが print で改行しないのが
prin1 だったんだけど、read できるかどうかを考慮してさらに prin2 とか prin3
とかが作られていった。でも方言ごとに意味がバラバラだった。

princ は1文字しか出力しない方言があったので character の c なんだろうが、
そうでない処理系では無意味。


400 名前:デフォルトの名無しさん mailto:sage [2011/11/30(水) 17:13:53.88 ]
そんなときはHyperspecを読め。1,2行程度で違いを説明してるから。

401 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/11/30(水) 18:11:09.37 ]
>>400
たぶん >>398 は名前の由来をきいてるんだと思う Yo

402 名前:デフォルトの名無しさん mailto:sage [2011/11/30(水) 18:31:13.45 ]
>>398
ttp://hibari.2ch.net/test/read.cgi/tech/1309940115/355
質問者は同じ人?
回答になっているのか、わからんが。
まだ疑問があるなら軽く調べると英語でなんか出てくるんじゃないの。

403 名前:デフォルトの名無しさん mailto:sage [2011/11/30(水) 20:20:15.60 ]
その名前の源流はn番目の評価結果を返すprog1とかprogn辺りだろうけど
適当すぎるんじゃないか?
さすがに挙動が違うのに番号変えただけは適当すぎるんじゃないか?
コボル人か?


404 名前:398 mailto:sage [2011/11/30(水) 20:45:35.38 ]
>>400-401
はい。動作は分かっていますが、由来というか名前をつけた設計者の考えを知りたいのです

>>402
いいえ、別人です


405 名前:デフォルトの名無しさん mailto:sage [2011/11/30(水) 23:21:17.60 ]
HyperSpec の内容でいいとおもうけどな。由来は John L White 曰く
prin1 は PRINt characters of 1 object.
princ は PRINt the Characters of some Object.
print は PRINT compound object.
だったはず。

406 名前:398 mailto:sage [2011/11/30(水) 23:27:54.17 ]
なるほど、分かりました
HyperSpecではそこまで言及されていなかったので勉強になります
CLHS: Function WRITE, PRIN1, PRINT, PPRINT...
www.lispworks.com/documentation/HyperSpec/Body/f_wr_pr.htm



407 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 08:52:19.28 ]
確かprin1が生まれた当初は
一引数関数でアトムしか印字できなかったはず。
いわばprint下請け関数。

けどLisp interpreterは任意数引数関数にするの簡単だから…

408 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 11:55:32.37 ]
The history of print, prin1, and princ?
groups.google.com/group/comp.lang.lisp/browse_thread/thread/5addd533ea72207a/3d01f02a08dc0d5e
ググったら十年前の質問が出てきた。

409 名前:デフォルトの名無しさん mailto:sage [2011/12/02(金) 01:20:36.63 ]
KMPが回答していたのですか
知りませんでした
なるほど

410 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 02:16:04.15 ]
渋谷lispみたいなイベントってもうないの?
ちょっと発表してみたい内容できそうなんだけど

411 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 02:41:55.54 ]
ついこの間あったばっかじゃねーか。
次まで待て。


412 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 03:41:06.82 ]
>>410
Shibuya.lisp主催でもメーリングリストだけ告知させてもらうにしても自分で動いて
みたらどうかな。公共施設だと場所の確保が難しそうだけど、年末・年始は日本に
戻ってくる人もいるかもしれないし、
地方帰郷組とかいて、変わったイベントになるかもね。具体的な開催予定候補日を
示して呼びかけだけはしてみたら良いと思う。反応が悪かったら取り下げるという
感じで。


集まりが悪くて、Shibuya.lisp主催では年一回という方向みたいだね。

過去一年間で気になった題名の記事
そろそろShibuya.lispテクニカルトーク第7回 やりませんか
ttps://groups.google.com/group/Shibuyalisp/browse_thread/thread/feea5fbd70dfd899
Shibuya.lisp Tech Talk 開催頻度についての提案
ttps://groups.google.com/group/Shibuyalisp/browse_thread/thread/568065ebcde1be21?tvc=2
Shibuya.lisp TTの改善案
ttps://groups.google.com/group/Shibuyalisp/browse_thread/thread/63bde3be188a5404?tvc=2
第6回 PAIP読書会を開催します
ttps://groups.google.com/group/Shibuyalisp/browse_thread/thread/c44c802420dc7a98#
>>411
どういう趣旨で発表したいのかわからないけど、入門者大歓迎でこじんまりとやるのも
いいと思うけどね。小規模でややクローズドなイベントでいいなら実家の一室を開放できる人も
いるでしょう。

低コスト会場の一例。
PCインフラは乏しそう。年末年始は休み。申し込み条件は中野区に関わりがある人
ttp://www.nices.jp/facility/zero/gakusyu.html
ttp://www.nices.jp/reserve/culture.html

413 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 09:30:23.56 ]
東京でしか無いから、残念だよね。

414 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 09:48:05.61 ]
小規模開催じゃ売名できないだろ

415 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 10:07:42.42 ]
コルーチンはリスト処理ではない
スタックやレジスタの処理だ
リストはメモリ割り当てが頻繁に起こって遅くなりそう

416 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 10:08:54.08 ]
誤爆



417 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 11:43:25.32 ]
>>413
道府県庁所在地でやれば5人ぐらい集まるんじゃないの?
文句を言わずに動け。
他分野の話だけど地方の県庁所在地で活発にやっている所があるよ。あと関数言語とプログ
ラミング教育とemacsと英語ぐらいのテーマでNPOってできるんじゃないのかね。原文(英語)
ハンドブックを教材に使って、辞書を片手にプログラミングさせるのが良いと思う。
全然訳せなくて使い方が分からない場合に手助けする感じだと人は伸びるよ。

あとttps://groups.google.com/group/Shibuyalisp/の集客問題は何かの足しになると思う。

418 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 12:41:06.91 ]
勉強会とかならいいけど、5人相手に発表とか悲しさ炸裂だろ。

別にShibuya.lispじゃなくて、普通にネットで発表しても、
興味深いもの、ことなら反響あると思うけど。
この前の竹内関数とか盛り上がったし。


419 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 12:49:09.04 ]
いつどこの勉強会で盛り上がったん?

420 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 13:18:25.51 ]
なんで勉強会が盛り上がるとかいう話になるんだよw

この前takを利用して音鳴らすってのが、Lisp界隈で話題になって盛り上がってたでしょ。
元ネタの所に御大降臨したりして。面白いものならどこで発表しても反響がくるんじゃない?
って話だよ。

盛り上がってる勉強会とかなら熊本とかなんじゃないの? よく知らんけど。
本人たちは楽しそうにやってるのは分かる。


421 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 13:35:41.28 ]
今、勉強会の話しているからだろ

422 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 13:36:58.78 ]
Lisp界隈は面白いことしている人が
表に出てこないな

423 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 15:11:27.27 ]
>>418
形態は勉強会でもなんでもいいでしょ。

ネットで発表して得る物と人前で発表して得る物って違うんじゃないの。
人前で発表して得る具体的な物って言えないが、ネットコミュニケー
ションonlyの限界ってあると思う。

年1回でもいいから地域で定期的にやって団体をつくれば、偉い人を呼び
やすいし、他県勉強会の遠征もしやすいでしょ(車出す・出さないとか)。

ヘタレlisper/schemmerでいいから代表として誰かが立てば、忙しい
lisper/schemmerも参加しやすくなるんじゃないの。代表に求められるのは、
lispの能力より雑用処理能力だよね。

424 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 22:21:06.15 ]
何故ハイパーカードは死ななければならなかったのか - karasuyamatenguの日記
d.hatena.ne.jp/karasuyamatengu/20111130/1322671954
>SK8というNetwton向けのLisp Machineを殺したのはジョブスに違いない

yebo blog: なぜ、HyperCardは死ななければならなかったのか
yebo-blog.blogspot.com/2011/12/hypercard.html
>彼は、ニュートンのLispマシン化させるSK8の死の背後にいたことは間違いない。

この点がよく分からないのですけど、newtonとlispにはどういう関係があるのですか?

425 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 00:31:00.58 ]
往年のMCLファンの俺が答えるよ。
en.wikipedia.org/wiki/SK8

426 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 00:44:48.44 ]
 ̄ ̄ ̄ ̄ ̄ ̄ ̄l/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     ∧_∧
    ( ´・ω・`)     ∧_∧
    /     \   (    )何言ってんだこいつ
.__| |    .| |_ /      ヽ
||\  ̄ ̄ ̄ ̄   / .|   | |
||\..∧_∧    (⌒\|__./ ./
||.  (    )     ~\_____ノ|   ∧_∧
  /   ヽ 空気読めよ   \|   (    )
  |     ヽ           \/     ヽ. オマエ馬鹿だろ
  |    |ヽ、二⌒)        / .|   | |
  .|    ヽ \∧_∧    (⌒\|__./ /




427 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 00:47:00.11 ]
これ、昔からソース公開してるんだけど、
sitアーカイブだからMacないと展開に苦労するし、
ライセンスはここ読めってページがなくなってるしw
sk8.research.apple.com

428 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 00:50:13.95 ]
つ ttp://www.vector.co.jp/soft/dl/win95/util/se140653.html

429 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 19:14:05.58 ]
普段の雑多な処理(bashで書くと64行以上のスクリプト)ってlisp(schemeも可)で書く? bashで書く?
あと64行未満だったらどうされますか? 行の量レベルによっての取り組み方の違いとかをご教授して
いただけませんか?
LispでもLinuxディストリ間ぐらいだったら可搬性も楽に高められるかな? Lispだと他の人が読めないよ
というクレームが来たら最悪違う言語で書き直せば良いんだよね。そのスクリプトは製品ではなく数ヶ月
後までに書き直しておけば問題なしという条件で。

あと処理のアイデア・メモはみんなlispで書いちゃうのかな?

430 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/12/05(月) 20:09:55.71 ]
>>429
64行ってのはどこから出てきた数値?

431 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 20:13:34.54 ]
ざったろくじゅうし

432 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 20:15:41.60 ]
(expt 2 6)

433 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 22:44:29.38 ]
(ash 1 6)


434 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 23:09:55.33 ]
>>429
UNIXの得意なことはshでやる。
fileやprosessにまつわるバッチ処理。

435 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 00:28:56.29 ]
>>429
#!/bin/perlとか書くくらいならgoshする
パイプつなげてガリガリとコマンドを呼び出してステートチェックするならbashで書くわ

書きやすい方の道具使うべきなんであってLispありきってのは間違いじゃろ

436 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 02:26:25.51 ]
せっかくだから、どんな小さなスクリプトもLispで書くことにするぜッ



437 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 07:30:19.88 ]
>>435
bash等と比べると書きやすいで言えばLispだし、ブログのネタにしやすいのもlispでしょ。
つまりはLispありきでいいんじゃないか。

438 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 17:39:58.04 ]
Lisp 1000tips wiki つくろか

439 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 17:54:14.86 ]
>>438
期待してる。

440 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 00:05:07.89 ]
common lispのmapcにあたるのは
schemeではmapになるのでしょうか?
そして、common lisp のmapcarにあたる関数は何でしょうか

441 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 00:27:18.03 ]
mapc => for-eachでmapcar => map。
ただし、mapcと違ってfor-eachが返す値は未定義。


442 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 00:41:59.82 ]
ありがとうございます 勘違いしていました
気になったのですが、common lispのdolistとmapcは何が違うのでしょうか

443 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 01:16:57.98 ]
使う場面とできることは似たようなものだけど、根底にある思想が違う。
dolistはより手続き的。リストの要素で変数を束縛してブロックを実行する。
mapcはより関数的。リストの要素に関数を適用する。

cl.cddddr.org/index.cgi?%E3%82%B3%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB#H-xy6b4yo1bpqy


444 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 01:34:56.54 ]
>>443
すっきりと腑に落ちました。
これで使い道に迷うことはなさそうです。

445 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 02:18:53.89 ]
ごめん。ひとつ大事なこと思い出した。

dotimesとかもそうなんだけど、dolistは

www.lispworks.com/documentation/HyperSpec/Body/m_dolist.htm#dolist
> It is implementation-dependent whether dolist establishes a new binding of var
> on each iteration or whether it establishes a binding for var once at the
> beginning and then assigns it on any subsequent iterations.

って決まってて、処理系によってはループ変数が破壊的に変更される可能性がある。
そういう場合にクロージャとかでその変数を捕捉すると悲劇が起こる。

具体的にはこう(↓)なる。

blog.practical-scheme.net/shiro/20060110-for

mapcは引数で渡すからこの問題は起きないはず。これは覚えておいた方が良いかも。


446 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 12:05:04.37 ]
動作がよくわからないので質問させてください。

(case 0 ((0) 1))
→ 1
になるので
(case 0 (((if #t 0)) 1))
→ 1
になって欲しかったのですが
→ ()
になってしまいます。

case が eqv? で比較してるので
(eqv? 0 (if #t 0))
が #f になるかと思ったんですが、これは #t になります。

case 文の 条件部分(呼び方がわかりません。)に
if 文を使うことはできないんでしょうか?



447 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 12:21:55.04 ]
>>446
(define a 0)
(case 0 ((a) 1))
-> ()
(case 'a ((a) 1))
-> 1

448 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 19:06:31.53 ]
>>446
case の条件部分はただのデータで、評価されない。
なのでその書き方は 0 という整数と (if #t 0) というリストを比較している。







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<245KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef