Lisp Scheme Part41 (856レス)
Lisp Scheme Part41 http://mevius.5ch.net/test/read.cgi/tech/1531587928/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
532: はちみつ餃子 ◆8X2XSCHEME [sage] 2022/02/09(水) 23:48:43.20 ID:9Cj+df9g ところで scm を使うのはなにか理由があるの? 単なる好みならそれはそれでいいんだけど このスレで言及される Scheme 処理系は Gauche, Racket, Chicken あたりが多いので scm 使いは珍しいなーと思った。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/532
533: デフォルトの名無しさん [sage] 2022/02/10(木) 00:36:07.94 ID:d8JzH9qO guile使ってるけど#:で自己評価シンボルになるな よく見かける:の方はデフォルトで有効じゃなくて、オプション切り替えだったり http://mevius.5ch.net/test/read.cgi/tech/1531587928/533
534: はちみつ餃子 ◆8X2XSCHEME [sage] 2022/02/10(木) 11:27:44.77 ID:zyc1CtL/ Guile のキーワードはシンボルとは別の型。 (symbol? #:foo) は #f を返す。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/534
535: デフォルトの名無しさん [sage] 2022/02/10(木) 20:51:58.38 ID:/6XFwXXi CLの掟とか知らないから名前付き引数はマクロでシコシコやってた思い出 http://mevius.5ch.net/test/read.cgi/tech/1531587928/535
536: デフォルトの名無しさん [sage] 2022/03/22(火) 22:52:38.10 ID:VhTpyHaP https://www.meti.go.jp/press/2021/03/20220322006/20220322006.html http://mevius.5ch.net/test/read.cgi/tech/1531587928/536
537: デフォルトの名無しさん [sage] 2022/03/22(火) 23:07:01.10 ID:jC3GI8nJ Lispエイリアンww http://mevius.5ch.net/test/read.cgi/tech/1531587928/537
538: デフォルトの名無しさん [sage] 2022/03/23(水) 05:57:57.32 ID:M5tI2TdZ ほんまや http://mevius.5ch.net/test/read.cgi/tech/1531587928/538
539: _ [] 2022/04/03(日) 20:41:08.96 ID:2/Br4qMY LLVMベースの Common Lisp Clasp が1.0 になったよー https://github.com/clasp-developers/clasp/releases/tag/1.0.0 http://mevius.5ch.net/test/read.cgi/tech/1531587928/539
540: デフォルトの名無しさん [sage] 2022/04/04(月) 01:15:26.65 ID:H1vYw7XQ キタ━━━━(゚∀゚)━━━━!! http://mevius.5ch.net/test/read.cgi/tech/1531587928/540
541: デフォルトの名無しさん [sage] 2022/04/04(月) 15:23:18.85 ID:lL1T2q6e >>539 新興?処理系もまだ増えてるのね 良きことだ http://mevius.5ch.net/test/read.cgi/tech/1531587928/541
542: でーちゃんじゃないけど [] 2022/06/25(土) 21:10:35.30 ID:AGenfzJY github.com/Soldier-B/ns.js/blob/master/ns.js#L3 http://mevius.5ch.net/test/read.cgi/tech/1531587928/542
543: デフォルトの名無しさん [] 2022/06/26(日) 13:26:40.20 ID:DTfGvOZF さとばん http://mevius.5ch.net/test/read.cgi/tech/1531587928/543
544: デフォルトの名無しさん [] 2022/11/07(月) 12:52:23.10 ID:D9DaYQB4 svigiはなんて読めばいいの http://mevius.5ch.net/test/read.cgi/tech/1531587928/544
545: デフォルトの名無しさん [] 2022/11/07(月) 12:52:44.37 ID:D9DaYQB4 木曽路的な http://mevius.5ch.net/test/read.cgi/tech/1531587928/545
546: はちみつ餃子 ◆8X2XSCHEME [sage] 2022/11/07(月) 13:59:37.65 ID:QQJOk/Pv >>544 アイスランド語で括弧の意味だというのはあのキャラの作者が発表している公式な情報だから Wikipedia でアイスランド語の表記から調べてみた。 https://ja.wikipedia.org/wiki/%E3%82%A2%E3%82%A4%E3%82%B9%E3%83%A9%E3%83%B3%E3%83%89%E8%AA%9E%E3%82%A2%E3%83%AB%E3%83%95%E3%82%A1%E3%83%99%E3%83%83%E3%83%88 たぶんこの場合の g は英語でいうところの y みたいな発音。 あえてカタカナで表すと「スヴィーイィ」みたいな感じ。 アイスランド語の辞
書サイトで音を聞いてみた感じでも外してないと思う。 https://islenskordabok.arnastofnun.is/ord/40650 http://mevius.5ch.net/test/read.cgi/tech/1531587928/546
547: デフォルトの名無しさん [] 2022/11/07(月) 16:54:40.26 ID:D9DaYQB4 >>546 ありがとう 音素と発音記号は手堅いね http://mevius.5ch.net/test/read.cgi/tech/1531587928/547
548: デフォルトの名無しさん [sage] 2022/11/07(月) 20:41:51.67 ID:kjCGP1Rc >>546 ここでアイスランド語が言及されるとは驚きました、アイスランド語は実に濃ゆい言語ですね 教科書(Johns Hopkins) を買ったけれども、当然 1 ワードも読めませんでした http://mevius.5ch.net/test/read.cgi/tech/1531587928/548
549: デフォルトの名無しさん [sage] 2022/12/12(月) 12:44:02.44 ID:asaSA4nl 「命の輝き君」がマンホールの蓋に 轢死体と見分けがつかなくなってしまう [725951203] https://hayabusa9.5ch.net/test/read.cgi/news/1670487647/ http://mevius.5ch.net/test/read.cgi/tech/1531587928/549
550: デフォルトの名無しさん [sage] 2023/01/08(日) 12:42:17.07 ID:hPHqQTwv schemeはじめましたなんだけど [lisp1.0+]label, [cl]labels = letrec + let name [cl]flet ((f (args) fletbody)) body = let ((f (lambda (args) body)) letbody) って理解でいいの? http://mevius.5ch.net/test/read.cgi/tech/1531587928/550
551: はちみつ餃子 ◆8X2XSCHEME [sage] 2023/01/08(日) 17:21:31.97 ID:/n9SAwLy おおよそ似た雰囲気では書けたりするのかもしれないけど 単純に対応してるわけじゃなかったりもするからいいかどうかは状況によるんじゃないの。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/551
552: デフォルトの名無しさん [sage] 2023/01/08(日) 18:49:11.56 ID:5ojqztS1 まんまじゃね? とりあえず(macroexpand 'sb-int:named-let)はそのまんまlabelsに展開されたのでお試しあれ どの処理系でも似たような定義が大体あるはず 1958年のオリジナルlispのlabelは、scheme界隈ではlet1という名前で見掛ける 当然だけど、ローカル定義が一つなので(自明には)相互再帰はできない 触って気付いたけど (flet ((cons (a d) (list :cons a d))) (cons :a :d)) ; (:CONS :A :D) clisp, sbcl ; (:A . :D) ecl eclのこれバグ? http://mevius.5ch.net
/test/read.cgi/tech/1531587928/552
553: デフォルトの名無しさん [sage] 2023/01/09(月) 03:51:35.47 ID:0CyucYY1 触ったことないのでeclがどの程度cltl/ANSI/clhs等の標準をリスペクトしてるのかも分からないのだが とりあえずgoogle play storeからeclのandroidポートらしいeql5 replを入れてみた (list ;; attempt to shadow cl:cons (flet ((cons (x y) (cons y x))) (cons 'co '?ns)) (let ((cons (lambda (x y) (cons y x)))) (funcall cons 'co 'ns))) ((CO . NS) (NS . CO)) fletは謎挙動だね… * shadowしない名前(xcons)ならok * (flet ((cons (x) (1+ x))) (cons 42))が
アリティ不一致で怒られる から推測するに、普通cl packageの関数なんて弄られないだろうと踏んで、関数の名前解決を手抜きして最適化してるんだろう 値の名前解決は特に弄る意義もないので、scheme風にlambdaをletで値として束縛して呼べば問題ない clを名乗る以上はオプションで切れるくらいの配慮はあるだろうから、eclにこだわるならマニュアル読んでみては 少なくともclhsはリスペクトしてないね ...flet can locally shadow a global function name, ... http://www.lispworks.com/documentation/HyperSpec/Body/s_flet_.htm http://mevius.5
ch.net/test/read.cgi/tech/1531587928/553
554: デフォルトの名無しさん [sage] 2023/01/09(月) 16:15:24.76 ID:2yNmR2Eh | 彡⌒ミ \ (´・ω・`)名前のシャドウ化辺りって自分で処理系実装した子はわかると思うけどハゲる要因だから絶対関わらない方がいいと思う (| |):::: (γ /::::::: し \::: http://mevius.5ch.net/test/read.cgi/tech/1531587928/554
555: デフォルトの名無しさん [sage] 2023/01/09(月) 16:36:52.10 ID:0CyucYY1 eclは有名だけど、embeddableの名前通りの用途で1MBちょいな処理系だから、そういうものと割り切って使うべき funcallが冗長ならletのbodyにfuncallをconsするだけのmy-fletを作ればいいじゃない (さらなる災禍を招きそう) http://mevius.5ch.net/test/read.cgi/tech/1531587928/555
556: デフォルトの名無しさん [sage] 2023/01/09(月) 16:57:44.09 ID:0CyucYY1 eclのlocked packageなる概念やcompile-timeの意味論に関連しそうなissue 2 yeas agoだけど https://gitlab.com/embeddable-common-lisp/ecl/-/issues/574 http://mevius.5ch.net/test/read.cgi/tech/1531587928/556
557: デフォルトの名無しさん [sage] 2023/01/10(火) 02:33:32.35 ID:/i8qCr3o >>553 特定の名前の解決を決め打つ言語は多いし、そういうポリシーもありだと思う 普通でないのはcondition(warning)を挙げないところ 決め打つ名前(locked package?)が分かってる限りは、flet/labelsのレキシカル束縛リストから拾った名前がbody内の呼び出しformのcarに存在するか、ランタイムコストの無い自明な静的解析でconditionを挙げられるはず http://mevius.5ch.net/test/read.cgi/tech/1531587928/557
558: デフォルトの名無しさん [sage] 2023/01/10(火) 03:18:54.37 ID:/i8qCr3o >>550 等価と思って良いよ 伝統的なlisp(とcl)のように(let ((x '())) ...)を(let (x) ...)と略記できない、だとか細かい差異はあるけど 百聞は一見にしかずなので、構文の対応を見るのが手っ取り早い あとeclのname collisionの件、consの例(>>553)はさすがにcontrived-exampleだと思うので、ついでにeclで破綻するように letrec/nlet/labels で定義するラベルとして、所謂accumulatorイディオムにloop(他にはlp, iterとか)を使うのが慣例だけど、eclでは
cl:loopと読まれるのでは?と予想 ;;; cl -- ok: cmucl, sbcl, clisp, gcl err:ecl (的中) (defun fact (n) (labels ((loop (k acc) (if (= k 0) acc (loop (1- k) (* k acc))))) (loop n 1))) ;;; scheme -- ok: guile (define (fact n) (letrec ((loop (lambda (k acc) (if (= k 0) acc (loop (1- k) (* k acc)))))) (loop n 1))) pcでテストはしたけど、スマホから手打ちなので変だったらごめん http://mevius.5ch.net/test/read.cgi/tech/1531587928/558
559: はちみつ餃子 ◆8X2XSCHEME [sage] 2023/01/10(火) 13:31:12.96 ID:TxpPtfKm >>557 スクリプト言語 (処理系) 的な想定だと実行開始時にテキストの解釈から毎回やるので 静的解析もランタイムの一部みたいな感じになる。 この場合に限って言えばどちらにせよ名前のルックアップはやるのだからそのときにわかるだろうとは思うけど 静的解析を頑張らないという方針はあり得るんじゃないの。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/559
560: はちみつ餃子 ◆8X2XSCHEME [sage] 2023/01/11(水) 00:38:29.47 ID:s0T2WgwN Gauche で検出されないエラーで (let ((0 1)) 0) みたいなのがあって、 実際にはオプティマイザが消去してしまうんだそうな。 文法の解析で通したものをオプティマイザがエラーとして弾くのも変な話だし、 オプティマイザが走査することがわかっているものを前段階でもチェックするのは二度手間だし、 オプティマイザを密結合してしまうのも保守しづらいし…… という葛藤があるのはわかる。 まあそれぞれに事情があるので原理的に可能だからといってそうすべきだ
とも言えない気がする。 http://mevius.5ch.net/test/read.cgi/tech/1531587928/560
561: デフォルトの名無しさん [sage] 2023/01/11(水) 00:49:38.31 ID:LBEzL6fs 0はシンボルじゃないから、文法解析を通しちゃ駄目だろw http://mevius.5ch.net/test/read.cgi/tech/1531587928/561
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 295 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.012s