トップページtech
1001コメント272KB

((Common Lisp) (Scheme) :Part 15)

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/06/23(金) 10:22:53
過去スレ
Part14: http://pc8.2ch.net/test/read.cgi/tech/1132275726/
Part13: http://pc8.2ch.net/test/read.cgi/tech/1115901841/
Part12: http://pc8.2ch.net/test/read.cgi/tech/1100229366/
Part11: http://pc5.2ch.net/test/read.cgi/tech/1091456033/
Part10: http://pc5.2ch.net/test/read.cgi/tech/1075630259/
Part9: http://pc2.2ch.net/test/read.cgi/tech/1069594582/
Part8: http://pc5.2ch.net/tech/kako/1058/10582/1058263391.html
Part7: http://pc5.2ch.net/tech/kako/1042/10421/1042167213.html
Part6: http://pc3.2ch.net/tech/kako/1031/10315/1031560687.html
Part5: http://pc3.2ch.net/tech/kako/1023/10230/1023091882.html
Part4: http://pc.2ch.net/tech/kako/1016/10162/1016211619.html
Part3: http://pc.2ch.net/tech/kako/1008/10082/1008220265.html
Part2: http://pc.2ch.net/tech/kako/1002/10025/1002584344.html
Part1: http://piza2.2ch.net/tech/kako/987/987169286.html
0232デフォルトの名無しさん2006/09/18(月) 02:11:31
>>231
意味もなく生物のイラストが表紙になるのはやはりラクダのせいかねぇ。
0233デフォルトの名無しさん2006/09/18(月) 02:41:38
表紙解説
Common LispはEmacsじゃないから野牛は使えません。
そこでインタプリタ型bisonことawk(海鳥)に目を付けたが
Common Lispは手続き型じゃないからaukは使えません。
そこで海鳥じゃなくて水鳥に落ち着きました
0234デフォルトの名無しさん2006/09/18(月) 02:46:55
Lisp関係の本が増えるのは嬉しいけど、入門書以外も充実したらいいなと思うんだ
0235デフォルトの名無しさん2006/09/18(月) 03:24:37
>>233
作者さんですか? Lisp 書籍コレクターの血が騒ぐので買います。でももっと
特化した内容のも買いてください。まずは教材に使えそうな「自然言語処理編」
とか「統計編」とか「数値計算」とか〜

でも Common Lisp の本なのに SLIME がないのはちょっと残念…
0236デフォルトの名無しさん2006/09/18(月) 04:02:49
ぶしつけな質問だけど関数型プログラミングってメリットある?
代入式使わないとか。
0237デフォルトの名無しさん2006/09/18(月) 04:17:35
>>231
今時出すのにこの題材でCommon Lisp? と思ってしまうが、
xyzzy使ってとっつきやすく、ってことなのかな?
0238デフォルトの名無しさん2006/09/18(月) 04:18:48
>>236
マルチスレッドでアホみたいに悩むことが減る。
0239デフォルトの名無しさん2006/09/18(月) 04:32:30
それをいったら R6RS 直前に Scheme も微妙じゃね。PLT なら入門者にも受け
るか…とおもうが xyzzy には勝てないわな。あれは Lisper 以外も使いたがる
良いエディタです。

