Lisp Scheme Part39
■ このスレッドは過去ログ倉庫に格納されています
0001はちみつ餃子 ◆8X2XSCHEME
2014/08/14(木) 20:55:52.61ID:o+vsYevq■前スレ
Lisp Scheme Part38
http://peace.2ch.net/test/read.cgi/tech/1391252139/
■テンプレ
ttp://wiki.fdiary.net/lisp/
■関連スレ
【入門】Common Lisp その10【質問よろず】
ttp://toro.2ch.net/test/read.cgi/tech/1361341876/
【Scheme】Schemeインタプリタ Mosh Part1【Lisp】
ttp://toro.2ch.net/test/read.cgi/tech/1272469779/
【Lisp】プログラミング言語 Clojure #3【JVM】
http://toro.2ch.net/test/read.cgi/tech/1380333808/
【魔法】リリカル☆Lisp【言語】
ttp://toro.2ch.net/test/read.cgi/tech/1183396621/
0446デフォルトの名無しさん
2014/12/18(木) 22:51:18.41ID:DAuXzDKB0447デフォルトの名無しさん
2014/12/19(金) 00:29:28.98ID:8jf/i4w+ちょっとなにいってるかわかんない
0448デフォルトの名無しさん
2014/12/19(金) 03:26:43.29ID:upYjIo/Zで、そのマクロ用の言語として Lisp をそのまま流用するのが伝統的マクロのアプローチだけど、
一方で R5RS Scheme みたいにマクロ用の独自言語を用意するというアプローチもある。
>>445
別にマクロ手続きをコンパイルして実行してもいいのよ?
0449デフォルトの名無しさん
2014/12/19(金) 04:04:17.00ID:mNsxWZGv0450デフォルトの名無しさん
2014/12/19(金) 12:56:51.95ID:o138/K/4やっぱり伝統的な方法でやるならevalかインタラクティブなコンパイル処理を用意しないとだめか
副作用の無い関数は展開したいからevalが妥当かな
0451SCHEME餃子 ◆8X2XSCHEME
2014/12/19(金) 16:37:56.84ID:Jd94yde9低水準マクロにどういう方式を採用すべきかで合意できなかったから
不本意ながらとりあえず合意できる範囲でインターフェイスを決めたものであって、
あれが Scheme 的なアプローチってわけじゃないんだよ。
0452デフォルトの名無しさん
2014/12/19(金) 17:06:34.01ID:OgBatUX1Cのプリプロセッサマクロの豪華版
0453デフォルトの名無しさん
2014/12/19(金) 17:54:12.96ID:bX2RZBOL展開器がコンパイラ並みの大きさになっていくのはいかがなものか?
バグのない完全な展開器は現存するのか?
0454デフォルトの名無しさん
2014/12/19(金) 19:51:32.57ID:2wM4VZiRどうやってマクロをデバッグするんだ?
0455デフォルトの名無しさん
2014/12/22(月) 19:02:05.87ID:AjGfN6zSにある
(#0=(a . b) . #0#)
は循環リストではないのでは?
0456デフォルトの名無しさん
2014/12/22(月) 19:17:19.21ID:kX1Hiu3z0457デフォルトの名無しさん
2014/12/22(月) 19:20:13.28ID:j5bAC/Q+0458デフォルトの名無しさん
2014/12/22(月) 19:22:42.01ID:ghZKV2ZQ0459デフォルトの名無しさん
2014/12/23(火) 06:56:15.61ID:7FgN1VNX0460デフォルトの名無しさん
2014/12/23(火) 13:13:19.47ID:+r8FjnMV投稿しないなら予約するなよお
0461デフォルトの名無しさん
2014/12/23(火) 23:21:18.03ID:CZ3D7Ufg0462デフォルトの名無しさん
2014/12/24(水) 00:12:59.43ID:e2VpCcn00463デフォルトの名無しさん
2014/12/25(木) 21:12:53.02ID:X5xaJ3tHctrlは変換無変換に割り当ててるから大丈夫だけどみんなは小指痛くならないの?
0464デフォルトの名無しさん
2014/12/25(木) 21:35:41.32ID:EL6gBj3v0465デフォルトの名無しさん
2014/12/25(木) 21:58:13.43ID:PFMshOy4emacs使ってるならPCの変換とかMacのかなキーを開き括弧にすると良いんじゃ無いの
閉じるのはparedit任せ
つかキーボードの最下段ってなんであんなに不便な割り当てなんだろね?
0466デフォルトの名無しさん
2014/12/25(木) 23:11:25.18ID:CjjuayPAギターとピアノで鍛えてるからか、痛くなったことがない
0467デフォルトの名無しさん
2014/12/25(木) 23:20:06.50ID:bRuwx3hHshiftキーを親指で押せる位置にするのが一番早いかな
paredit便利っぽいけど小指の件とはあまり関係無さそう
0468デフォルトの名無しさん
2014/12/25(木) 23:24:53.41ID:VJozxMYeコントロール+8にすれば?
0469デフォルトの名無しさん
2014/12/26(金) 00:02:19.89ID:sFMmMZhn俺は親指で押してるが根本的な解決とは言いがたい
0470デフォルトの名無しさん
2014/12/26(金) 07:12:03.29ID:ZF5Prlhwなんならギタリストみたいに指の筋トレでもすれば?
0471デフォルトの名無しさん
2014/12/26(金) 07:19:14.79ID:Ymt/Ki/9どうすればうまく使えるか、微調整していくのがいいと思う。enjoy!
0472デフォルトの名無しさん
2014/12/26(金) 11:54:23.23ID:0Z1WSbygてかピアノ弾き多いな
0473デフォルトの名無しさん
2014/12/26(金) 14:48:40.07ID:s2xSvg8vなんで左手の小指は使わん!
0474デフォルトの名無しさん
2014/12/26(金) 19:09:42.71ID:X4m3180hキーのスイッチが押し初めの方に有るキーボードを使って底付きしないように、
指の腹で押す。英語だとtyping injuryでぐぐると一杯情報有るのに
日本語だとこの手の情報あんまりないよね。。。。俺の探し方が悪いのか??
0475デフォルトの名無しさん
2014/12/26(金) 20:21:33.27ID:0m+CPJzh底づきさせてるんじゃないのか?
癖を直すのとクソキーボード変えるべきじゃないのか
0476デフォルトの名無しさん
2014/12/26(金) 20:22:37.55ID:XBzLiayqあっちはタイプライターが結構前から普及してたけど、日本だとその頃は習字が該当するから。
文字書くときの姿勢関係だとペンクラブとかでも話題があるから文化的違いじゃないの?
PC普及でこれから事例が増えるといっぱい出てくる希ガス
0477デフォルトの名無しさん
2014/12/26(金) 20:25:58.68ID:0m+CPJzh俺が教えた学生は全員ブラインド訓練からやらせた
文句言う男子はタコ部屋で俺のために稼がせる
文句言う女子学生は文句言えないようにおれの云々棒で口を塞ぐ
という硬い決意で望んだが、みんな真面目でな
金は入らんし棒は入れられんし
悲しかったなぁ
0478デフォルトの名無しさん
2014/12/26(金) 21:12:39.96ID:U37YhbAO0479デフォルトの名無しさん
2014/12/26(金) 23:10:04.00ID:Dh6fXMBx0480デフォルトの名無しさん
2014/12/26(金) 23:50:50.17ID:GnotqpXf0481デフォルトの名無しさん
2014/12/27(土) 03:56:02.78ID:nu41WR0tわはははは
瑣末君の無駄な書き込み乙
>>478
たかが表現に拘泥するあたり才能のなさを告白してるな
ろくな研究できてないだろ
さてと
ブラインドでカチャカチャやるか
コラコラ、そこの、低能
クチュクチュじゃないからな、ほらほら、中指立てるな
0482デフォルトの名無しさん
2014/12/27(土) 10:31:37.62ID:fnnT6z+r0483デフォルトの名無しさん
2014/12/27(土) 11:22:15.74ID:GT0kNYLG0484デフォルトの名無しさん
2014/12/27(土) 12:03:58.24ID:8H3WtYVY氏ねじゃなくて死ねよゴミカス >>481
0485デフォルトの名無しさん
2014/12/27(土) 12:45:53.81ID:NculZWCDCLの仕様より大きくなるらしいが。
0486デフォルトの名無しさん
2014/12/27(土) 17:56:08.09ID:OOwiOXEM0487デフォルトの名無しさん
2014/12/27(土) 18:33:20.71ID:JqzH5JvrてかISLisp改良して欲しい
0488デフォルトの名無しさん
2014/12/27(土) 20:17:01.39ID:OOwiOXEM0489デフォルトの名無しさん
2014/12/27(土) 21:58:53.06ID:qq52R1C7処理系にはどんどん頑張ってほしいけど
あえて言うなら処理系依存の所を減らしてくれたらいいけど
0490デフォルトの名無しさん
2014/12/27(土) 23:19:17.50ID:8H3WtYVY実装がともなってないと相手にされないことも多い。
(だから実装作れ、超がんがれ、という話になるわけだが)
0491デフォルトの名無しさん
2014/12/27(土) 23:24:01.98ID:kcXcAVhx0492デフォルトの名無しさん
2014/12/27(土) 23:30:07.38ID:qq52R1C70493デフォルトの名無しさん
2014/12/27(土) 23:31:44.97ID:qq52R1C7まあみんなそれくらい作ってるよな
0494デフォルトの名無しさん
2014/12/28(日) 09:07:42.58ID:EmbVcJ4C0495デフォルトの名無しさん
2014/12/28(日) 09:25:51.22ID:GqM4jvZj0496デフォルトの名無しさん
2014/12/28(日) 10:52:27.52ID:uZelGoi1ハノンとかチェルニーとか人生の時間の無駄だから‥インベンションやシンフォニアがおすすめだ
0497デフォルトの名無しさん
2014/12/28(日) 14:21:40.21ID:lDrrlBywこのマクロは (i (f)) => #f , (i f) => #t でいいのか?
(define-syntax i
(syntax-rules ()
((_ c)
(letrec-syntax ((f (syntax-rules () ((_) #t)))
(t (syntax-rules ()
((_ c) (f))
((_ x) #f))))
(t f)))))
0498デフォルトの名無しさん
2014/12/28(日) 18:43:29.49ID:k9mhlpYKいいよ。
0499デフォルトの名無しさん
2014/12/28(日) 19:13:59.16ID:3WT3VAffこれ、定義の3行目のcと6行目のcは別ものとして扱われるはずだから、
(i Y)でYになにをもってきても7行目の((_ x) #f)は適用されんだろ。
結局、常に(i Y) => #t になる。
0500デフォルトの名無しさん
2014/12/28(日) 19:17:22.18ID:6IxIWlMAGun = Kata
0501デフォルトの名無しさん
2014/12/28(日) 19:46:02.03ID:k9mhlpYK別物にはならないよ。 同じだよ。
0502デフォルトの名無しさん
2014/12/28(日) 19:53:47.21ID:AQDitcxr俺も作ったわ w
専用命令込みで
0503499
2014/12/28(日) 20:17:27.76ID:3WT3VAffR5RSのsyntax-rulesの説明を見る限り、
cはパターン変数として扱われるから
7行目のcは3行目のcを参照しないでしょ。
このへん、R6RS及びR7RSで変更されたの?
0504デフォルトの名無しさん
2014/12/28(日) 21:10:05.79ID:9AFaWS8j自分はMoshとGaucheを信用しているのだが、それぞれ結果が異なる。
mosh> (i f)
#t
gosh> (i f)
*** ERROR: unbound variable: f
Stack Trace:
______________
0505499
2014/12/28(日) 23:32:50.46ID:3WT3VAffgaucheのdefine-syntaxってdefine-syntaxを含むマクロが定義できないバグが
あったんやけど、letrec-syntaxでも同じなんじゃないかな。
0506501
2014/12/29(月) 02:10:36.92ID:4HBx8iThパターン変数だが、それによって 7 行目の c が 3 行目の c に対応しないとする理由になると考える理由がわかんないな。
0509デフォルトの名無しさん
2014/12/29(月) 11:35:08.08ID:peqZoxpi0510デフォルトの名無しさん
2014/12/29(月) 12:31:51.57ID:KnCKCoglまったくだ。それでなくても開発者人口が極めて少なく、マンパワーが
不足しているのに、貴重なリソースを健全マクロに注いでいる。
0511デフォルトの名無しさん
2014/12/29(月) 14:42:35.74ID:TA0KsTNu融通が効かないし、純潔でないものは無条件に悪と決めつけてるから、実務では汚染源になる
0512デフォルトの名無しさん
2014/12/29(月) 15:14:25.22ID:LxjJzYoX事前に評価されないようにする定義方法あったよな
ああいうのを取り入れたlisp-2が欲しい
0513デフォルトの名無しさん
2014/12/29(月) 15:47:38.70ID:Ha3wslYM勝手に開発者のモチベーションを共有リソースにするやつがいるんだな
0514デフォルトの名無しさん
2014/12/29(月) 16:42:30.82ID:KnCKCogl気に障ったんなら許してくれ。開発者が完全な衛生的マクロを望み、
ユーザーが渇望しているのなら、それでいいと思う。孤高の人、scheme
0515デフォルトの名無しさん
2014/12/29(月) 20:24:23.96ID:4HBx8iTh既に >>451 で指摘されているけど、 syntax-rules は現時点での妥協でしかないのでこれだけで「衛生的マクロ」を評価すんなよ。
0516デフォルトの名無しさん
2014/12/29(月) 21:39:05.88ID:FaRhf2Lbsyntax-case ってのも妥協の産物なのかい?
0517デフォルトの名無しさん
2014/12/29(月) 22:21:18.33ID:yyaVSOAHシロウト意見だけど、これだけ何十年も決まらない、って衛生的マクロのアイディアに何処かに根本的な無理があるんじゃないの?
第1級の継続より限定継続の方が現実的、なみたいにさ。
それとも議論を尽くせばそのうち決まるものなのかな。
0518デフォルトの名無しさん
2014/12/30(火) 02:28:17.65ID:dHN2E2Y1Yes。
底レベルで何をやってるかを隠していきなり高水準な機能を与えてる。
底レベルでの処理にどんなモデルを採用するかをうやむやにした結果。
0519デフォルトの名無しさん
2014/12/30(火) 02:50:07.82ID:dHN2E2Y1マクロに限らずまだまだまだまだ決まってないことだらけじゃないか。
そんでもって、そもそも決めなきゃならないのかっていう議論さえときどき出てくる。
仕様にしてしまうことで実装を縛るのを嫌がってるんだよ。
それでも、どうしても決まってしまったものが仕様になる。
Schemeってそういうものだろ。 単に方針の違い。
0520デフォルトの名無しさん
2014/12/30(火) 03:18:27.54ID:pTIn0EX10521デフォルトの名無しさん
2014/12/30(火) 08:09:57.76ID:2a7COvxLフルの継続は実装としては興味深いが、ユーザーとしては使いにくいな。
仕様を限定して実装を軽くしてやった方が使い道があるだろうと思う。
0522デフォルトの名無しさん
2014/12/30(火) 08:27:20.30ID:qF0mG1f3左腕がサイコガンか何かなのか?
0523デフォルトの名無しさん
2014/12/30(火) 14:22:27.11ID:dHN2E2Y1そりゃ逆だろう。 実装は面倒くさいがユーザーとしてはフルの方がわかりやすいよ。
継続が一回しか呼出されないとか、範囲が限定されているとかいうのはプログラムから読み取って処理系が最適化を頑張って欲しい。
ユーザーには制限が見えない方がいい。
0524デフォルトの名無しさん
2014/12/30(火) 14:32:13.09ID:3v7rngRa0525デフォルトの名無しさん
2014/12/30(火) 14:46:07.77ID:2a7COvxL昔のcall/ec程度で十分だと思うがなぁ。
CLの黒田さんにもフルの継続の問題点が指摘されている。
0526デフォルトの名無しさん
2014/12/30(火) 14:57:18.11ID:2a7COvxLDybvig先生?
0527デフォルトの名無しさん
2014/12/30(火) 15:38:37.11ID:dHN2E2Y1「十分」って誰基準よー。
そういう考え方やめろよ。
制限を排除していくのがSchemeの大綱だろ。
0528デフォルトの名無しさん
2014/12/30(火) 15:57:42.62ID:ZsdhomO+大綱? それ、どこに書いてあるんだ?
0529デフォルトの名無しさん
2014/12/30(火) 16:02:52.74ID:dHN2E2Y1Introduction
0530デフォルトの名無しさん
2014/12/30(火) 16:18:00.44ID:ZsdhomO+そこまでは書いてないと思うが。
でもそう考えているschemerは多いんだろうな。
0531デフォルトの名無しさん
2014/12/30(火) 16:19:04.99ID:3v7rngRaProgramming languages should be designed not by piling feature on top of feature,
but by removing the weaknesses and restrictions that make additional features appear necessary.
必要な機能を追加するのではなく、その機能が必要になるような弱点や制限を取り除くべき
0532デフォルトの名無しさん
2014/12/30(火) 16:27:33.04ID:vs+COFUK0533デフォルトの名無しさん
2014/12/30(火) 16:30:38.38ID:+7B8jKAW0534デフォルトの名無しさん
2014/12/30(火) 16:36:36.26ID:3v7rngRa0535デフォルトの名無しさん
2014/12/30(火) 16:40:20.02ID:dHN2E2Y1明記はされていないものの、Scheme的には表現力を重視していると思う。
だからといって遅すぎてもよいというわけでもないのでそこらへんはバランスを取りながらということで。
0536デフォルトの名無しさん
2014/12/30(火) 18:40:08.70ID:ZsdhomO+https://gist.github.com/SaitoAtsushi/8784203
動かない。
0537デフォルトの名無しさん
2014/12/30(火) 19:10:19.18ID:ZsdhomO+効率、めっちゃ悪そうだけど。
0538デフォルトの名無しさん
2014/12/30(火) 19:52:37.92ID:dHN2E2Y1car や cdr を使ってるからか?
(scheme base) に car や cdr は含まれてるので、 (scheme cxr) を import しなけりゃ動かないというのなら処理系 (が持つライブラリ) の方が間違ってると思う。
0539デフォルトの名無しさん
2014/12/30(火) 19:55:15.74ID:dHN2E2Y1それはちょっと古いやつ。
こっちの方が本格的になってる。
https://github.com/SaitoAtsushi/pattern-match-lambda
0540デフォルトの名無しさん
2014/12/30(火) 20:01:55.94ID:ZsdhomO+ああ、そうなのか。妙な構成にしておくんだな。
0541デフォルトの名無しさん
2014/12/30(火) 20:18:52.16ID:ZsdhomO+実用性はともかくマクロ展開期のテストにはいいな。
動かない処理系、けっこうあるんじゃないか?
0542デフォルトの名無しさん
2014/12/30(火) 20:59:02.98ID:ZsdhomO+GaucheのR7RSモードで試してみたが、全然、動かないぞ。
0543デフォルトの名無しさん
2014/12/30(火) 21:07:29.63ID:dHN2E2Y1known issue。
マクロでマクロを生成する系のマクロはR5RSの頃からGaucheでは動かないことがあったよ。
今のheadではexplicit renamingが実装されていて、それを元に展開器がSchemeで書き直される予定があるよ。
次のリリースで修正されるか、間に合わなければその次のリリースになるとのこと。
0544デフォルトの名無しさん
2014/12/30(火) 21:09:36.95ID:ZsdhomO+了解
0545デフォルトの名無しさん
2014/12/30(火) 21:30:59.76ID:vs+COFUK仕様が難しいの?それとも曖昧なの?
■ このスレッドは過去ログ倉庫に格納されています