((Common Lisp) (Sche ..
[2ch|▼Menu]
263:デフォルトの名無しさん
06/09/19 19:10:09
ではSchemeでコーヒーをいれてくれ

264:デフォルトの名無しさん
06/09/19 19:10:14
>>261
ほとんどライブラリだから興味あるとこだけ読めばいいんじゃね?
異論もあるだろうが、個人的にはやっと一人前の言語仕様書になったという気がするよ。w
これでSRFIのお世話にならないで済むようになるのかな。

265:デフォルトの名無しさん
06/09/19 19:10:50
>>263
Java VMを作れという意味か?w

266:デフォルトの名無しさん
06/09/19 19:21:35
RFCにコーヒー淹れるプロトコルあったな

267:デフォルトの名無しさん
06/09/20 00:47:37
流れ豚ギルケド、MLISP(Meta-Lisp) なんて方言があるのね。
Algol 風の文法らしいけど、誰か使った事ある?

268:デフォルトの名無しさん
06/09/20 00:50:50
>>267
M式だな。昔、中西先生が実装した奴を使った。
昔はエディタなどの入力支援が貧弱だったから、括弧が減るのは有り難かったのかも
しれないが、S式に慣れてしまうと要らないかなという気もする。
入門者向けには面白いかもしれないね。

269:デフォルトの名無しさん
06/09/20 01:08:10
>>267
URLリンク(sumim.no-ip.com:8080)

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

さすがは竹内先生。

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

fURLリンク(reports.stanford.edu)
URLリンク(hopl.murdoch.edu.au)

271:デフォルトの名無しさん
06/09/20 11:36:07
>>269
これマクロはLispと似たような感覚でできるの?

272:デフォルトの名無しさん
06/09/20 22:39:56
define-syntaxとsyntax-caseの間のlambdaいらなくね?

273:デフォルトの名無しさん
06/09/21 01:58:21
lambda を書かなくて済むマクロを定義すればよくね?

274:デフォルトの名無しさん
06/09/21 20:46:49
頭悪くてdefine-syntaxを定義できねえ
define-macroのが良くね?

275:デフォルトの名無しさん
06/09/22 03:25:24
>>272-273

  っ
    そ


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

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

LISPのマクロはコードとデータの区別がないがゆえに成立するものだから、M
式ではマクロは書けないんじゃないかな。


277:デフォルトの名無しさん
06/09/22 13:56:08
そこで、Dylan ならマクロも OO もオプショナルな型指定も出来るなあと
いつも思うんだけど、何故か食指が動かん。今なら OpenDylan が使える
んだが。

278:デフォルトの名無しさん
06/09/22 19:35:38
名前が気持ち悪い>dylan

279:デフォルトの名無しさん
06/09/22 19:40:56
dylanってボブ?

280:デフォルトの名無しさん
06/09/23 15:50:49
Rubyist のための他言語探訪 【第 6 回】 Dylan
著者:まつもとゆきひろ
URLリンク(jp.rubyist.net)
> 人名の方の由来は Bob Dylan ではなく、Dylan Thomas (英国の詩人 1913-1953)
> なのだそうです。

もっとも、Bob Dylanの方も、ディランという名は詩人のDylan Thomas から
取っているので、どれも元ネタはこの詩人。

281:デフォルトの名無しさん
06/09/23 16:04:25



なに?

282:デフォルトの名無しさん
06/09/23 18:22:26
279=281だったら苦笑

283:デフォルトの名無しさん
06/09/23 19:23:31
Rubyist のための他言語探訪
俺は、この題名のほうに苦笑

284:デフォルトの名無しさん
06/09/23 22:13:33
>>279
DYnamic LANguage

285:デフォルトの名無しさん
06/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を使ってコンパイル時に計算するにはどう書けばいいんでしょ。

286:デフォルトの名無しさん
06/09/29 09:16:41
これじゃだめかな

(defun foo (x) (assq x #.(mapcar #'cons '(a b c) '(1 2 3))))

287:デフォルトの名無しさん
06/09/29 11:10:28
ChezSchemeの高速性のひみつ
URLリンク(www.kmonos.net)

なかなか面白かったんで貼ります。


288:デフォルトの名無しさん
06/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が使えるようなのですが、これは保証されているのでしょうか?
#.による置換はコンパイラの前のリーダでの処理だと思うので、
ちょっと変な感じもするんですが。

289:デフォルトの名無しさん
06/09/29 23:15:08
URLリンク(book.mycom.co.jp)
入門Common Lisp〜関数型4つの特徴とλ計算

290:デフォルトの名無しさん
06/09/30 08:30:20
>>289
>>231

291:デフォルトの名無しさん
06/09/30 10:15:28
一日一門のスレにも書いてるし宣伝なんじゃない?

292:デフォルトの名無しさん
06/09/30 11:49:09
>>288
S 式一つずつ read -> compile を繰り返してるんだと思うと変でもないような。
でも保証されているかといわれると、どうなんだろう

293:デフォルトの名無しさん
06/09/30 12:32:00
コンパイル時に評価してほしいならマクロにすれば?
(defmacro eval-when-compile (&body body)
(list 'quote (eval (cons 'progn body))))

294:デフォルトの名無しさん
06/10/02 06:33:32
>>293
標準で既にそういう手段が用意されているんじゃないかと思ったんですよ。
自分でマクロを用意しないとだめですかね。
(私も似たようなのを書きました。式を一つだけとり、compile-time-valueと)

>>292
保証されているような気がしてきました。というのも、
(in-package "HOGE")
も以後のリーダの動作に影響しないといけないから。

295:デフォルトの名無しさん
06/10/03 17:18:57
clisp 2.40 age

296:デフォルトの名無しさん
06/10/05 10:58:50
Rubyの生産性の高さはどこまで本当か?
URLリンク(d.hatena.ne.jp)

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

何かそこだけ読むと、以下へのリンクだけあれば済むような気もするが。
技術野郎の復讐---全ての言語はLispに向かう?
URLリンク(practical-scheme.net)


297:デフォルトの名無しさん
06/10/05 12:16:09
PythonやRubyに備わってるような現代風のライブラリをCommon Lispでも標準化して
くれれば、もっと仕事でCommon Lisp使えるんだけどなぁ。
ライブラリに釣られてPythonとか使っちゃうことが多い今日この頃です。w

298:デフォルトの名無しさん
06/10/05 13:35:15
現実的には、ライブラリは超重要だよな。

299:デフォルトの名無しさん
06/10/05 14:19:08
(in-package :2ch-user-lib)

300:デフォルトの名無しさん
06/10/05 14:59:07
>>297 お前は俺か。

301:デフォルトの名無しさん
06/10/05 17:51:26
Norvigだって似たようなこと言ってるぜ。はっ、もしかしてお主はNorvig?

302:デフォルトの名無しさん
06/10/05 23:14:54
>>297
自分ライブラリでいいじゃん。

303:デフォルトの名無しさん
06/10/05 23:57:39
だめだ

304:デフォルトの名無しさん
06/10/06 00:04:45
>>302
ライブラリ作るほうが面白くなってきて仕事が進まないのが難点

305:デフォルトの名無しさん
06/10/06 07:40:34
仕事は誰かにやらせようぜ

306:デフォルトの名無しさん
06/10/07 03:35:55
リファレンスカウントを採用しているCommon Lisp処理系ってあるんですか?

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

Lispはメモリ馬鹿喰い&ガベコレで時間喰いまくりというイメージがあるので。

307:デフォルトの名無しさん
06/10/07 04:50:18
いつの時代の話やねん

308:デフォルトの名無しさん
06/10/07 07:22:15
使い終るたびに解放してたら遅くなるよ。


309:デフォルトの名無しさん
06/10/07 12:38:01
>>297
禿同。まずは文字列処理周辺のライブラリかな。

310:デフォルトの名無しさん
06/10/07 13:16:03
>>306
リファレンスカウントだとカウンタ操作が頻繁におこるのがねぇ。ヒマなとき
だろうがタイトループだろうが問答無用なうえ、カウンタ操作ミスると……

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

まぁリファレンスカウントのほうが向いてるケースもあるので、どうしても、
というならあらかじめまとめてメモリを確保して俺リファレンスカウントでも
いいんじゃね。


311:デフォルトの名無しさん
06/10/07 13:27:18
>>306
Lispのように小さいオブジェクトをいっぱい操作すると、リファレンスカウント法って
ものすごーーーーーく重いと思うよ。
あと、デストラクタのような概念が無いから解放されなくてもデメリットがあまり無いし。

312:デフォルトの名無しさん
06/10/07 13:36:18
dynamic-extent イイ!!! 最近だと CMUCL や SBCL とかのフリーのコンパイラ
でも一部実装されてんでしょ?良い時代になったもんだ。

313:デフォルトの名無しさん
06/10/07 18:26:00
URLリンク(cl-cookbook.sourceforge.net)

314:デフォルトの名無しさん
06/10/07 23:52:06
教授に、とある学生の卒研のお手伝いを任された。
あるグラフを別のグラフへマッピングし直すような課題。昨日のお話:
後輩:
「先輩、先輩はソフトを Lisp で書いてるって聞いたんですけど。
 この研究には向いてるって言ってましたよね。
 私の卒研では Lisp でないとダメなんですか?全く知らないんですけど。」
 と、悲しそうな顔。。
私:
「あ、いや、とりあえず私のソフトで最初のグラフデータを
 出力するところまでやればいいよ。その後はそれを取り込んで、
 C でもなんでも好きな言語で料理すればいいよ。」
後輩:
「助かりました。Lisp なんて習った事無いんです。名前は聞いた事は有りますけど。」
私:
「え?私は違うけど、君は純粋に情報系の学生でしょ?
 学部の授業に有るでしょ。 Common Lisp とか、Scheme とか、あ〜。そうか。
 Haskell とか、ML とかをやったのかな?」
後輩:
「あ、その、Scheme はやりました。でも、Lisp はやった事無かったんです。」

315:デフォルトの名無しさん
06/10/07 23:57:41
ワッフルワッフル

316:デフォルトの名無しさん
06/10/08 01:05:03
ハスケルハスケル

317:デフォルトの名無しさん
06/10/09 02:14:04
ハスケルってトップダウンって感じだよね
仕様変更にものすごく弱い

318:デフォルトの名無しさん
06/10/09 03:30:27
本物のHaskellプログラマは仕様変更しないから

319:デフォルトの名無しさん
06/10/09 09:53:08
本物のプログラマはHaskellを使わない

320:デフォルトの名無しさん
06/10/09 10:21:30
あらゆる仕様変更にリスクが伴う。
だが昨日を守ること、すなわち仕様変更を行わないことのほうが
明日を作ることよりもリスクを伴う。

321:デフォルトの名無しさん
06/10/09 17:22:10
>>320
ダブルミーニングっつーか掛け言葉的にカッコいい言い回しをしたつもりなんだろうけど
全然意味分からん。

322:デフォルトの名無しさん
06/10/09 17:24:13
要するに「仕事は大変だ」って言ってるだけだからな。

323:デフォルトの名無しさん
06/10/09 17:45:41
プログラマはつらいよ

324:デフォルトの名無しさん
06/10/09 18:24:27
>>323
やべぇ、渥美清が「さくらタンハァハァ」とか言ってるイメージが。


325:デフォルトの名無しさん
06/10/09 19:28:14
>>324
いいじゃねえか。
役柄上はキングオブ童貞だぜ。

326:デフォルトの名無しさん
06/10/13 17:50:32
*** - OPEN: file #P"C:\\home\\onjo\\lisp\\lib\\common\\cffi\\src\\utils.lisp" does not exist

327:デフォルトの名無しさん
06/10/13 19:32:53
下がりすぎて見つけづらいage

328:デフォルトの名無しさん
06/10/14 02:37:33
>>326
どうした?メッセージのとおりファイルがないんだろ?

329:デフォルトの名無しさん
06/10/14 02:49:45
CFFI って使ったことネェ。UFFI とくらべてどうなの? >>326

330:デフォルトの名無しさん
06/10/14 16:08:37
>>326
なつかしー
前に俺もなったw
LispUser.netの中の人しっかりしろよってwwww


331:デフォルトの名無しさん
06/10/15 02:05:44
ワラタ、謎のhomeディレクトリができてると思ったらLispUser.netの人のだったのか、
URLリンク(lambda.s55.xr"ae".com)といいおっちょこちょいだな、そこがまた良いがw

332:デフォルトの名無しさん
06/10/17 04:01:11
clispとかsbclとかで、式をステップ実行する方法はないでしょうか?
Emacsのedebugみたいなやつ。

333:デフォルトの名無しさん
06/10/17 04:39:46
>>332
step じゃ駄目?
URLリンク(www.lispworks.com)

334:デフォルトの名無しさん
06/10/17 06:39:51
こういうのがあるんですね。ありがとうございます。
何でも決まってるという感じだなあ。

関数の一部をステップ実行したいときは監視したいところを
stepで囲んでdefunして適当な式をevalするという感じでしょうか?
SLIMEだとstepの部分でデバッガに入ったらsを押すとステップが進みますね。
その中のどの部分を評価しようとしてるかも表示されて(もうちょっと
見易い方がいいけど)なかなかよさそう。

335:デフォルトの名無しさん
06/10/17 19:21:10
>>332
去年だったっけ?
Google Summer of Codeでslime用のedebugみたいなstepperを実装するっていうのやってたけど、いつのまにかそんな話は無かったことになってるみたい。


336:デフォルトの名無しさん
06/10/18 15:33:21
人の属性を表すマクロhogeを作るとき、
引数の並びは次のどちらが一般的なんですか?
(setf (hoge 'Hiroyuki :sex) :male)
(setf (hoge :sex 'Hiroyuki) :male)

337:デフォルトの名無しさん
06/10/18 17:04:21
後者かしら

338:デフォルトの名無しさん
06/10/18 17:15:03
いやもしかしたら前者かも試練

339:デフォルトの名無しさん
06/10/18 19:08:03
>>337-338
結局、好みってこった。

340:デフォルトの名無しさん
06/10/20 04:05:03
(`・ω・´)今日からおまんこ再開です!

341:デフォルトの名無しさん
06/10/20 09:59:55
やっと週末♪ルンルン

342:デフォルトの名無しさん
06/10/20 22:03:20
週末はコーディング天国です。

343:デフォルトの名無しさん
06/10/21 02:42:52
佐賀はローディング煉獄です。

344:デフォルトの名無しさん
06/10/22 00:49:44
?????何故に佐賀?

345:デフォルトの名無しさん
06/10/22 01:14:30
>>344
URLリンク(www.pheedo.jp)

346:デフォルトの名無しさん
06/10/25 00:07:56
何も無ければ来月末、遂に SBCL 1.0.0 が出るみたいね。

347:デフォルトの名無しさん
06/10/25 06:24:22
Schemeの関数呼び出しの評価順序についてですが、R5RSの

> _Note:_ Although the order of evaluation is otherwise
> unspecified, the effect of any concurrent evaluation of the
> operator and operand expressions is constrained to be
> consistent with some sequential order of evaluation. The
> order of evaluation may be chosen differently for each
> procedure call.

というのがいまいちよくわかりません。特に最後の文ですがこれは、
あるときは (a b c) が a→b→c の順で評価され
またあるときは (d e f) が f→e→d の順で評価され
しかしてあるときは (g h i) が g→i→h の順で評価され
ても構わないってこと?

348:デフォルトの名無しさん
06/10/25 07:10:34
operatorとoperandsで見たらoperatorの評価が先じゃないといけないけど、operandsの評価はoperatorの評価に基づくprocedure呼び出しが何かに依存する(でも同じprocecureに対しては常に同じ順序である必要あり)って感じじゃまいか?

349:デフォルトの名無しさん
06/10/25 07:57:48
>>347-348
その引用文で言ってるのは「評価順序は決まってないし、実行するたび順序が
変わるかもしれないけれど、ちゃんと逐次評価される」ってことでしょ。
つまり (a b c) で a b c が同時に評価されたりしないってこと。

350:347
06/10/25 08:05:41
ありがとうございます。つまり、評価はシリアライズされないといけない
(それぞれパラに評価してはいけない)が、その順序は好きにしていいよと
いうことですか。例えば
((begin (X) (Y) (lambda (a) a)) (begin (S) (T))) という式を評価すると
関数X,Y,S,Tが評価される順序は必ず
X→Y→S→T または S→T→X→Y
のどちらかになると。

351:デフォルトの名無しさん
06/10/28 09:48:25
計算機プログラムの構造と解釈
難しすぎる。
これ、問題全部といた人いますか?
質問しても良いです?

352:デフォルトの名無しさん
06/10/28 10:49:17
>>351
とりあえず>>4に目を通してからのがいいんだぜ

353:デフォルトの名無しさん
06/10/28 11:24:07
スレリンク(tech板)

354:デフォルトの名無しさん
06/10/29 04:42:37
しくぷ?
しっくぴー?

355:デフォルトの名無しさん
06/10/29 05:30:02
シック( ´,_ゝ`)プ

356:デフォルトの名無しさん
06/10/30 03:10:38
阿呆っぽい質問で申し訳ないんだが、
LispやSchemeってどういう用途で使われるんだ?

357:デフォルトの名無しさん
06/10/30 03:14:04
汎用

358:デフォルトの名無しさん
06/10/30 12:50:12
俺は低レベルな操作以外はほとんどSchemeでやってる

359:デフォルトの名無しさん
06/10/30 12:54:13
俺は低レベルだからほとんどLispで済ませてる

360:デフォルトの名無しさん
06/10/30 18:27:33
自分で実装できないくらい難しい言語はわからないから括弧の世話になってる

361:デフォルトの名無しさん
06/10/30 22:36:45
>>360
不覚にもワロタ


362:デフォルトの名無しさん
06/10/31 00:23:15
確かにLispは(暇さえあればすぐに)自分で実装できそうな透明感が魅力だよな

363:デフォルトの名無しさん
06/10/31 05:44:09
お勧めの処理系は?

364:デフォルトの名無しさん
06/10/31 06:54:34
>>363
Chez Scheme

365:デフォルトの名無しさん
06/10/31 11:49:13
emacs22

366:デフォルトの名無しさん
06/10/31 12:15:00
>>363
マジレスすると CLISP かな
Scheme なら Gauche

367:デフォルトの名無しさん
06/10/31 21:52:17
俺はGaucheしか使ってないが、
それは日本語を扱うときに罠がないからだ!

368:デフォルトの名無しさん
06/10/31 23:12:54
OpenMCL で UNICODE が使えるようになったみたいね。

369:デフォルトの名無しさん
06/10/31 23:53:40
SLIMEの起動画面はもう少し静かにならんのか

370:デフォルトの名無しさん
06/10/31 23:55:52
Win32版sbclがshift-jisに対応することを切に願う。

371:デフォルトの名無しさん
06/11/01 00:14:10
You can do it!

372:デフォルトの名無しさん
06/11/01 05:02:59
>>370
書いた。

373:デフォルトの名無しさん
06/11/01 07:44:45
>>369
Emacs 側の変数設定でできた気がする

374:デフォルトの名無しさん
06/11/01 08:18:38
アニメーションを抑制するなら、
(setq slime-startup-animation nil)

375:デフォルトの名無しさん
06/11/02 01:38:52
>371-372
shift-jis使えるの?

376:デフォルトの名無しさん
06/11/02 02:03:59
>>375
いつもの人がパッチ送ってくれてたよ。

CLX で日本語を表示させたくて、文字コードを JIS に変換する処理を書いた事があるけど、
ここら辺を参考にすれば自分で作るのも簡単だと思う。

URLリンク(sbcl.cvs.sourceforge.net)

377:デフォルトの名無しさん
06/11/02 03:06:02
パッチ当てれば普通に使えるみたい。
Windows で動かすにはコードページを alias として追加する必要があるのかな。

$ echo $LANG
ja_JP.SJIS
$ ./src/runtime/sbcl --core output/sbcl.core
This is SBCL 0.9.18.18, an implementation of ANSI Common Lisp.
More information about SBCL is available at <URLリンク(www.sbcl.org)

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.
* sb-impl::*default-external-format*

:SJIS
* (coerce "表示" 'list)

(#▼U8868 #▼U793A)
* (string-to-octets "表示")                              

#(149 92 142 166)

378:デフォルトの名無しさん
06/11/02 18:50:54
実行ファイル作れるの?

379:デフォルトの名無しさん
06/11/02 23:03:14
>>378
作れるよ。ってか、もしかしてメーリングリスト見ながら書いてるノカ?
Windows でも cygwin/mingw があればいけるらしいけど…

380:デフォルトの名無しさん
06/11/02 23:13:35
えーと SBCL の話でいいのかな。
これの実行ファイル作成は
copy /b sbcl.exe + runtime.core runtime.exe
と同等の処理なので、必要なのは SBCL 自体だけ、cygwin も mingw も不要です。

381:デフォルトの名無しさん
06/11/02 23:28:36
ソカ、スマソ

382:デフォルトの名無しさん
06/11/03 00:18:38
それはともかく、Win32 で SBCL 使ってる香具師は
(sb-win32::ansi-codepage)
の内容を当てた patch を sbcl-devl に送れ。
1.0 で日本語 Windows がサポートされるかどうかの瀬戸際だぞ。

383:デフォルトの名無しさん
06/11/03 00:28:42
そういや SBCL は 1.0 の前にソースコードのクリーンアップがあると思ってたけど、
このままリリースに突入するっぽいね。kludge 系は潰すのかと思ってた。

384:デフォルトの名無しさん
06/11/03 00:49:23
何ヶ月か前の議論見ればわかるけど、SBCL が 0.10 ではなく 1.0 になるの
にはマーケティング的意味しかないよ。
とは言え多数の「いつかやろう」を「1.0 までにやろう」に push したのは
確かだから、充分に意味のあることだったと思う。

385:デフォルトの名無しさん
06/11/03 01:12:12
特に stabilize する意図は無いんだ。stable 版が出たらパッケージでも作ろうかとしてたんだけど、、、
1.0 は一般への影響はそれなりにあるのかな? SBCL を授業で使う大学とか出て来ると良いね。

386:デフォルトの名無しさん
06/11/03 09:49:45
quack.elに慣れると閉じ括弧を全部 ] で打つ癖がついてしまって困る。

387:デフォルトの名無しさん
06/11/04 21:04:21
SBCL on Windows でも日本語が使えるようになったよ。
URLリンク(article.gmane.org)
URLリンク(with2ch.net)
1.0 までにマージされるといいけど。

388:デフォルトの名無しさん
06/11/04 22:05:37
>>387
GJ!

389:デフォルトの名無しさん
06/11/06 01:14:32
SBCLのSTYLE-WARNINGは黙らせられないの?

390:デフォルトの名無しさん
06/11/06 22:06:13
schemeで、
(hoge a b c (hoge d e f) g)
のような式を書いたときに、
hogeが自分の括弧のネストレベルを判断して
動作を変えるようにしたいと思っています。
上の例でいえば、
1番目のhogeがネストレベル1の動作
2番目のhogeがネストレベル2の動作
をするようにしたいんですが、
やっぱりevalを定義し直すしか無いですか?

391:デフォルトの名無しさん
06/11/06 22:51:51
何をやりたいか、ではなく、何故そういうことをやりたいか、を書いた方が有用な助言が
得られる可能性は高いだろう。

392:デフォルトの名無しさん
06/11/06 23:14:18
>>391
俺は>>390じゃないけど、デバッグ用のユーティリティだと予想。

393:デフォルトの名無しさん
06/11/07 02:14:50
マクロにしろ関数にしろ、なんか変数にネストレベルを持って
それによって分岐するようにすればできるんじゃないの。

394:デフォルトの名無しさん
06/11/07 04:32:03
ネストの深さで動作が変わるのか?
読みにくそうだな。。。

>>390>>391のレスにきちんと応えてほしい。

395:デフォルトの名無しさん
06/11/08 00:11:03
DrSchemeを触り始めたんですが、補完はどうやったらできるんですか?
Ctrl+Spaceを押すと「自動拡張」とステータスバーに出るけど、
意味がわからない。何かキーを押すと普通に入力されるだけだし……

396:デフォルトの名無しさん
06/11/09 22:00:44
URLリンク(journal.mycom.co.jp)
Cusp の紹介。

内容には色々言いたい点もあるけど...

397:デフォルトの名無しさん
06/11/12 18:42:22
lambda age

398:デフォルトの名無しさん
06/11/12 20:08:26
LISPでJavaのtoStringメソッドのような機構ってどのようなものがありますか?

399:デフォルトの名無しさん
06/11/12 20:30:00
(format nil "~a" ■)

400:デフォルトの名無しさん
06/11/12 20:34:30
(write-to-string ■)

401:デフォルトの名無しさん
06/11/13 00:16:24
(defmethod print-object ((object ■) stream)
...)

402:デフォルトの名無しさん
06/11/13 01:51:59
なんかエロイ

403:デフォルトの名無しさん
06/11/13 01:54:35
○○な部分を■で隠してあるんだな

404:デフォルトの名無しさん
06/11/16 21:04:25
SICP is dead.


405:デフォルトの名無しさん
06/11/16 21:55:51
Why?


406:デフォルトの名無しさん
06/11/16 23:34:42
MIT is phasing out 6.001.


407:デフォルトの名無しさん
06/11/17 01:47:50
後継の講座は Python らしいね

408:デフォルトの名無しさん
06/11/17 01:50:43
CMUCL か

409:デフォルトの名無しさん
06/11/17 01:57:32
そのボケ方は
Lisper 以外にはまったく通じないんだぜ?

410:デフォルトの名無しさん
06/11/17 02:00:38
ここに Lisper 以外がいるとでも?

411:デフォルトの名無しさん
06/11/17 18:58:34
リスパー伊東

412:デフォルトの名無しさん
06/11/17 19:06:51
CASIO AI-1000

413:デフォルトの名無しさん
06/11/18 06:20:48
schemeのcurrent-continuationは失敗だと思う。
それだったらgccみたいなLabel as Valueとcurrent-environment
を導入してくれた方がありがたい。
協調型スレッドもどきを作れたとしても、コストが掛かりすぎる。
IPとその時の環境が見えればccは実装できるんだから、
個別に取得できるようにすべきだった。


414:デフォルトの名無しさん
06/11/19 06:27:57
今までSchemeには予約語がないと思っていたけど、R5RSを見ると
defineとかの<syntactic keyword>は<variable>に含まれないので
予約語なのね。大抵の処理系では束縛できてしまうから、知らなかった。

415:398
06/11/19 12:16:10
(format nil "~a" ■)

cのfprintfみたいなもの。

(write-to-string ■)

javaのSystem.out.print()みたいなもの

(defmethod print-object ((object ■) stream)
...)

オブジェクト指向をした場合の
JavaのtoStringのメソッド的なもの

と理解しててよいのでしょうか?

416:デフォルトの名無しさん
06/11/19 16:15:06
アナロジーは理解の助けになる場合もあるが、例え話だけで理解したつもりになるのは
危険でもある。「理解しててよいのでしょうか」と聞かれたら「駄目」と答えるだろう。
それ以上のことをきちんと知りたいなら、ちゃんと勉強したほうがいい。

417:デフォルトの名無しさん
06/11/19 16:17:39
つか write-to-string の例えは違うんじゃね

418:デフォルトの名無しさん
06/11/19 16:30:17
toString() に一番近いのは write-to-string だろうな

419:デフォルトの名無しさん
06/11/20 01:18:44
何でみんな MIT Scheme 使わないの?

420:デフォルトの名無しさん
06/11/20 01:23:20
なんで MIT Scheme 使うの?

421:デフォルトの名無しさん
06/11/20 01:38:47
Scheme 界では数少ないネイティブコンパイラやん。
他はネイティブでも JIT とかトランスレータとかやん。

422:デフォルトの名無しさん
06/11/20 01:48:42
その割に遅かった希ガス(最近試してないけど)

423:デフォルトの名無しさん
06/11/20 04:03:44
同じく最近試してないけど、unicode 周りが悪夢のようなことになっていたような。

424:デフォルトの名無しさん
06/11/20 06:44:12
FreeBSD 6 で SBCL 使ってる人、テストに協力してくだされ。

URLリンク(article.gmane.org)
URLリンク(article.gmane.org)

425:デフォルトの名無しさん
06/11/20 13:22:45
>>424
weft didn't produce an output.
といって表示されねーので説明きぼんぬ。

426:デフォルトの名無しさん
06/11/20 14:37:56
>>425
SBCL のスレッドを FreeBSD で動かすパッチです。

Google Groups の archive
URLリンク(groups.google.com)
URLリンク(groups.google.com)

427:デフォルトの名無しさん
06/11/20 15:56:58
caseを試してみましたが、
SCMでは
(case 'hoge (('hoge) #t) (else #f)) => #f
となってしまいます。
(eqv? 'hoge 'hoge) => #t
なのに、なぜ最初の式では#tが返らないのでしょうか。

428:デフォルトの名無しさん
06/11/20 16:04:19
(case 'hoge ((hoge) #t) (else #f)) => #t
caseラベルは定数しか書けないので、暗黙にquoteされる

429:427
06/11/20 16:31:41
>428
教えていただいてから気がついて、
r5rs 7.3のcaseのコードを読み直してみたら、
(if (memv key '(atom ...)) ...
となっているのを確認しました。
ありがとうございます。

430:デフォルトの名無しさん
06/11/20 23:12:24
>>413
同意

431:デフォルトの名無しさん
06/11/20 23:46:49
>>424
CVS に取り込まれたみたいだね。お疲れさん。
俺は FreeBSD ユーザじゃないので試せないけど。

432:デフォルトの名無しさん
06/11/21 07:27:09
>>424
乙。

433:デフォルトの名無しさん
06/11/21 11:28:26
>>424
神パッチキターーこれで FreeBSD でもスレッドが!! うひょぉ


434:デフォルトの名無しさん
06/11/23 08:41:03
ところで、昨日一昨日のFranzセミナーの件はどうなったの?

435:デフォルトの名無しさん
06/11/23 09:48:12
>>413
禿げ上がる程同意

436:デフォルトの名無しさん
06/11/23 15:16:59
>>435が10年後に悔やむスレになりそうだ。


437:デフォルトの名無しさん
06/11/23 15:31:18
誰かLispで2chブラウザ作って!

438:デフォルトの名無しさん
06/11/23 15:53:13
>>437
あるだろ。

439:デフォルトの名無しさん
06/11/23 18:36:08
詳しく

440:デフォルトの名無しさん
06/11/23 18:47:02
navi2ch?

441:デフォルトの名無しさん
06/11/23 19:30:41
なるほど、そゆことか

442:デフォルトの名無しさん
06/11/23 22:47:16
>>437
rep2好きの俺だがKahuaとかで2chブラウザ作ったら面白そうだな

443:デフォルトの名無しさん
06/11/24 02:27:42
Kahuaで2chブラウザとかワロスwwwwwwwwwwwwwww

444:デフォルトの名無しさん
06/11/24 02:45:21
なにそれ?Webアプリになってるってこと?

445:デフォルトの名無しさん
06/11/24 08:37:19
>>444
rep2ってphpでかかれた2chブラウザって言うか補助サーバがあるんよ。
(ブラウザって言うのにすごい抵抗があるんだが)


446:デフォルトの名無しさん
06/11/26 18:51:55
Schemeで

(string->???? "(lambda () 5)")
> 5

となるような関数ってありますか?

447:デフォルトの名無しさん
06/11/26 19:06:31
作ればある。でも宿題ならもうちょっとちゃんと問題文を書かないと…

[リストの三番目を返す?]
gosh> (define (string->???? str) (caddr (read-from-string str)))
string->????
gosh> (string->???? "(lambda () 5)")
5

[関数を評価する?]
gosh> (define (string->???? str) ((eval (read-from-string str) ())))
string->????
gosh> (string->???? "(lambda () 5)")
5


448:446
06/11/26 19:21:57
>>446

ありがとうございました。自作CUIにコピペさせて頂きます。

で、[関数を評価する]がしたかったのです。
類推で (string->list string) としたら
◯| ̄|_ だったもので…

449:デフォルトの名無しさん
06/11/26 22:10:11
◯| ̄|_がかえってくる関数

450:デフォルトの名無しさん
06/11/27 09:36:00
なるほどなあ。
string->number等との類推で考えればstring->listをread-from-stringみたいに
考えるのも一つの解釈か。

451:デフォルトの名無しさん
06/11/27 12:57:27
.NETでつかえるSchemeの実装ないですか
それあればそれなりに強力なライブラリと使える言語の両方が手に入るのに・・・(´・ω・`)

452:デフォルトの名無しさん
06/11/28 04:02:35
触ったことはないけど。
URLリンク(www.ccs.neu.edu)

453:デフォルトの名無しさん
06/11/28 06:44:04
◯| ̄|_
○| ̄|_

微妙に丸の文字が違うな。

454:デフォルトの名無しさん
06/11/28 07:01:54
   ◯◯◯
 ◯◯◯◯◯
◯| ̄|_ ̄ |◯ プカプカ
~~~~~~~~~~~~~~~~~~~~~~~~

455:デフォルトの名無しさん
06/11/29 11:37:32
◯| ̄|_
○| ̄|_
◯| ̄|_
○| ̄|_
◯| ̄|_
○| ̄|_
  |
  |
  |

456:デフォルトの名無しさん
06/11/30 15:15:55
SBCL 1.0!

457:デフォルトの名無しさん
06/12/01 05:32:39
遂に来たね。

458:デフォルトの名無しさん
06/12/01 20:20:00
srfiのtexiって無いですか?
infoでも良いんですが。
できれば全部揃っているとうれしいです...

459:デフォルトの名無しさん
06/12/01 20:34:05
URLリンク(slashdot.jp)

460:デフォルトの名無しさん
06/12/02 09:17:04
うわぁ。さすがスラドだね。

461:デフォルトの名無しさん
06/12/02 12:48:20
あらためて思うけどCLの実装系ていいよね
ちゃんと仕様のあるバカでかい関数群が確実にあるんだから

462:デフォルトの名無しさん
06/12/02 13:20:10
>>461
そうだね。よく「仕様が巨大」とか言われるけど、今の基準ではそれほどでもないと思う。
(JavaのクラスライブラリとかSRFIを全部入れたSchemeのほうが大きいんじゃないかな)
でも、そろそろXMLとかネットワークとかのいまどきの機能を加えたCLtL3を制定してほしい。

463:デフォルトの名無しさん
06/12/02 19:48:53
とりあえず「言語仕様」と「ライブラリ仕様」を分けて〜
んで「ライブラリ仕様」は小刻みにupdateさせてやってほしい

464:デフォルトの名無しさん
06/12/02 22:12:11
CLRFI というのがあるけど流行ってないねえ。

標準化って実装するよりもパワーが必要だから、asdf を使って主要な処理系で
動くようにすればそれでいいじゃないかということなのかも。

465:デフォルトの名無しさん
06/12/03 01:11:03
lispはマクロが強力だとのことなので、
例えば(cl-to-scheme cl-func)みたいな感じでclのライブラリをscheme用に変換してくれるマクロがありそうな気がしますがどうなんですか?
また、schemeはコンパイラがないので、sbclとかを使うために、
(scheme-to-cl scheme-func)みたいなマクロがあると便利にlispはマクロが強力だとのことなので、
例えば(cl-to-scheme cl-func)みたいな感じでclのライブラリをscheme用に変換してくれるマクロがありそうな気がしますがどうなんですか?
また、schemeはコンパイラがないので、sbclとかを使うために、
(scheme-to-cl scheme-func)みたいなマクロがあると便利におもいますが、
存在するのでしょうか?おもいますが、
存在するのでしょうか?

466:デフォルトの名無しさん
06/12/03 01:14:43
lispはマクロが強力だとのことなので、
例えば(cl-to-scheme cl-func)みたいな感じでclのライブラリをscheme用に変換してくれるマクロがありそうな気がしますがどうなんですか?
また、schemeはコンパイラがないので、sbclとかを使うために、
(scheme-to-cl scheme-func)みたいなマクロがあると便利におもいますが、
存在するのでしょうか?

467:デフォルトの名無しさん
06/12/03 03:24:03
まぁ、CL で Shceme を実装することは可能だし、Scheme で CL を実装することもできるからな。
>>466 の言うようなマクロはどっちも可能だが、CL と Scheme は思想が異なるのでメリットはあまりない。
CL で Scheme を実装するのは結構簡単(Norvig の教科書だと 10 ページくらいでつくってた)なので
学生の課題などで結構見かける。 cl-to-scheme はメリットがあまりないのと、CL を実装するコストが
大きいのでだれもやらないんじゃないか。

468:デフォルトの名無しさん
06/12/03 03:26:19
2chもまともに使えない奴には教えてやらん

469:デフォルトの名無しさん
06/12/03 05:12:53
schemeにはコンパイラが無いなんてどこで聞いてきたんだい。

MIT-Scheme
Larceny
Chez
Chicken
Stalin
Bigloo
Gambit
PLT

あと何かあったっけ。歴史的にはRabbitとかTとか。

470:デフォルトの名無しさん
06/12/03 10:33:14
つうか荒しなんじゃね? c.l.l で暴れてる gavino みたいなタイプの。

471:デフォルトの名無しさん
06/12/03 12:03:45
Common Lisp と Scheme とでは reader の仕様が違うから、マクロでの実装は
無理なんじゃないかな。

472:デフォルトの名無しさん
06/12/03 12:22:36
URLリンク(unit.aist.go.jp)
テレビで見るたびに思ってたんだけど、このロボットはリスプっぽいよね

473:デフォルトの名無しさん
06/12/03 13:47:40
>>470
c.l.lなんて流量たくさんでとても読めない。どうやって読んでるの。

474:デフォルトの名無しさん
06/12/03 14:13:29
『Scheme について』
URLリンク(cl-www.msi.co.jp)

やっぱり Scheme は学習用ってことなのかね

475:デフォルトの名無しさん
06/12/03 14:30:33
>>459-460
あーそれは俺が酔っ払いながらタレコんだやつだな。
しかし、自分では実装側にいるつもりだったのに、使ったことない事情通扱い
されてたのにはまいった。

476:デフォルトの名無しさん
06/12/03 14:54:22
>>469
CL でいう SBCL みたいな位置付けのが無いね。
日本人はみんな Gauche を使ってるイメージだけど。

477:デフォルトの名無しさん
06/12/03 15:36:34
他言語との比較はいいけど、lisp 言語族の中くらいは仲良くやってほすぃ…

478:デフォルトの名無しさん
06/12/03 16:09:20
>>474
その判断をするのはスキーム設計者の反論を聞いてからの方が良いのではないかな?

479:デフォルトの名無しさん
06/12/03 17:23:57
反論聞きたいですねー

480:デフォルトの名無しさん
06/12/03 17:36:46
反論じゃないけど、継続(continuation)と関係あるような気がするんだよねー

481:デフォルトの名無しさん
06/12/03 17:57:36
schemeはいつまで経ってもオモチャレベルから脱しきれない印象があるんだよね。
これは多くの人が感じていることだと思う。
ただ、口に出すとはばかられるから、まあ、サイレントマジョリティって感じかな。

482:デフォルトの名無しさん
06/12/03 18:36:23
黒田寿男って何様のつもりなんだか・・・。

483:デフォルトの名無しさん
06/12/03 18:52:26
Scheme 好きも CL をバカにしたり見下す人が多いからお互い様だろ。
いちいち気にしないほうがいいと思うよ

484:デフォルトの名無しさん
06/12/03 18:55:42
ぜひ>474に対する意見聞いてみたい。
c.l.sあたりに簡単な翻訳つけて投下すれば良いんだろうか。

485:デフォルトの名無しさん
06/12/03 19:02:26
>>483
お互い様か。そうだったね。あまりいい評判がない guile だけど Linux で
成果をあげようと精進してるんだろうなーと思い直せた。黒田寿男みたいに
プロパガンダに走らないきちんとした議論をするには Scheme にもきちんと
したアプリケーションが必要なんだろう。ところで Scheme で書かれた一番
大きいアプリケーションってなんだろう?

486:デフォルトの名無しさん
06/12/03 19:05:08
>>484 それはウザいだけで何も得るところはないのでやめとけ。
Lsip-1 vs Lisp-2 とか定番のフレームになるだけ。

487:デフォルトの名無しさん
06/12/03 19:12:22
>>484
下らん煽りうぜーよ。好きなほう使えばいいだけじゃん。
そんな論争で得られるものなんてもうほとんど残っていない。
俺はCL派だが、Schemeを攻撃しようなんて思わんぞ。

488:デフォルトの名無しさん
06/12/03 19:13:01
煽る奴はたいていどちらかの経験しかない奴だな

489:デフォルトの名無しさん
06/12/03 19:19:18
これが後の黒田発言である。

490:デフォルトの名無しさん
06/12/03 19:29:26
LL言語批判くらいで止めとけばよかったのにねー

491:デフォルトの名無しさん
06/12/03 21:59:03
黒田の発言ってこれかな

URLリンク(practical-scheme.net)

> この事例を解説された数理システムの黒田氏は、懇親会とかでも
> 「SchemeなんかをCLと一緒にしないで欲しい。」とSchemeをけちょんけちょんに
> おっしゃるわけで、とても悔しいわけだが、それでもとにかく実際の業務を通して
> 実力を示しておられるからこそ、あそこまで自信を持って主張できるのだろう。

しかし Scheme 好きの人間の前でこれを言うってすごいなぁ

492:デフォルトの名無しさん
06/12/03 22:33:07
おまえらおちつけよ。もうちょっと心を広くもてよ。
どっちがというと CL のセミナーで CL マンセー発言を聞いて気分を害するほうがどうかと…


493:デフォルトの名無しさん
06/12/03 23:57:12
2 蓑輪 太郎Mona OSにおける次世代Schemeシェルの開発

詳細キボンヌ

494:デフォルトの名無しさん
06/12/04 00:09:01
Common Lisp 好きだけど、スクリプト言語批判の ANSI CL には無駄な仕様が
*1つも* 無いってのはどうかと思った。
loop マクロはともかく、X3J13 自身が deprecated だと言ってる -if-not 系
の関数とか、format の ~R や ~P などの「それは本当にフォーマット文字列で
指定すべきことなのか?」な仕様とか。

495:デフォルトの名無しさん
06/12/04 00:23:29
~r のような冗談機能はやっぱり必要ですよ

496:デフォルトの名無しさん
06/12/04 01:30:39
>>494 「Lisp の良いとこを取ろうと思ったら〜」省略していい無駄な仕様はないってことだろう。
つうか、後半の文章を読むとコンパイラ周りやスペシャル変数なんかを備えずに、ほんの一部の機能だけを
実装しただけで、Lisp の良いところを備えたとか Lisp を超えたとか主張するのを苦々しく思ってたんだろうね。

ふと、R な言語の人の昔 Lisp セミナーの印象に関する記事読んで苦々しく思ったのを思いだした。
> ソースは全然見てないんだけど、印象からは、AllegroServeの完成度は、 WEBrickといい勝負と見た。
発表者の力量不足もあったかもしれんけど、そりゃねーだろ。

497:デフォルトの名無しさん
06/12/04 03:40:18
>>474 のマクロが作れないってどういう事?

498:デフォルトの名無しさん
06/12/04 03:46:15
schemeはdefine-syntax系だけでdefmacro相当なのはないんじゃないっけ?
まあだいたい処理系毎にあるんだろうけど。


499:デフォルトの名無しさん
06/12/04 03:52:30
Scheme は Lisp ではないってところが気になる。

500:デフォルトの名無しさん
06/12/04 03:56:41
SchemeはCommon Lispではない、の間違いではないかと。

501:デフォルトの名無しさん
06/12/04 04:09:14
>>474 のは、>>486 みたいな理解でおけ?
Scheme の勉強始めようと思って、環境をつくろうとしてたところなので、
出鼻をくじかれたような感じで。

502:デフォルトの名無しさん
06/12/04 04:35:48
つまんでみれば実際どうなのかわかるんじゃねえの?

503:デフォルトの名無しさん
06/12/04 05:11:11
つまんだくらいで、lispはプログラムを書くプログラムが書けるってのがわかるのか…
しかも、scheme と common lisp の違いまで。

504:デフォルトの名無しさん
06/12/04 06:18:38
少なくとも、つまんでみなきゃなんにもわからんだろ?

505:デフォルトの名無しさん
06/12/04 06:54:34
> 少なくとも
ホントに「少なく」なったな

506:デフォルトの名無しさん
06/12/04 07:02:49
つまんね

507:デフォルトの名無しさん
06/12/04 07:05:03
つまんでますよ、どっちも。

508:デフォルトの名無しさん
06/12/04 07:42:32
まぁ、自分に都合の悪い流れは誰でもつまらない。

509:デフォルトの名無しさん
06/12/04 13:16:10
>>501
少なくともまだ勉強してない人には関係ない話だ
万一Schemeが無駄なものであってもSchemeの勉強は無駄にはならないから安心して勉強汁w

510:デフォルトの名無しさん
06/12/04 14:37:19
どれだけ立派な肩書きがあろうと自社の製品のためだけに他を中傷して自分の利益を
はかろうとする人間は技術者として失格だと思う。自分のオナニーのために他人を
レイプして楽しんでるように見えた。

511:デフォルトの名無しさん
06/12/04 14:57:46
>>510
それコの業界の人ほとんどみんな当てはまっちゃうよ……(LinusタンからBillGまで)。

512:デフォルトの名無しさん
06/12/04 16:57:55
>>510
レイプした時点で既にオナニーではないと思う

513:デフォルトの名無しさん
06/12/04 17:23:41
レイプは、相手の気持ちを無視して自己完結しているという意味で、
オナニーと同類。

514:デフォルトの名無しさん
06/12/04 21:24:04
つかshiroさん呼んでるくせに普通に失礼だよなw

515:デフォルトの名無しさん
06/12/04 21:38:43
「朝まで生テレビ」方式だな。意図的に話が噛み合わないとを期待したメンバ。w

516:デフォルトの名無しさん
06/12/04 23:36:19
>>514
呼んではないみたいよ
ハワイからの中継でやったみたい

517:デフォルトの名無しさん
06/12/05 06:22:54
FreeBSDで動くお薦めのCommon Lisp処理系を教えてくだされ。

518:デフォルトの名無しさん
06/12/05 08:20:56
sbcl

519:デフォルトの名無しさん
06/12/05 08:31:53
ラムダ式の意味について質問です.
λxyz.MNO という式は,以下のコードと同じことを意味している
のでしょうか?

(lambda (x y z)
((M N) O))

520:デフォルトの名無しさん
06/12/05 09:00:28
日本語でおk

521:デフォルトの名無しさん
06/12/05 14:02:07
>>519
違う。

522:519
06/12/05 14:49:40
では,λxyz.MNO というラムダ式を Scheme の表現に対応
させて表すことはできるでしょうか? できるとしたら,どんな
表現になるでしょうか?



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

5394日前に更新/211 KB
担当:undef