>>236
Lisp の場合は強制じゃなくて選択ですからね。メリットが実感できるまでは普
通に副作用使いまくればいいんじゃないでしょうか。
0240デフォルトの名無しさん2006/09/18(月) 07:07:45
残念ながらxyzzyはあまりに遅すぎる
0241デフォルトの名無しさん2006/09/18(月) 07:41:15
何と比較して?常駐秀丸と起動速度で勝負とかなら同意するけど…
0242デフォルトの名無しさん2006/09/18(月) 07:50:40
>>241
Lispの実行速度じゃないの。
0243デフォルトの名無しさん2006/09/18(月) 08:39:14
>>241
普通にキータイプのレスポンスが遅くね?
0244デフォルトの名無しさん2006/09/18(月) 09:32:45
>>231とか、この前本屋で手に取った
ttp://www.amazon.co.jp/gp/product/479733665X
とか、`関数型'って言うのが微妙にクローズアップされているような
気がする。

その言語を扱っている書籍の中で、過去に出版された物より…
くらいの意味だけど。

Haskellが話題になったから?
0245デフォルトの名無しさん2006/09/18(月) 11:37:22
>>234
野田さんのOn Lisp翻訳に期待。(まだー?w)
0246デフォルトの名無しさん2006/09/18(月) 14:22:46
>>245
On Lispの翻訳を見たときは、日本にもまだまだ優秀な学生さんが居ると感心していたが
urlを見ると東大の学生じゃねーか、東大だよ東大!!!

そりゃぁ、出来て当然。Orz
0247 ◆r6EONKKhcc 2006/09/18(月) 14:25:48
orz
0248デフォルトの名無しさん2006/09/18(月) 14:43:19
>>246
東大コンプレックス乙ww
0249デフォルトの名無しさん2006/09/18(月) 15:29:45
高卒は必ず噛み付くよね、こういう時。
0250デフォルトの名無しさん2006/09/18(月) 16:13:12
>>249
学歴コンプレックス乙ww
0251デフォルトの名無しさん2006/09/18(月) 16:49:00
>>250
高卒乙ww
0252デフォルトの名無しさん2006/09/18(月) 19:18:58
もうやめろ
0253デフォルトの名無しさん2006/09/18(月) 22:32:01
LISP…言語設計のブラックホール
http://www.rubyist.net/~matz/20060914.html#p01

Guy Steele曰く「Lispはブラックホールだ。「Lispに似た(でもLispではない)なにか」を
作ろうとすると、重力につかまってブラックホールに落ちてしまう。そしてそれはLispになる。
0254デフォルトの名無しさん2006/09/18(月) 22:45:52
Java も大変だよね。シンプルを目指していたのに Generics や Closure など
初期にあえて省いた機能を入れざるを得ない…。
0255デフォルトの名無しさん2006/09/18(月) 23:31:15
Javaの場合は言語サイドからってより、VMで動かそうぜというコンセプトが
結局Closure導入に至った感じがする。
0256デフォルトの名無しさん2006/09/18(月) 23:54:05
様々な言語で共通に使えるVMということを考えると当然の方向性だな
0257デフォルトの名無しさん2006/09/19(火) 00:27:08
Javaの初期にはネットワーク対応OLEという方向が想定されてて
そのための安全性とポータブル性に注意が払われてたが
実際は鯖サイドで成功して、どんどんノリ重視ホイホイ開発な方向になってきたわけで。
Appleも一時期Objective-Cを畳んでJavaに移行ムードだったのが復活模様だし
0258デフォルトの名無しさん2006/09/19(火) 11:55:35
>>247
あれ?flatlineさん、まだ2chに来てたのね。
はてなダイアリ見てます。院試合格おめでとう。たまにはLISPのことも書いてね。
『On Lisp』出版の話とかは、別に急がなくてもいいから。
http://d.hatena.ne.jp/flappphys/

まあこんなこと言ってる自分も、最近じゃPythonとHaskellばかりうわなにをするやめr
0259デフォルトの名無しさん2006/09/19(火) 18:04:23
Schemeでスクロールゲームって作れたりしますか?
0260デフォルトの名無しさん2006/09/19(火) 18:13:05
魔法の巻物でなんかするゲームかね?
0261デフォルトの名無しさん2006/09/19(火) 18:30:03
R5RSのつもりでR6RSのドラフトを見ていくと3倍の時間がかかるゲームですか?

てか50ページから142ページに増大ってどういうことよ。
正式版ではシェイプアップするのかね。
0262デフォルトの名無しさん2006/09/19(火) 19:07:59
>>259
Schemeで作れないものなんてありません
0263デフォルトの名無しさん2006/09/19(火) 19:10:09
ではSchemeでコーヒーをいれてくれ
0264デフォルトの名無しさん2006/09/19(火) 19:10:14
>>261
ほとんどライブラリだから興味あるとこだけ読めばいいんじゃね?
異論もあるだろうが、個人的にはやっと一人前の言語仕様書になったという気がするよ。w
これでSRFIのお世話にならないで済むようになるのかな。
0265デフォルトの名無しさん2006/09/19(火) 19:10:50
>>263
Java VMを作れという意味か?w
0266デフォルトの名無しさん2006/09/19(火) 19:21:35
RFCにコーヒー淹れるプロトコルあったな
0267デフォルトの名無しさん2006/09/20(水) 00:47:37
流れ豚ギルケド、MLISP(Meta-Lisp) なんて方言があるのね。
Algol 風の文法らしいけど、誰か使った事ある?
0268デフォルトの名無しさん2006/09/20(水) 00:50:50
>>267
M式だな。昔、中西先生が実装した奴を使った。
昔はエディタなどの入力支援が貧弱だったから、括弧が減るのは有り難かったのかも
しれないが、S式に慣れてしまうと要らないかなという気もする。
入門者向けには面白いかもしれないね。
0269デフォルトの名無しさん2006/09/20(水) 01:08:10
>>267
http://sumim.no-ip.com:8080/wiki/435

余談。
竹内郁雄『初めての人のためのLISP』では、M式は一応ちゃんと説明されていたけど、
そのあとすぐ、だけどS式だって十分読み書きしやすいんだから、こんなの要らないし、
この本でももう使わない、と切って捨てていた。

さすがは竹内先生。
0270デフォルトの名無しさん2006/09/20(水) 08:06:59
>>268-269
元はM式から来ているみたいですが、M式とはちょっと違うみたいです。

ftp://reports.stanford.edu/pub/cstr/reports/cs/tr/68/92/CS-TR-68-92.pdf
http://hopl.murdoch.edu.au/showlanguage.prx?exp=517
0271デフォルトの名無しさん2006/09/20(水) 11:36:07
>>269
これマクロはLispと似たような感覚でできるの?
0272デフォルトの名無しさん2006/09/20(水) 22:39:56
define-syntaxとsyntax-caseの間のlambdaいらなくね?
0273デフォルトの名無しさん2006/09/21(木) 01:58:21
lambda を書かなくて済むマクロを定義すればよくね?
0274デフォルトの名無しさん2006/09/21(木) 20:46:49
頭悪くてdefine-syntaxを定義できねえ
define-macroのが良くね?
0275デフォルトの名無しさん2006/09/22(金) 03:25:24
>>272-273

  っ
    そ
02762692006/09/22(金) 11:03:14
>>271
すまん、見落としていた。
結論から言うと、知りませんごめんなさい。
憶測を述べると、多分出来ないと思う。

「初めての人のためのLISP」を見直してみると、P201-P203にM式の説明が載っ
ているんだけど、この記法ではS式をデータ、M式をロジックとして用いると書
かれてる(S式は無条件でquoteされている扱いに)。

LISPのマクロはコードとデータの区別がないがゆえに成立するものだから、M
式ではマクロは書けないんじゃないかな。
0277デフォルトの名無しさん2006/09/22(金) 13:56:08
そこで、Dylan ならマクロも OO もオプショナルな型指定も出来るなあと
いつも思うんだけど、何故か食指が動かん。今なら OpenDylan が使える
んだが。
0278デフォルトの名無しさん2006/09/22(金) 19:35:38
名前が気持ち悪い>dylan
0279デフォルトの名無しさん2006/09/22(金) 19:40:56
dylanってボブ?
0280デフォルトの名無しさん2006/09/23(土) 15:50:49
Rubyist のための他言語探訪 【第 6 回】 Dylan
著者:まつもとゆきひろ
http://jp.rubyist.net/magazine/?0013-Legwork
> 人名の方の由来は Bob Dylan ではなく、Dylan Thomas (英国の詩人 1913-1953)
> なのだそうです。

もっとも、Bob Dylanの方も、ディランという名は詩人のDylan Thomas から
取っているので、どれも元ネタはこの詩人。
0281デフォルトの名無しさん2006/09/23(土) 16:04:25



なに?
0282デフォルトの名無しさん2006/09/23(土) 18:22:26
279=281だったら苦笑
0283デフォルトの名無しさん2006/09/23(土) 19:23:31
Rubyist のための他言語探訪
俺は、この題名のほうに苦笑
0284デフォルトの名無しさん2006/09/23(土) 22:13:33
>>279
DYnamic LANguage
0285デフォルトの名無しさん2006/09/29(金) 02:40:08
eval-whenを使って、コンパイル時にテーブルを作っておいて実行時にはそれを引く
ということをしたいのですが、どう書けばいいでしょうか。
例えばelispで
(defun foo (x) (assq x (eval-when-compile (mapcar #'cons '(a b c) '(1 2 3))))
とすれば、コンパイルすると定数のテーブルになってくれますが、
Common Lispのeval-whenを使ってコンパイル時に計算するにはどう書けばいいんでしょ。
0286デフォルトの名無しさん2006/09/29(金) 09:16:41
これじゃだめかな

(defun foo (x) (assq x #.(mapcar #'cons '(a b c) '(1 2 3))))
0287デフォルトの名無しさん2006/09/29(金) 11:10:28
ChezSchemeの高速性のひみつ
http://www.kmonos.net/wlog/65.html#_1433060921

なかなか面白かったんで貼ります。
0288デフォルトの名無しさん2006/09/29(金) 11:58:59
>>286
ありがとうございます。#.の前に'がいるみたいですが、使えました。
ところで
(eval-when (:compile-toplevel) (defun bar () (list 1 2 3)))
(defun foo (x) (assq x '#.(mapcar #'cons '(a b c) (bar))))
みたいに#.の中でbarが使えるようなのですが、これは保証されているのでしょうか?
#.による置換はコンパイラの前のリーダでの処理だと思うので、
ちょっと変な感じもするんですが。
0289デフォルトの名無しさん2006/09/29(金) 23:15:08
http://book.mycom.co.jp/book/4-8399-2081-8/4-8399-2081-8.shtml
入門Common Lisp〜関数型4つの特徴とλ計算
0290デフォルトの名無しさん2006/09/30(土) 08:30:20
>>289
>>231
0291デフォルトの名無しさん2006/09/30(土) 10:15:28
一日一門のスレにも書いてるし宣伝なんじゃない?
0292デフォルトの名無しさん2006/09/30(土) 11:49:09
>>288
S 式一つずつ read -> compile を繰り返してるんだと思うと変でもないような。
でも保証されているかといわれると、どうなんだろう
0293デフォルトの名無しさん2006/09/30(土) 12:32:00
コンパイル時に評価してほしいならマクロにすれば?
(defmacro eval-when-compile (&body body)
(list 'quote (eval (cons 'progn body))))
0294デフォルトの名無しさん2006/10/02(月) 06:33:32
>>293
標準で既にそういう手段が用意されているんじゃないかと思ったんですよ。
自分でマクロを用意しないとだめですかね。
(私も似たようなのを書きました。式を一つだけとり、compile-time-valueと)

>>292
保証されているような気がしてきました。というのも、
(in-package "HOGE")
も以後のリーダの動作に影響しないといけないから。
0295デフォルトの名無しさん2006/10/03(火) 17:18:57
clisp 2.40 age
0296デフォルトの名無しさん2006/10/05(木) 10:58:50
Rubyの生産性の高さはどこまで本当か?
http://d.hatena.ne.jp/fromdusktildawn/20061002/1159784863

はてなブックマークの人気記事だが、最終段にいきなりCLOSの熱烈な礼賛が現
れて驚いた。「追記:理想と現実」の部分。

何かそこだけ読むと、以下へのリンクだけあれば済むような気もするが。
技術野郎の復讐---全ての言語はLispに向かう?
http://practical-scheme.net/trans/icad-j.html
0297デフォルトの名無しさん2006/10/05(木) 12:16:09
PythonやRubyに備わってるような現代風のライブラリをCommon Lispでも標準化して
くれれば、もっと仕事でCommon Lisp使えるんだけどなぁ。
ライブラリに釣られてPythonとか使っちゃうことが多い今日この頃です。w
0298デフォルトの名無しさん2006/10/05(木) 13:35:15
現実的には、ライブラリは超重要だよな。
0299デフォルトの名無しさん2006/10/05(木) 14:19:08
(in-package :2ch-user-lib)
0300デフォルトの名無しさん2006/10/05(木) 14:59:07
>>297 お前は俺か。
0301デフォルトの名無しさん2006/10/05(木) 17:51:26
Norvigだって似たようなこと言ってるぜ。はっ、もしかしてお主はNorvig?
0302デフォルトの名無しさん2006/10/05(木) 23:14:54
>>297
自分ライブラリでいいじゃん。
0303デフォルトの名無しさん2006/10/05(木) 23:57:39
だめだ
0304デフォルトの名無しさん2006/10/06(金) 00:04:45
>>302
ライブラリ作るほうが面白くなってきて仕事が進まないのが難点
0305デフォルトの名無しさん2006/10/06(金) 07:40:34
仕事は誰かにやらせようぜ
0306デフォルトの名無しさん2006/10/07(土) 03:35:55
リファレンスカウントを採用しているCommon Lisp処理系ってあるんですか?

循環参照を解決するために他のGCも併用しなきゃいけないっていうのはわかってるんですが、基本的に使い終わったらすぐ開放されるっていう安心感がほしいんです。

Lispはメモリ馬鹿喰い&ガベコレで時間喰いまくりというイメージがあるので。
0307デフォルトの名無しさん2006/10/07(土) 04:50:18
いつの時代の話やねん
0308デフォルトの名無しさん2006/10/07(土) 07:22:15
使い終るたびに解放してたら遅くなるよ。
0309デフォルトの名無しさん2006/10/07(土) 12:38:01
>>297
禿同。まずは文字列処理周辺のライブラリかな。
0310デフォルトの名無しさん2006/10/07(土) 13:16:03
>>306
リファレンスカウントだとカウンタ操作が頻繁におこるのがねぇ。ヒマなとき
だろうがタイトループだろうが問答無用なうえ、カウンタ操作ミスると……

使い終わったらすぐ解放してほしいなら dynamic-extent があるよ。スタック
上にリストや配列を確保できるので、スコープ抜けた瞬間に GC のコストゼロ
で消える。それ以外ならリファレンスカウントよりも Generational GC のほう
が一般的に良いと思うけどねー。

まぁリファレンスカウントのほうが向いてるケースもあるので、どうしても、
というならあらかじめまとめてメモリを確保して俺リファレンスカウントでも
いいんじゃね。
0311デフォルトの名無しさん2006/10/07(土) 13:27:18
>>306
Lispのように小さいオブジェクトをいっぱい操作すると、リファレンスカウント法って
ものすごーーーーーく重いと思うよ。
あと、デストラクタのような概念が無いから解放されなくてもデメリットがあまり無いし。
0312デフォルトの名無しさん2006/10/07(土) 13:36:18
dynamic-extent イイ!!! 最近だと CMUCL や SBCL とかのフリーのコンパイラ
でも一部実装されてんでしょ?良い時代になったもんだ。
0313デフォルトの名無しさん2006/10/07(土) 18:26:00
http://cl-cookbook.sourceforge.net/strings.html
0314デフォルトの名無しさん2006/10/07(土) 23:52:06
教授に、とある学生の卒研のお手伝いを任された。
あるグラフを別のグラフへマッピングし直すような課題。昨日のお話:
後輩:
「先輩、先輩はソフトを Lisp で書いてるって聞いたんですけど。
 この研究には向いてるって言ってましたよね。
 私の卒研では Lisp でないとダメなんですか?全く知らないんですけど。」
 と、悲しそうな顔。。
私:
「あ、いや、とりあえず私のソフトで最初のグラフデータを
 出力するところまでやればいいよ。その後はそれを取り込んで、
 C でもなんでも好きな言語で料理すればいいよ。」
後輩:
「助かりました。Lisp なんて習った事無いんです。名前は聞いた事は有りますけど。」
私:
「え?私は違うけど、君は純粋に情報系の学生でしょ?
 学部の授業に有るでしょ。 Common Lisp とか、Scheme とか、あ〜。そうか。
 Haskell とか、ML とかをやったのかな?」
後輩:
「あ、その、Scheme はやりました。でも、Lisp はやった事無かったんです。」
0315デフォルトの名無しさん2006/10/07(土) 23:57:41
ワッフルワッフル
0316デフォルトの名無しさん2006/10/08(日) 01:05:03
ハスケルハスケル
0317デフォルトの名無しさん2006/10/09(月) 02:14:04
ハスケルってトップダウンって感じだよね
仕様変更にものすごく弱い
0318デフォルトの名無しさん2006/10/09(月) 03:30:27
本物のHaskellプログラマは仕様変更しないから
0319デフォルトの名無しさん2006/10/09(月) 09:53:08
本物のプログラマはHaskellを使わない
0320デフォルトの名無しさん2006/10/09(月) 10:21:30
あらゆる仕様変更にリスクが伴う。
だが昨日を守ること、すなわち仕様変更を行わないことのほうが
明日を作ることよりもリスクを伴う。
0321デフォルトの名無しさん2006/10/09(月) 17:22:10
>>320
ダブルミーニングっつーか掛け言葉的にカッコいい言い回しをしたつもりなんだろうけど
全然意味分からん。
0322デフォルトの名無しさん2006/10/09(月) 17:24:13
要するに「仕事は大変だ」って言ってるだけだからな。
0323デフォルトの名無しさん2006/10/09(月) 17:45:41
プログラマはつらいよ
0324デフォルトの名無しさん2006/10/09(月) 18:24:27
>>323
やべぇ、渥美清が「さくらタンハァハァ」とか言ってるイメージが。
0325デフォルトの名無しさん2006/10/09(月) 19:28:14
>>324
いいじゃねえか。
役柄上はキングオブ童貞だぜ。
0326デフォルトの名無しさん2006/10/13(金) 17:50:32
*** - OPEN: file #P"C:\\home\\onjo\\lisp\\lib\\common\\cffi\\src\\utils.lisp" does not exist
0327デフォルトの名無しさん2006/10/13(金) 19:32:53
下がりすぎて見つけづらいage
0328デフォルトの名無しさん2006/10/14(土) 02:37:33
>>326
どうした?メッセージのとおりファイルがないんだろ?
0329デフォルトの名無しさん2006/10/14(土) 02:49:45
CFFI って使ったことネェ。UFFI とくらべてどうなの? >>326
0330デフォルトの名無しさん2006/10/14(土) 16:08:37
>>326
なつかしー
前に俺もなったw
LispUser.netの中の人しっかりしろよってwwww
0331デフォルトの名無しさん2006/10/15(日) 02:05:44
ワラタ、謎のhomeディレクトリができてると思ったらLispUser.netの人のだったのか、
http://lambda.s55.xr";ae".com/といいおっちょこちょいだな、そこがまた良いがw
■ このスレッドは過去ログ倉庫に格納されています