Lisp Scheme Part17
..
331:デフォルトの名無しさん
07/05/19 01:11:55
>>327
緑
332:デフォルトの名無しさん
07/05/19 01:15:30
紫かなあ。ANSI Common Lisp の表紙が紫だから。
333:デフォルトの名無しさん
07/05/19 01:23:10
Ruby ・・・ ルビー色
Perl ・・・ 真珠色
Python ・・・ ニシキ蛇色
Lisp ・・・ ポール色
334:デフォルトの名無しさん
07/05/19 01:26:40
Python 青紫 Common Lisp 透明で少し青みがかかってるちょいとつや消し
Ruby 赤 Perl 黄 Scheme 明るい青
C やや白っぽい黄 C++ ドドメ色
AWK 赤茶色 sed 黄
Ocaml 肌色
335:デフォルトの名無しさん
07/05/19 07:28:21
>>316
君が思うまでもなく、みんな慣れの問題についての話をしてるんだよ。
何のメリットも無いのに、慣れるための壁を高くしてそうな日本語訳についての話。
336:デフォルトの名無しさん
07/05/19 09:22:35
Perl で黄色ってのはどういう連想なんだろう?
俺はCPANが水色だから水色を連想した。
>>334
>C やや白っぽい黄
なんかエロイな。
337:デフォルトの名無しさん
07/05/19 09:54:54
どうでもいいです。ネタがないなら無理して書き込まなくて結構です。
338:294
07/05/19 14:18:23
>>325
結局C的に言えば
参照→*&x
束縛→&x
になりますかね
339:294
07/05/19 15:35:47
いろいろ考えすぎてました
識別子は場所に束縛される
束縛は識別子が束縛されている場所
参照は識別子が束縛されている場所から値を得る
ですね
340:294
07/05/19 16:32:40
いろいろな処理系の挙動を観察してみましたが
結論としてはdefine-syntax内ではdefineは使わないほうが良いようですね
他の束縛コンストラクタは閉じ括弧によって明示的にスコープも閉じられるので解釈に曖昧さがありませんが
defineはスコープの終端が明示的ではないので処理系によって挙動がずいぶん違うようです
というか内部定義のdefineなんてものが諸悪の根源のような気もします
341:デフォルトの名無しさん
07/05/19 18:28:42
用語なんて慣れの問題
342:デフォルトの名無しさん
07/05/19 18:33:35
あだだだだだ・・・・・・
イタイねぇw
343:デフォルトの名無しさん
07/05/19 18:40:28
今日も痛いの湧いてんなぁ
344:デフォルトの名無しさん
07/05/19 18:49:10
↑なんか湧いてるぞ
345:デフォルトの名無しさん
07/05/19 18:55:09
>>339
なんか別の言葉で再定義して満足してるだけじゃね?
346:デフォルトの名無しさん
07/05/19 20:36:40
Ruby スレを荒らしてたキチガイだろ。調子のって Ruby スレで暴れてたら
Lisper が居て泣きながら帰ってきたってとこか。迷惑な…。
Ruby スレでもいらない子。Lisp スレにもどってきてもやっぱりいらない子。
347:デフォルトの名無しさん
07/05/19 20:44:33
セルビオゲゼルが提唱している、減価する貨幣。
私はそれを実現するべくLispの勉強を始めたのでした。
348:デフォルトの名無しさん
07/05/19 21:02:57
>>346
ライブラリが無いから実用的じゃないという流れでACL出されて
その後論点がまるで変わっているように見えるんだけどなぁ
というかこどもっぽい反応が目に付くような
349:294
07/05/19 21:30:05
>>342-4 >>346
スレを汚して申し訳ないですけど
私はRubyスレをのぞいた事も書き込んだ事もないですし、
CLとschemeは勿論、それ以外の言語をけなす意図もないです
>>345
新しい概念の理解ではないので、自分の理解している言葉に置き換えただけです
350:デフォルトの名無しさん
07/05/19 21:45:33
>>348
つか Ruby スレで Lisp 話やるのがスレ違いで叩き出されて当然だろ。
戻ってこられても迷惑だけど。
351:デフォルトの名無しさん
07/05/19 21:48:21
見てきただけの俺に言われても困るんだが…
352:デフォルトの名無しさん
07/05/19 21:58:47
>>350
キミも荒らしている一人じゃないか?
ほぼ書式が一緒だが
701 名前:デフォルトの名無しさん[sage] 投稿日:2007/05/19(土) 00:16:07
>>689 バカはお前だよ。CL コミュでもライブラリ不足は長い事問題になってんじゃん。
で、他言語のライブラリを活用しようとかって話でてるじゃん。ILC とか c.l.l とか読んでるんか?
きみのような頭が病気な人が一人いるだけで Lisper としては迷惑なんだよ。ここは Ruby スレだし。
まぁ Lisp 厨を装った荒しなんだろうけど、困ったもんだ…。
710 名前:デフォルトの名無しさん[sage] 投稿日:2007/05/19(土) 01:29:24
>>702 救い難いキチガイだな。なんで SBCL だと思ったんだ?妄想?
残念だけど Allegro CL 使ってるっつーの。そんでも Ruby を使うこともある。
そんで敬意は払う。おまえみたいに比較ばっかりで何一つ使いこなせないのが一番タチ悪いよ。
720 名前:デフォルトの名無しさん[sage] 投稿日:2007/05/19(土) 08:35:03
ちょwwww 荒し君 >>714 バカとかしか出なくなwww 小学生かよ。荒らし君涙目?売りは粘着だけか?
つかどっかで半端な知識でも聞きかじってきたんだろうが、Ruby スレで Lisp ネタで論破されるとは
どんだけヘタレなんだよ……Ruby ユーザーかつ Lisp ユーザーみたいな層の存在を考えなかったのか。
353:デフォルトの名無しさん
07/05/19 22:07:06
>>852
このスレを荒らすなよ
354:350
07/05/19 22:14:32
>>352
なんか妄想入ってきたな。Ruby スレの奴も navi2ch 使ってそうだと推測はできるけど。
355:デフォルトの名無しさん
07/05/19 23:08:23
またRUBYキチガイが暴れてるの?
アレはほんと迷惑だな
356:デフォルトの名無しさん
07/05/19 23:15:35
両方荒らして「おれってすげー」ってほくそえんでいる、寂しい奴が一人というのが正解。
357:デフォルトの名無しさん
07/05/19 23:50:16
今なら言える
ぬるぽ!
358:デフォルトの名無しさん
07/05/19 23:55:32
>>357
ガ
ッ
359:デフォルトの名無しさん
07/05/20 00:04:47
ちん剣士
360:デフォルトの名無しさん
07/05/20 00:07:29
>>354
どこら辺が妄想に見える?
361:デフォルトの名無しさん
07/05/20 00:18:03
lisp/scheme で処理系に ヌルポ って云わせてみたいんですけど
どうすればいいんでしょうか?
362:デフォルトの名無しさん
07/05/20 00:19:17
'ヌルポ
363:デフォルトの名無しさん
07/05/20 00:23:32
>>361
そんな当たり前の答えは期待していないんですけどorz
364:デフォルトの名無しさん
07/05/20 00:49:57
>>327
Rubyは赤葡萄酒色
Perlは茶色
Pythonは鉛色(ちょいメタリックぽい色)の縞柄
Lispはエメラルド色
365:デフォルトの名無しさん
07/05/20 00:56:58
>>363
そりゃ、当たり前な答えしか返ってこない聞き方してるからじゃないか?
どんな答えを期待してるのか書いてくれなきゃわからんよ
366:デフォルトの名無しさん
07/05/20 00:58:17
>>362
'ガッ
367:デフォルトの名無しさん
07/05/20 01:11:16
>>360
荒らしはいろんなところでウザがられるのが当然じゃないか?
Rubyスレのぞいたけど >>352 に引用されてる記事の前に荒らしてるから煽られてんだろ
368:デフォルトの名無しさん
07/05/20 01:19:16
>>367
2chの鉄則「荒らしに反応した奴も荒らし」
>>352は「反応する」の域を明らかに超えてるな
というか「煽ってる」って自覚があるんだな
369:デフォルトの名無しさん
07/05/20 01:29:55
自覚て。俺 (367) も同一人物ってこと?
370:デフォルトの名無しさん
07/05/20 05:25:04
香ばしい展開
371:デフォルトの名無しさん
07/05/20 09:20:54
まぁこういうアホな会話を育ててしまうという経験を積んでいくうちに
「あれ、どうやら俺は、自分で思っていたほど賢くないみたいだぞ?」
っていうのを学んでいくんですよ。
一生「会話がアホになったのは俺と違って相手がバカだから」の一点張りで生き続けるのも
たまに居ますが。
372:デフォルトの名無しさん
07/05/20 14:01:12
>>369
バレてないつもりなのか
>>367にもそのレスにもまだ特定できるほどの特徴が残ってるんだよ
373:デフォルトの名無しさん
07/05/20 14:28:42
ここで Ruby スレみたいな話をするのは止めておくれ
374:デフォルトの名無しさん
07/05/20 14:44:53
>>373
そりゃ駄目だよ
こういう馬鹿がRubyスレとか他のスレで暴れる前に釘を刺しておかないと
お前の事だけどな
375:デフォルトの名無しさん
07/05/20 14:48:14
>>372の後でも特定されるようなレスをするのはわざとなんだろうか
第三者のなりきりかな?
376:デフォルトの名無しさん
07/05/20 14:51:32
そこまで執着する理由が分からんけど、何かトラウマでもあるの?
377:デフォルトの名無しさん
07/05/20 14:54:25
>>375
もしかして自分が間違ってるかもと思ったら、それが正解だよ。
これ、俺からのアドバイスね。
378:デフォルトの名無しさん
07/05/20 15:11:51
それはチョンの陰謀
379:デフォルトの名無しさん
07/05/20 15:50:01
>>352 に引用されてるやつは元レスの荒らしが酷いからRubyスレ住人がキレたんだろ。
なんでそんなに特定したがってんだ??
689
CommonLisp が実用的じゃないって Ruby 厨はどれだけアホなんだw
で、Gauche の方が実用的だって?
Shiro 氏自身が実用で使うなら Gauche より CommonLisp とるって言っているのにwwww
702
SBCLで仕事しようとするからだろ
アホか
714
>>710は真性のアホだなw
380:デフォルトの名無しさん
07/05/20 15:58:09
>>379
こんな見え見えの釣り針に>>352って小学生同士の喧嘩か
381:デフォルトの名無しさん
07/05/20 16:01:00
>>379
「特定したがってる」んじゃなくて、
別人を装って>>352に引用されてる奴を擁護してるからお前に突っ込んでるんだよw
382:デフォルトの名無しさん
07/05/20 16:03:13
ぽ
こ
ち
ぬ
383:デフォルトの名無しさん
07/05/20 16:04:36
なんでこのスレ定期的に炎上するの?w
384:デフォルトの名無しさん
07/05/20 16:07:07
ところで君たちは何をそんなにムキになってるのかね?
Ruby スレがどうしたとかなんとか、そんなにムキになるほどの
ことなのかね?
そもそも何を怒ってるんだ君たちは?
385:デフォルトの名無しさん
07/05/20 17:02:31
本人キター
386:デフォルトの名無しさん
07/05/20 18:07:02
\(^o^)/オワタ
URLリンク(www.unsymmetry.org)
387:デフォルトの名無しさん
07/05/20 18:26:41
>>386
すごい勢いだな。
388:デフォルトの名無しさん
07/05/20 18:28:43
>>386
実は奥の二人の方がが、手前の人よりも重要なんだよね(;゚∀゚)=3
389:デフォルトの名無しさん
07/05/20 18:39:58
なんで乳をそんなとこから出してんの? 不思議!
390:デフォルトの名無しさん
07/05/20 20:30:42
GaucheNight前
Lisp実装時の疑問に答えるスレ
GaucheNight後
GaucheNightの記事でLispを知ったLL信者に答えるスレ
391:デフォルトの名無しさん
07/05/20 21:04:45
ここはRuby支配下ですか?
他の言語は完全に支配下に置いたんですけどねぇ・・・
392:デフォルトの名無しさん
07/05/20 21:07:38
なんか痛いのがきた
393:デフォルトの名無しさん
07/05/20 22:51:04
>>379
というかこれ自体は別に嘘言ってないよなあ
ライブラリが少ないから実用的じゃないみたいなツッコミに
商用パッケージ使わないからと言っているだけだし
相手が小学生みたいな反応に見える
394:デフォルトの名無しさん
07/05/21 03:31:13
>>391
グレアムおじちゃんがお口にλつけて仕舞いにくるぞ
395:デフォルトの名無しさん
07/05/21 05:51:37
「支配」っていうのは、とてもRuby的な概念だよね。
自己顕示欲ともPerlコンプレックスともつかない、Rubyユーザーの野望がよく出てる単語というか。
とても人間的。
Lispはどっちかというと「わかる奴だけ使う最強兵器」みたいな位置だし、
ユーザーもそういう位置で満たされてるから、言語トーク自体を楽しむ意気込みはあっても、
そこで支配というワードが来ると、それどーゆー意味だったっけ的な溝を感じる。
396:デフォルトの名無しさん
07/05/21 10:51:46
ふーん
397:デフォルトの名無しさん
07/05/21 14:13:14
「最強兵器」も「支配」といい勝負ではないか?
398:デフォルトの名無しさん
07/05/21 14:41:11
頭悪そう
399:デフォルトの名無しさん
07/05/21 14:46:33
「支配」っていうのは、とてもボールペン的な概念だよね。
自己顕示欲とも万年筆コンプレックスともつかない、ボールペンユーザーの野望がよく出てる単語というか。
とても人間的。
筆ペンはどっちかというと「わかる奴だけ使う最強兵器」みたいな位置だし、
ユーザーもそういう位置で満たされてるから、筆記用具トーク自体を楽しむ意気込みはあっても、
そこで支配というワードが来ると、それどーゆー意味だったっけ的な溝を感じる。
400:デフォルトの名無しさん
07/05/21 15:31:15
Schemeは毛筆、と。メモメモφ(・∀・)
401:デフォルトの名無しさん
07/05/21 16:34:30
鉛筆最強
402:デフォルトの名無しさん
07/05/21 18:35:45
schemeはチョークじゃなかったっけ
403:デフォルトの名無しさん
07/05/21 18:45:51
メモメモφ(・∀・)
smalltalk (n.) [smo?to?k]] 1.文房具談義、筆記用具トーク 2. 小型のチョーク (→数奇夢)
404:デフォルトの名無しさん
07/05/21 19:55:41
Ruby信者はいつも元気だな
405:デフォルトの名無しさん
07/05/21 21:18:17
Common Lispは山羊の毛の毛筆
Schemeは馬の尾の毛だな
406:デフォルトの名無しさん
07/05/21 21:46:39
>>405
どう違うの?
407:デフォルトの名無しさん
07/05/21 21:55:05
山羊の毛は(()())で
馬の尾の毛は(().())
408:デフォルトの名無しさん
07/05/21 21:58:49
俺様Lispはあそこの毛で作りました
409:デフォルトの名無しさん
07/05/21 22:04:42
(
)
(
)
410:デフォルトの名無しさん
07/05/21 22:18:54
(
)
(
)
411:デフォルトの名無しさん
07/05/21 22:19:36
λ
(())
412:デフォルトの名無しさん
07/05/22 12:48:02
黒板偉大なり
413:デフォルトの名無しさん
07/05/22 14:22:56
今、ウェブ・サービスの多くが、
Javaや.NETベースのアプリケーションサーバや、
Perl/Ruby/PHP/Python等のLightweight Languageの上に構築されていますが、
なぜそこにLispが含まれていないのでしょうか?
414:デフォルトの名無しさん
07/05/22 14:36:04
これはひどい一本釣りですね
415:デフォルトの名無しさん
07/05/22 18:42:36
(lambda
416:デフォルトの名無しさん
07/05/22 20:08:35
らんぶだ!
417:デフォルトの名無しさん
07/05/22 21:07:15
lambda! と申したか
酷い仕様だな
418:デフォルトの名無しさん
07/05/22 21:42:35
(lambada () '石井明美)
419:デフォルトの名無しさん
07/05/22 22:03:47
>>418
それはラマダン!
420:デフォルトの名無しさん
07/05/22 22:04:44
>>419
むしろラバンバ。
421:デフォルトの名無しさん
07/05/22 22:09:05
lamborghini
422:デフォルトの名無しさん
07/05/22 23:21:41
俺ははじめてlambdaを見たとき
ふつーにランバダってよんでたな。
423:デフォルトの名無しさん
07/05/23 00:36:40
俺は脳内でラムブダとつぶやきながら書いてる。
424:デフォルトの名無しさん
07/05/23 01:01:47
馬鹿が多くてちょっとほっとした
425:デフォルトの名無しさん
07/05/23 02:13:32
ホッとするのは底なしに危険だぜ
426:デフォルトの名無しさん
07/05/23 02:22:37
底なしなど幻想だ
427:デフォルトの名無しさん
07/05/23 05:59:23
「実質的に無限」というのは「有限」という意味だからね。
なんかこう、Lisperは特にそう考えたがりそうだね。
428:デフォルトの名無しさん
07/05/24 20:48:16
lispは見なす事が自然と身に付く
それができない頭硬いバカチンに使いこなすのは無理
429:デフォルトの名無しさん
07/05/24 22:21:39
迷惑だから Ruby スレで暴れているヤツ引き取ってくれ
430:デフォルトの名無しさん
07/05/24 22:26:26
実際そうしたい
431:デフォルトの名無しさん
07/05/24 22:31:47
>>429
暴れてるのはお前だろ
432:デフォルトの名無しさん
07/05/24 23:26:53
そもそも「引き取る」という概念がおかしいな。
スレッドと訪問者の関係を、チームと選手の関係みたいに思ってるんじゃないのか。
433:デフォルトの名無しさん
07/05/24 23:30:54
ゴミはGCへ
434:デフォルトの名無しさん
07/05/24 23:42:04
クロージャー体操
はっじまっるよーーーーーー
435:デフォルトの名無しさん
07/05/26 08:24:50
>>428
>...バチカンに使いこなすのは無理 に見えた。
言語論争の次は宗教論争かと思った。
436:デフォルトの名無しさん
07/05/26 09:10:00
オーソドックスなネタですね。
437:デフォルトの名無しさん
07/05/26 09:22:46
ウェブ技術系のブログを見ると、
「やっぱPHP最強だわ」などの表現が見当たりますが、
Lispはどうなのでしょうか。
438:デフォルトの名無しさん
07/05/26 09:50:39
括弧の数なら負ける気がしないぜ!
439:デフォルトの名無しさん
07/05/26 10:06:29
少しはカッコを減らす努力をしないと
ポール・グレアムに嘲笑われるぞ
440:ジュリー
07/05/26 10:14:38
勝手にしやがれ( ゜∀゜)
441:デフォルトの名無しさん
07/05/26 13:00:49
>>438-439
URLリンク(srfi.schemers.org)
442:ジュリー
07/05/26 13:03:34
♪せめて〜 少しはカッコ付けさせてくれ〜
443:デフォルトの名無しさん
07/05/26 21:50:17
>>441
それめっちゃ気持ち悪い。dylan? やっぱりかっこがいい。
かっこいいの!
444:デフォルトの名無しさん
07/05/26 22:10:11
>>442 藁。
445:デフォルトの名無しさん
07/05/26 22:33:45
curlってどうなったの?
446:デフォルトの名無しさん
07/05/26 23:41:43
>>441
なんかスカスカで見た目にかっこわるい
447:デフォルトの名無しさん
07/05/27 00:39:40
>>441
python 以上にキモい……
448:デフォルトの名無しさん
07/05/27 15:07:27
なんかMLみたいになっちゃってるね。
449:デフォルトの名無しさん
07/05/27 16:33:48
これがそんなにキモイか?
define (fac x)
if (= x 0) 1
* x
fac (- x 1)
じゃあこうしよう
define (fac x)
{
if (= x 0)
{
1 (* x)
}
{
fac (- x 1)
}
}
450:デフォルトの名無しさん
07/05/27 16:40:56
K&R派なオレはそのifの書き方見るとイライラしてくるんだよねw
451:デフォルトの名無しさん
07/05/27 16:44:10
>>449
{ } の代わりに ( ) にしてみてもいいかも
452:デフォルトの名無しさん
07/05/27 16:47:59
>>449
どうでもいいが式が間違ってるぞ
まあ前者はインデントが浅すぎでキモく見えるだけじゃないのか?
453:デフォルトの名無しさん
07/05/27 16:52:20
インデント文法で一番有名なPythonは20年後はもう衰退していると思うが、
この手法はSchemeと一緒に30年後も生き残っていそう。
それで、インデント文法はSchemeが元ネタだ! と騒ぐ信者が出現
454:デフォルトの名無しさん
07/05/27 16:55:51
>>442
山口百恵のロックンロールウィドウもよろしく
455:デフォルトの名無しさん
07/05/27 22:28:34
Schemeのマクロについてなんですけど、
本体の展開よりも引数の評価を先にするようなトリックってありませんかね?
構造体を定義するマクロを自分でも書いてみようと思ったんですけど、
構造体名structure-nameを与えられてmake-structure-nameという名前の関数を定義する事さえ難しいという現実に直面してしまいました。
グローバル定義だけならevalでお茶を濁す手もあるんですが…
R6RSで導入予定というsyntax-caseもちょっと使ってみたんですが、
まだ標準化されていないせいか、処理系によって違いが結構あるので
今は乗り換えるのを見送ろうと思ってます。
456:デフォルトの名無しさん
07/05/27 22:59:32
よく思うことなんだが、言葉でくどくど説明されてもよくわからん。
簡単なテストケースを書いてくれ
457:デフォルトの名無しさん
07/05/27 23:10:37
;(define-syntax my-define-structure
; (syntax-rules () ((my-define-structure name slot ...)
; (define (string->symbol (string-append "make-" (symbol->string name))) (lambda (…
などとして、新しいシンボルを作ってそれを束縛したいのです。
defineは第1引数に式はおろか、準引用すら許しませんから困ってます。
そこで、マクロに展開されてdefineが評価される前に引数がシンボルに展開されれば、と考えました。
これは黒田氏が指摘している問題の一つな気がします。
Shiro氏も
・せめてシンボルの生成くらいはr5rs内で出来て欲しいってのはありますね。
とおっしゃってますし、正攻法ではどうも解決できない気がします。
プリプロセサを書くしかないのでしょうか?
458:デフォルトの名無しさん
07/05/27 23:14:04
混乱してるからクドクドとなるんであって、
簡単にはテストケースを書けないんだろ。
459:デフォルトの名無しさん
07/05/27 23:15:44
defineは第一引数に関数呼び出しはおろか、特別式すら、が正しかったですね
460:デフォルトの名無しさん
07/05/27 23:18:21
>>457
前スレ172みたいなのをコンパイル時にやりたいっつーことだな。
それならやっぱsyntax-case必要だろう。
461:デフォルトの名無しさん
07/05/27 23:29:23
define-macroでできるだろ
462:デフォルトの名無しさん
07/05/27 23:30:37
>>460
うわぁ、古い方の過去ログは読んだのですが、最近のは読んでませんでした。
全く同じですね。
syntax-case使うなら、やっぱりchezでしょうか?
私は主にmzschemeかscheme48かGambit-Cなので、syntax-caseはmzschemeしか使えないし、
chezのものとは少し違うようなので、
ポータビリティを考えたらCL的マクロに逃げるのがベターか、などと考えてます。
あまり関係ありませんが、Gambit-Cのsyntax-rulesを使えるようにするファイルは、syntax-caseが使えないのになんでsyntax-case.scmなのでしょうね。
463:デフォルトの名無しさん
07/05/27 23:31:31
>>461
もちろん、CL的アプローチでは簡単です。
標準仕様の範囲でできるかどうか、という問題です。
464:デフォルトの名無しさん
07/05/27 23:49:36
syntax-caseで書くならこんなカンジか?
(define-syntax define&
(lambda(x)
(syntax-case x ()
((k sym obj)
(with-syntax
((s
(datum->syntax-object (syntax k)
(eval (syntax-object->datum (syntax sym))
(interaction-environment)))))
(syntax (define s obj)))))))
petite chez schemeで試してみたが、こういうテストケースでは動くことを確認した。
(define& (string->symbol (string-append "a" "b")) 1)
ab ;-> 1
結局のところ、今はschemeに足りないところがあるのはそのとおりだと思う。
でもな、完成されたものを使うだけってつまらないと思うわけ。
マクロに関しても色んな提案があってそれぞれ細かい部分で利点も問題点もかかえてて、
それがどう収束していくかってなかなか面白いことじゃないか。
ま、仕事で使うならそうもいってられんのだろうが。
465:デフォルトの名無しさん
07/05/28 00:05:51
仕事で Scheme 使っている人ってここにいるんですかね
466:デフォルトの名無しさん
07/05/28 00:10:20
使ってた。納品物ではなく自家ツール用だけど。最近はCommon Lispのほうが多い。
467:デフォルトの名無しさん
07/05/28 00:11:34
>>464
あなたのプログラムを見て初めて私のsyntax-caseがうまく動かなかった理由が分かりました!
ありがとうございました。
IBMにあるメタプログラミング技法を読んでsyntax-caseを勉強したのですが、
datum->syntax-objectの第1引数の(syntax k)のkはマクロ名にマッチする識別子だったんですね。
syntax-rulesではマクロ名にマッチした識別子は特に使い道がなかったので気がつきませんでした。
468:464 ◆3.JjF77I26
07/05/28 00:26:11
>>467
ここにsrfi-93の日本語訳があるぞ。
URLリンク(www.katch.ne.jp)
> 手続き datum->syntax は引き数として、
> テンプレート識別子 template-id と任意の値 datum のふたつをとる。
>
> (datum->syntax template-id datum)
>
> この手続きは template-id と同一の文脈情報をもつ、
> datum の構文オブジェクト表現を返す。 このとき、
> この構文オブジェクトは datum (訳注: template-id か)が
> 挿入されたのと同時にコードに挿入されたかのようにあつかわれる。
schemeのマクロではただシンボルを置き換えればいいってもんじゃなく、
文脈がからんでくるってこと。
ところでこの文書ではdatum->syntaxってなってるけど、
chez schemeを含むいくつかの系ではdatum->syntax-objectって名前なので注意。
469:デフォルトの名無しさん
07/05/28 01:05:53
>>468
ありがとうございます。
読んでみました。
いろいろ勘違いしているところもありました。
しばらくsyntax-caseの勉強に励もうと思います。
470:デフォルトの名無しさん
07/05/28 13:38:52
462でGambit-Cはsyntax-caseが使えないと書きましたけど
ちゃんと使えますね。
なぜか勘違いしてたみたいです。
471:デフォルトの名無しさん
07/05/28 18:02:01
syntax-caseて処理系に依存するの?
472:デフォルトの名無しさん
07/05/29 00:38:39
syntax-case 面倒臭すぎる
阿呆な質問なんだが scheme にも cl のパッケージの概念導入
できないものなんだろうか…?何か問題でもあるの?
473:デフォルトの名無しさん
07/05/29 00:39:19
srfi を書いて提案しましょう
474:デフォルトの名無しさん
07/05/29 01:05:37
Mona OS が関数型言語 Scheme のシェルを搭載してリリース
URLリンク(slashdot.jp)
475:デフォルトの名無しさん
07/05/29 01:41:35
>>472
schemeでは名前空間を分離しない(?)原則みたいなのがあるとかなんとか言ってなかっったっけ?
476:デフォルトの名無しさん
07/05/29 07:30:57
R6RSに入るんじゃなかった?>パッケージもどき
477:デフォルトの名無しさん
07/05/29 09:42:05
R6RSって出ないんじゃなかったっけ?
478:デフォルトの名無しさん
07/05/29 09:48:50
じゃR7RSで
479:デフォルトの名無しさん
07/05/29 22:22:37
もうR2D2でいいよ。
480:デフォルトの名無しさん
07/05/29 22:29:12
むしろR2D2の方がいいよ
481:デフォルトの名無しさん
07/05/29 22:34:26
100万言語に対応してるんだっけ?
482:デフォルトの名無しさん
07/05/29 22:34:41
schemeから派生した言語って何かありますか?
luaがそれっぽいですが
483:デフォルトの名無しさん
07/05/29 22:56:26
Tとか
484:デフォルトの名無しさん
07/05/29 23:14:15
4/1にc.l.lでr7rsは発布されとったよ。w
URLリンク(groups.google.co.jp)
485:デフォルトの名無しさん
07/05/30 00:29:39
luaはべつにschemeと関係ないよ
486:デフォルトの名無しさん
07/05/30 04:02:59
このスレ住人としてluaの存在ってどうよ
末尾再帰とかゲームで採用されたりとかむかつかね?
しめとくか?
487:デフォルトの名無しさん
07/05/30 04:14:07
schemeも採用すればよかんべ。
488:デフォルトの名無しさん
07/05/30 05:21:59
schemeがシェルに採用されたMonaOSが話題にならない件
489:デフォルトの名無しさん
07/05/30 05:52:53
Scheme流行りの昨今
490:デフォルトの名無しさん
07/05/30 06:00:40
Schemeは黒板専用言語のくせになまいきだな
491:デフォルトの名無しさん
07/05/30 08:54:57
確かにリリカルLispは黒板使ってたなww
492:デフォルトの名無しさん
07/05/30 10:59:04
>>486
むかつく理由が理解できない
493:デフォルトの名無しさん
07/05/30 15:20:35
>>486 は常に敵を探しているタイプ
494:デフォルトの名無しさん
07/05/30 17:36:51
小鳥みたいですね
495:デフォルトの名無しさん
07/05/30 19:36:20
歌が好きだったりしますか?
496:デフォルトの名無しさん
07/05/30 20:33:49
>>495
俺が好きなのは君だけさ
497:デフォルトの名無しさん
07/05/31 11:09:22
read-from-stringは多値を返すのですが、
それぞれを別の変数に入れる方法はありますか?
(read-from-string "459")
459
3
たとえば xとyに 459と3を入れる方法が知りたいです。
498:デフォルトの名無しさん
07/05/31 11:27:35
>>497
multiple-value-bind
499:デフォルトの名無しさん
07/05/31 11:32:57
>>498
ありがとう
失礼ですが、LISP暦は何年でしょうか?
500:デフォルトの名無しさん
07/05/31 11:35:49
multiple-value-bind とか multiple-value-setq とか。
CL-USER> (multiple-value-bind (x y) (read-from-string "459") (list x y))
(459 3)
CL-USER> (multiple-value-setq (x y) (read-from-string "459"))
459
CL-USER> x
459
CL-USER> y
3
501:デフォルトの名無しさん
07/05/31 12:55:18
letでレキシカル変数(LISPでは何?)として定義したhyoを成功のパターンで試すと正しくできますが、
失敗パターンのように要素?を""で囲むと正しく取得できません。
要素を""で囲っても正しく表引きしたいのですがLISPではどうするのでしょうか?
;=== 成功 ===
(let (
(hyo '((A 80) (B 70) (C 100))))
(print (assoc 'A hyo))
"OK"
)
○結果
(A 80)
"OK"
;=== 失敗 ===
(let (
(hyo '(("A" 80) ("B" 70) ("C" 100))))
(print (assoc "A" hyo))
"OUT"
)
×結果
nil
"OUT"
まだよくわかっていないのですが、
""とすると文字列限定される?ということでしょうか?
502:デフォルトの名無しさん
07/05/31 13:13:22
(assoc "A" hyo :test 'equal)
503:デフォルトの名無しさん
07/05/31 13:16:53
assocは普通はequal比較だから同じ文字列なら見つかると思うのだが、
数あるlisp方言の中にはそうでないのもあるのかな?
ちなみにemacs lispで実行してみたらこうなった。
(let (
(hyo '(("A" 80) ("B" 70) ("C" 100))))
(print (assoc "A" hyo))
"OUT"
)
("A" 80)
"OUT"
使ってる処理系が何かを示せばより的確な回答を返せる人がいるかもね。
504:デフォルトの名無しさん
07/05/31 13:16:56
>>502
ありがとう
皆さん、簡単に答えますね。
うらやましいです。
505:デフォルトの名無しさん
07/05/31 13:22:59
'eaualより#'equalの方がいくない?
506:デフォルトの名無しさん
07/05/31 13:41:37
>>503
えー、初心者危険
ちなみに xyzzyです。
507:デフォルトの名無しさん
07/05/31 14:07:30
>>505
なぜ?
508:デフォルトの名無しさん
07/05/31 21:46:17
>>499
エディタのカスタマイズ以外にはあんまり使ってないけど三年ちょっとぐらい
>>503
Common Lisp だと eql だよ
509:デフォルトの名無しさん
07/05/31 22:20:34
eq? アドレスの一致
eqv? 値の一致
equal? 構造の一致
文字列の一致に使えるのって
なんとなくeqv?かと思ったけど違うのね。
eqv?の立ち位置って微妙じゃね?
文字列もアトムと考えればeqv?で良い気がするけど。
510:デフォルトの名無しさん
07/05/31 22:23:46
>>507
わずかに速い気がする
511:デフォルトの名無しさん
07/05/31 22:28:07
>>508
すまん、普段emacs lispとschemeしか使わないのでCommon Lispの
ことがすっかり頭から抜け落ちていた
512:デフォルトの名無しさん
07/05/31 23:32:42
>>509
文字列も場所の列だからベクタと同じ扱いなんじゃなかろうか
string-set! とかあるし
513:デフォルトの名無しさん
07/05/31 23:51:57
あと二次元配列 O(1)でアクセスできるタイプ(効率重視)で
perlで以下のことがLISPではどのように書くのでしょうか?
*定義
$cell['A'][1] = ('国語' 100) <-- Lispのリスト
$cell['A'][2] = ('算数' 20) <-- Lispのリスト
$cell['A'][3] = ('理科' 30) <-- Lispのリスト
$cell['B'][1] = ('家庭科' 90) <-- Lispのリスト
*呼び出し
% print $cell['A'][2];
['算数', 20]
514:デフォルトの名無しさん
07/06/01 00:02:00
>>513
なんか日本語がよくわからないんだが、
多次元配列なら aref に次元の数だけ引数を渡す
(aref #2A((1 2 3) (4 5 6)) 1 2)
=> 6
ところで多次元配列って Lisp では使ったことないんだけど、どういう時使う?
515:デフォルトの名無しさん
07/06/01 00:15:09
>多次元配列って Lisp では使ったことないんだけど、どういう時使う?
まだ構文を覚えている最中で、どういう時に使うかまだでは考えていなかったのです。
LISPでは、多次元配列という考え方でなく別の方法で対処しているということでしょうか?
LISPらしい書き方を学ぶにはどうしたら良いのでしょうか?
私はPerlはかじっておりますので、perlと対比できたらわかりやすいです。
#2Aは何を意味するのでしょうか?2はニ次元Aは????
#3Bにしたらエラーになりました。
516:デフォルトの名無しさん
07/06/01 00:21:36
ちょっとは調べろよwww
517:デフォルトの名無しさん
07/06/01 00:30:49
>>514
ベタな例だけど行列とか
518:デフォルトの名無しさん
07/06/01 01:04:32
ある処理系での多次元配列の例
CL-USER>(make-array '(1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
#20A((((((((((((((((((((0))))))))))))))))))))
519:デフォルトの名無しさん
07/06/01 01:08:02
20次元配列とかw
まあ、全て2要素にした程度でも凄いサイズになるけどな。
扱えないレベルではないけど。
520:デフォルトの名無しさん
07/06/01 01:13:53
>>501-503
Hyperspecに答えが書いていたね。
URLリンク(www.lisp.org)
のexamplesをみてみて。
521:デフォルトの名無しさん
07/06/01 01:18:38
>>514
一番ありがちなのは lispで行列計算をしている場合。ライフゲームなどの
2次元空間グラフィック。そんなところじゃないのか
522:デフォルトの名無しさん
07/06/01 04:04:33
schemeでany や every は any? every?じゃないんだな。
523:デフォルトの名無しさん
07/06/01 05:33:21
(any hoge? ...) という使い方になるわけだから俺には違和感ないな。
524:デフォルトの名無しさん
07/06/01 05:38:40
anyはブール値を返すわけじゃないからじゃね?
525:デフォルトの名無しさん
07/06/01 06:49:57
for-all、existsとの違いがイマイチ
526:デフォルトの名無しさん
07/06/02 20:21:56
このスレのレベルが急速に低下してるな……
527:デフォルトの名無しさん
07/06/02 20:25:51
...and justice for all
528:デフォルトの名無しさん
07/06/02 22:25:07
関数型系の複数のスレに、全く同じレス付けてる >>526 って何なの?
529:デフォルトの名無しさん
07/06/02 22:46:56
>>527
'((justice is lost) (justice is raped) (justice is gone))
530:デフォルトの名無しさん
07/06/02 23:21:29
>>528
休みの日にデパートの屋上から路上を眺めるのが趣味の人なんじゃないの
531:デフォルトの名無しさん
07/06/02 23:34:40
今の時代なら、休みの日にgoogleで海岸とかプールを拡大して
凝視してる人だろ
532:デフォルトの名無しさん
07/06/02 23:48:09
LIVE映像じゃないと、ちょっと行為としてしっくりこない気がする。
533:デフォルトの名無しさん
07/06/02 23:51:27
では、ライブカメラを漁ってる人
534:デフォルトの名無しさん
07/06/03 16:55:16
Lispは型推論を持たない
535:デフォルトの名無しさん
07/06/03 16:55:45
唐突にどうしたんだぜ?
536:デフォルトの名無しさん
07/06/03 17:16:00
ヒント:日曜日
537:デフォルトの名無しさん
07/06/03 17:37:08
>>536
正解!
538:デフォルトの名無しさん
07/06/03 18:34:02
LISPに ne 等しくないという等号はありますか?
539:デフォルトの名無しさん
07/06/03 18:44:09
(defun ne (x y) (not (eq x y)))
540:デフォルトの名無しさん
07/06/03 19:04:01
「等しくないという等号」にすげぇ違和感
541:デフォルトの名無しさん
07/06/03 19:09:59
そうですね
はい次。
542:デフォルトの名無しさん
07/06/03 23:27:36
pushすると
("C" "B" "A")となりますが
例えば、
(def test(x lst)
...
)
(setq lst '())
(test "A" lst)
(test "B" lst)
(test "C" lst)
(print lst)
で("A" "B" "C")とするには、どのようにtest関数を作ればよいのでしょうか?
pushした後 reverseせず、純粋に("A" "B"..というリストを作りたいです。
543:デフォルトの名無しさん
07/06/03 23:35:57
>pushすると
>("C" "B" "A")となりますが
なりませんでした
はい次。
544:デフォルトの名無しさん
07/06/03 23:40:12
>>542
何故そんなに push を嫌うのか分からん
545:デフォルトの名無しさん
07/06/03 23:45:09
rplacdでマクロ作ればいいんじゃね
546:デフォルトの名無しさん
07/06/04 00:17:17
push して nreverse が一番効率いいと思うがな
547:デフォルトの名無しさん
07/06/04 00:42:34
誰一人>>543の仕切りに従ってない点について。
548:デフォルトの名無しさん
07/06/04 00:49:08
そりゃー2chだもの
549:デフォルトの名無しさん
07/06/04 00:54:11
拝啓547様
正しいマナーが根付くには時間がかかるものです。
悪癖は容易には正されません。
円滑なスレ進行のため今後も努力する所存です。
543
550:デフォルトの名無しさん
07/06/04 00:55:35
うまく人を逆撫でできる人は自分の話題に持ち込めるけど、
単なる阿呆、とだけ思われてオシマイだと、うち捨てられて終わりなんだよね。
551:デフォルトの名無しさん
07/06/04 03:29:47
>>542
君が欲しいのはこんな感じのものでは?
(defmacro test (x lst) `(setq ,lst (append ,lst (list ,x))))
でも>>546の言うとおり、pushしてnreverseのほうがたぶん速いよ。
552:デフォルトの名無しさん
07/06/04 04:08:00
多分 queue が使いたいんじゃないかなーと思った。
553:デフォルトの名無しさん
07/06/04 13:51:23
Common Lispらしいという意味ではfill pointer付きarrayという手もあるな。使ったことないけど。
554:デフォルトの名無しさん
07/06/04 21:13:09
>>553
コンシングを減らすために使ってみたことあるよ。
おれがヘボなせいかあんま高速化しなかったけどorz
cl-user(5): (setq vec (make-array 10 :fill-pointer 0 :adjustable t))
#()
cl-user(6): (vector-push "a" vec)
0
cl-user(7): (vector-push "b" vec)
1
cl-user(8): (vector-push "c" vec)
2
cl-user(9): vec
#("a" "b" "c")
cl-user(10): (concatenate 'list vec)
("a" "b" "c")
555:デフォルトの名無しさん
07/06/05 00:50:01
>>542
それはマクロでやると簡単。
(defmacro test (x lst)
`(setf ,lst (append ,lst (list ,x))))
556:デフォルトの名無しさん
07/06/05 01:02:27
既にでてたorz.
557:デフォルトの名無しさん
07/06/05 03:19:49
nreverseの方が早いっていうのは
appendが新しいリストをconsセル一つ一つつなげて返すのに対して
nreverseは元のリストを破壊操作で処理するからって言うことで正しいですか?
558:デフォルトの名無しさん
07/06/05 07:17:24
最後に付け加えるのが時間かかるってことじゃない?
nreverse なら cons セルのつなげかえをするだけなので O(n) なのに対して、
リストの最後に付け加えていくのはリストが長くなるほど
たどる量が増えて O(n^2) になる、っていうことだと思う。
559:デフォルトの名無しさん
07/06/05 14:06:30
FreeBSD6.2RELEASEでGauche0.8.7をつかっています。
(inc (dec inc))と(1 2 3)を入力として与えると
(2 (1 4))を返すような関数が欲しいんですけど、
なんか既にあるような気がします。
こ存じないですか?
560:デフォルトの名無しさん
07/06/05 14:16:59
(define (foo x y) '(2 (1 4)))
561:デフォルトの名無しさん
07/06/05 15:58:34
そんな変な関数ある気がしないw
562:559
07/06/05 16:20:06
そうですか…
リストを構造体に見立てて、
別の構造体に変換するような操作は結構あるような気がしたんですが…
だとすると俺のやりかたが間違っているんだろうか。
ちょっと違う形になりましたけど、とりあえず書いたもんさらしてみます。
(define (general-apply syn args)
(eval `(,syn ,@args) (interaction-environment)))
(define (data-convert index record convert-rule)
(general-apply 'let (list (zip index record) convert-rule)) )
で、
(data-convert '(a b c) '(1 2 3) '(list (inc a) (list (dec b) (inc c))))
みたいな使い方をします。
563:デフォルトの名無しさん
07/06/05 16:27:00
いまいちよくわからないんだけどutil.matchみたいなことを考えているのかな。
URLリンク(practical-scheme.net)
564:559
07/06/05 17:31:16
>563
おお、なんかこれでよさそうです。
ありがとうございました。
565:デフォルトの名無しさん
07/06/08 16:24:42
wilikiのスタイルシートってcgiと同じディレクトリにおけばいいの?
全然うごいてくれない
566:デフォルトの名無しさん
07/06/08 17:15:18
吐かれたHTML読んでみたら?
567:デフォルトの名無しさん
07/06/08 20:38:12
>>565
キーワード引数で :style-sheet のとこにスタイルシート名を指定すること。
568:565
07/06/10 14:51:28
結局解決できませんでした
しかたないのでpukiwikiをインストールします
569:デフォルトの名無しさん
07/06/10 15:02:04
うんそれがいいよ
570:デフォルトの名無しさん
07/06/12 00:38:23
(if (解決-p 565)
(install wiliki)
(install pukiwiki))
残念。。
571:デフォルトの名無しさん
07/06/12 00:56:25
pukiwikiをschemeで書き直せばいいじゃん
572:デフォルトの名無しさん
07/06/12 00:59:38
ウッキ、ウッキ、ウィッキー
573:デフォルトの名無しさん
07/06/12 01:01:44
わかったよブービー(´・ω・`)
574:デフォルトの名無しさん
07/06/12 01:03:49
ウィッキーさん元気してるかね?
なつかしすなー
575:デフォルトの名無しさん
07/06/12 04:45:52
ウィッキー→みのもんた
だと思ってた時期が(ry
576:デフォルトの名無しさん
07/06/12 21:31:35
ウィッキーは落語家のえーっと鶴なんとか
577:デフォルトの名無しさん
07/06/13 21:15:05
(define port (open-input-file "c:\\tmp\\data.txt")
(define line (read-line port))
(append lst (line))
テキストファイルから、一行ずつ読み込んでリストに加えて行くという処理を書いてるのですが、
3行目の(line)でエラーになります。
こういう場合、どう書けばいいんでしょう?
578:デフォルトの名無しさん
07/06/13 21:17:35
どんなエラーとか書こうぜ
579:デフォルトの名無しさん
07/06/13 21:32:15
>>578
> gosh: "error": invalid application: ("aaa")
こんな感じです。
"aaa"は、テキストファイルから読み込んだ内容になってます。
580:デフォルトの名無しさん
07/06/13 21:50:46
(append lst line)
581:デフォルトの名無しさん
07/06/13 21:56:13
質問です。
リテラルを破壊的に変更してはいけないといわれますが、次のような場合もでしょうか?
(do ((i 10 (- i 1))
(r '() (cons i r)))
((zero? i) (reverse! r)))
(reverse r) と書くべきなんでしょうか?
582:デフォルトの名無しさん
07/06/13 21:58:39
>>581
その例ならリテラルを破壊的に変更はしないと思う
583:デフォルトの名無しさん
07/06/13 22:08:26
>>582
じゃあ、次の場合はどうでしょうか。
リテラルを破壊的に変更してしまっているので、(reverse r) と書くべきでしょうか?
(do ((i 0 (- i 1))
(r '() (cons i r)))
((zero? i) (reverse! r)))
584:デフォルトの名無しさん
07/06/13 22:12:33
wiliki の質問スレはどこですか?
585:デフォルトの名無しさん
07/06/13 22:13:31
>>583
空リストはそもそも破壊できるような物ではないので大丈夫
586:デフォルトの名無しさん
07/06/13 22:16:52
>>585
じゃあ、空リストでない次の場合には破壊的に変更しているので、
(reverse r) と書くべきですね?
(let ((lst '(a b c)))
(do ((i 0 (- i 1))
(r lst (cons i r)))
((zero? i) (reverse! r))))
587:デフォルトの名無しさん
07/06/13 22:17:53
>>586
そう。こういう場合は reverse! は厳禁。
588:デフォルトの名無しさん
07/06/13 22:23:03
>>587
なるほど、やっと解ったような気がします。どうもありがとうございました。
589:デフォルトの名無しさん
07/06/16 11:57:56
lisp厨、必死だなw
590:デフォルトの名無しさん
07/06/16 17:34:58
ここはlisp厨のスレだが何か?
591:デフォルトの名無しさん
07/06/16 18:47:59
チュウチュウうるさいなぁ、おまえらそんなにチュウが好きならスペースチャンネル5でもやってろ!
592:デフォルトの名無しさん
07/06/16 20:57:21
Squeakもあるぜよ
593:デフォルトの名無しさん
07/06/16 22:15:21
本谷有希子さんとチュウしたい
スレリンク(book板)
594:デフォルトの名無しさん
07/06/18 14:29:24
FreeBSD6.2RELEASEでGauche0.8.10[utf-8]を使っています。
字句解析を使用と思い、以下の様なコードを書きました。
(define (lex-analyze inpx)
;; inpx: input port
(define (op? inpx)
(define op-char #\()
(if (char=? op-char (peek-char inpx))
(begin
(read-char inpx)
(cons 'op (list op-char)) )
#f ))
(define (cp? inpx)
(define cp-char #\))
(if (char=? #\) (peek-char inpx))
(begin
(read-char inpx)
(cons 'cp (list cp-char)) )
#f ))
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5369日前に更新/220 KB
担当:undef