Common Lisp、SchemeをはじめとするLisp族全般のスレです
■前スレ
Lisp Scheme Part40
http://mevius.5ch.net/test/read.cgi/tech/1426481152/
■テンプレ
ttp://wiki.fdiary.net/lisp/
■関連スレ
【Lisp】プログラミング言語 Clojure #4【JVM】 [無断転載禁止]©2ch.net
http://mevius.5ch.net/test/read.cgi/tech/1483498849/
【GNU】スクリプト言語 Guile【scheme】
http://mevius.5ch.net/test/read.cgi/tech/1239985829/
【入門】Common Lisp その11【質問よろず】
http://peace.2ch.net/test/read.cgi/tech/1411307361/
【Scheme】Schemeインタプリタ Mosh Part1【Lisp】
http://peace.2ch.net/test/read.cgi/tech/1272469779/
【魔法】リリカル☆Lisp【言語】
http://peace.2ch.net/test/read.cgi/tech/1183396621/
Lisp@UNIX版
http://mevius.5ch.net/test/read.cgi/unix/1019926525/
探検
Lisp Scheme Part41
2018/07/15(日) 02:05:28.62ID:oGr67yTf
481デフォルトの名無しさん
2021/11/29(月) 20:25:25.48ID:egtLBMKE roswellは複雑すぎて分からん
482デフォルトの名無しさん
2021/11/30(火) 11:59:55.55ID:mt2EOzfV LISPマシン
https://youtu.be/4c8qJGlG9Ik
https://youtu.be/4c8qJGlG9Ik
483デフォルトの名無しさん
2021/12/01(水) 00:08:54.18ID:S5WVP6ck quicklispとかroswellとか、全部一体化されたら使うわ
484デフォルトの名無しさん
2021/12/08(水) 02:22:37.34ID:7SPCPFJp485デフォルトの名無しさん
2021/12/15(水) 14:51:19.13ID:gD/y5IR+ Lispworks 8でた!
486はちみつ餃子 ◆8X2XSCHEME
2021/12/15(水) 16:19:54.21ID:liRiJS5F Chicken Scheme 5.3.0 が先月リリースされてたのに気づいてなかったわ。
487デフォルトの名無しさん
2021/12/18(土) 20:20:58.46ID:wxlLyg04 Lispworksのpro版購入してる人いますか?
488_
2021/12/27(月) 16:17:35.40ID:kKbRMARZ Release of LispWorks 8.0
http://www.lispworks.com/news/news39.html
LispworksってSBCL みたいなSIMDサポートありますか?
http://www.lispworks.com/news/news39.html
LispworksってSBCL みたいなSIMDサポートありますか?
489デフォルトの名無しさん
2021/12/27(月) 23:09:52.29ID:W+QyKxlb 週2日出社、週2日在宅の週4日勤務が最高の働き方だと提唱したい
週休3日制になったら給料を減らされる??そんな考えだからいつまで経っても貧乏なんだよ...
サラリーマンが副業でプライベートカンパニーを設立するメリット
Webマーケターに転職して、セミリタイアを実現させる方法
【朗報】「在宅勤務OK」の求人、コロナ前と比べて7 7倍に上昇!
【悲報】「会社員に戻りたい!」というフリーランス、全体の3%しかいないw
【悲報】副業が解禁されても、副業を見つけられずに困窮する会社員が続出...
日頃から副業をやっておくことの重要性を再認識しよう
【驚愕】5人に1人は本業よりも副業収入の方が多いことが判明w 本業よりも稼げる副業とはなんなのか??
週休3日制になったら給料を減らされる??そんな考えだからいつまで経っても貧乏なんだよ...
サラリーマンが副業でプライベートカンパニーを設立するメリット
Webマーケターに転職して、セミリタイアを実現させる方法
【朗報】「在宅勤務OK」の求人、コロナ前と比べて7 7倍に上昇!
【悲報】「会社員に戻りたい!」というフリーランス、全体の3%しかいないw
【悲報】副業が解禁されても、副業を見つけられずに困窮する会社員が続出...
日頃から副業をやっておくことの重要性を再認識しよう
【驚愕】5人に1人は本業よりも副業収入の方が多いことが判明w 本業よりも稼げる副業とはなんなのか??
490デフォルトの名無しさん
2021/12/27(月) 23:20:39.96ID:rFnrNjhz 家でゲームやってる方が100倍楽しい
491デフォルトの名無しさん
2021/12/28(火) 14:24:25.81ID:ikdMcku9 Gauche 0.9.11 リリース
492デフォルトの名無しさん
2021/12/29(水) 00:16:33.25ID:CixWfOUS >>491
でも来年も1.0は出ないんでしょう?
でも来年も1.0は出ないんでしょう?
493_
2022/01/04(火) 06:23:02.11ID:rzEME/gD494デフォルトの名無しさん
2022/01/04(火) 09:25:24.58ID:0EKZRL01495デフォルトの名無しさん
2022/01/04(火) 18:09:56.39ID:M2x34zFQ496デフォルトの名無しさん
2022/01/05(水) 01:55:05.36ID:M/mCn8xE 1.0 で Stabilize と書いてはいるが、別に現状の動作が不安定で落ちたりするという意味じゃなくて
API の試行錯誤とかをやってたのを 1.0 では「とりあえずの」決定版にしようねという話であって、
後にもたまには大きな変更だってあるだろうし、そのへんの感覚は番号だけ見てもわからんのだよな。
むしろメジャーバージョンが変わった直後は不安定という通説もあるし。
メジャーバージョンがクソデカでも信用ならんものなんて腐るほど見てきただろう?
心理的な障壁というのはわかるんだけど、逆に言えば気分の問題でしかない。
検証した上でやっぱりアカンとなったならしょうがないんだけど、
バージョンナンバー「だけで」判断してるのならよい態度ではないよね。
API の試行錯誤とかをやってたのを 1.0 では「とりあえずの」決定版にしようねという話であって、
後にもたまには大きな変更だってあるだろうし、そのへんの感覚は番号だけ見てもわからんのだよな。
むしろメジャーバージョンが変わった直後は不安定という通説もあるし。
メジャーバージョンがクソデカでも信用ならんものなんて腐るほど見てきただろう?
心理的な障壁というのはわかるんだけど、逆に言えば気分の問題でしかない。
検証した上でやっぱりアカンとなったならしょうがないんだけど、
バージョンナンバー「だけで」判断してるのならよい態度ではないよね。
497デフォルトの名無しさん
2022/01/05(水) 09:05:38.61ID:i4+082M6 1.0をだしたら、これまでできなかったあんあことやこんなことをやってみて、がんがん不安定化させるということだよね。もう飽きたからメンテナンスフェーズにはいるじゃないよね。
498デフォルトの名無しさん
2022/01/08(土) 17:42:20.32ID:p9TLuwuj Gauche は作者自身が仕事で使うための道具でもあるから
万人向けではない方向にデザインされるということはあるかもしれんが、
(まあそもそも Scheme が万人向けではないが……)
常に作者によって使われているので大きく壊れることはたぶんあんまりない。
万人向けではない方向にデザインされるということはあるかもしれんが、
(まあそもそも Scheme が万人向けではないが……)
常に作者によって使われているので大きく壊れることはたぶんあんまりない。
499デフォルトの名無しさん
2022/01/09(日) 03:10:06.49ID:Yh7kYLt+ forkすりゃいいじゃん
500デフォルトの名無しさん
2022/01/09(日) 09:17:46.18ID:/FcxVx4/ 無理
501デフォルトの名無しさん
2022/01/09(日) 19:19:41.13ID:KdA6aSLx gaucheはr7rs対応したときに2.0になっていてもよかったのではとおもう
502デフォルトの名無しさん
2022/01/10(月) 19:38:26.99ID:2hS04FMw 俺はscmは遊ぶ用だけどguileがいい感じ、イントロスペクションがつよいので掘って遊べる
まだまだあんどきゅめんてっどなelモード探索も楽しい
まだまだあんどきゅめんてっどなelモード探索も楽しい
503デフォルトの名無しさん
2022/01/15(土) 20:48:11.65ID:lW+N/iWS 今度のMSXはCとLispとPythonが動くんだぞ
https://www.4gamer.net/games/999/G999905/20220113106/
https://www.4gamer.net/games/999/G999905/20220113106/
504デフォルトの名無しさん
2022/01/16(日) 15:41:52.89ID:13k9JV8z ことしのlisp的抱負をひとつ...
505デフォルトの名無しさん
2022/01/16(日) 17:06:35.43ID:qRjB4bc5506デフォルトの名無しさん
2022/01/16(日) 22:33:47.36ID:UU19DhdN 同じく
あと、リスト遊び読む
あと、リスト遊び読む
507デフォルトの名無しさん
2022/01/16(日) 22:57:05.20ID:hpGcG9O9 あくまで個人的感想だが、そういう風に勉強のために勉強するみたいなのは結局は上手くいかんのじゃないかと思う。
508デフォルトの名無しさん
2022/01/16(日) 23:41:32.77ID:UU19DhdN じゃあ、GAFAを超えるものを作るために勉強する!
509デフォルトの名無しさん
2022/01/17(月) 05:54:03.53ID:F1CAOb16510デフォルトの名無しさん
2022/01/17(月) 10:07:54.20ID:jU2WrI4n 成果物として作るんでなくてもちょっとした前処理程度のことをするときに使えばいいよ。
使い捨てるものを何で作ろうが文句は言わせん。
プライベートで使うんでもいいしな。
使い捨てるものを何で作ろうが文句は言わせん。
プライベートで使うんでもいいしな。
511デフォルトの名無しさん
2022/01/17(月) 10:10:54.91ID:mRPHMZkx ツール類は自分の慣れた言語で作ってしまうw
512デフォルトの名無しさん
2022/01/17(月) 10:32:49.23ID:jU2WrI4n 俺は Scheme が一番慣れた言語だから……
こういうのがニワトリタマゴってやつかね。
慣れるために使いたいのに慣れてないから使わないってのでは
何も進まんでないか。
こういうのがニワトリタマゴってやつかね。
慣れるために使いたいのに慣れてないから使わないってのでは
何も進まんでないか。
513デフォルトの名無しさん
2022/01/17(月) 22:29:08.40ID:BbgRNbfx scheme使いなら自作の処理系の1つや2つは持ってるよね
514デフォルトの名無しさん
2022/01/18(火) 01:32:42.02ID:Q53p7HFH いいえ。
515デフォルトの名無しさん
2022/01/18(火) 23:30:17.32ID:Npm0ST7N 黒板とノートという万能処理系なら
516デフォルトの名無しさん
2022/01/19(水) 12:17:51.13ID:YBAvI2MD なにか作ろうと思うと結局cffiでcライブラリを呼び出して使ってるので、糊みたいな使い方しかしてないなぁ
517デフォルトの名無しさん
2022/01/20(木) 02:19:42.06ID:3oKX7/s6 Ruby でも JavaScript でも Python でもだいたいそんなもんだろ。
518デフォルトの名無しさん
2022/01/20(木) 19:02:36.89ID:GKs3JF21 scheme修行読んだら処理系書けるかな?
ちょっと読んでちっともわからなくて挫折したけど
ちょっと読んでちっともわからなくて挫折したけど
519デフォルトの名無しさん
2022/01/20(木) 21:08:50.31ID:Ibae9TV2 処理系作りたいなら下手な本より既存の処理系のソース読みまくるのが近道
520デフォルトの名無しさん
2022/01/22(土) 21:58:31.48ID:E9iIueP5 俺の気持ちを代弁してくれてたポエム
https://gist.github.com/phoe/7d24bdb1f2be76a02fecba8cfecbef38
https://gist.github.com/phoe/7d24bdb1f2be76a02fecba8cfecbef38
522デフォルトの名無しさん
2022/01/24(月) 20:39:39.47ID:xI9wwXQn ちゃんとエンドユーザー様までデプロイするのはめんどいのは確か
グラフィックス叩いたりするライブラリに依存するのはやむ無しだけど、純lispなライブラリはライセンスの許す限りスニペットに切り出して同梱してる
グラフィックス叩いたりするライブラリに依存するのはやむ無しだけど、純lispなライブラリはライセンスの許す限りスニペットに切り出して同梱してる
523デフォルトの名無しさん
2022/01/24(月) 21:07:29.09ID:e/3681Ma 継続が凄いって話は、かれこれ10年くらい聞いてたんだけど、結局は限定継続で十分だよね、
限定継続もあんまり応用ないね、って感じに落ち着いたのかな?
限定継続もあんまり応用ないね、って感じに落ち着いたのかな?
524デフォルトの名無しさん
2022/01/25(火) 11:38:40.17ID:GfuWsBWm 継続が凄いってなんだよ
継続ベースのlisp実装をschemeと言うのだから、そういう意味では凄い応用例だよ
継続ベースのlisp実装をschemeと言うのだから、そういう意味では凄い応用例だよ
525デフォルトの名無しさん
2022/01/25(火) 12:33:26.79ID:Do1EUgQ3 非限定継続ってjmcのambとかが該当するのか?
動作としてはバックトラックするだけだから特に継続概念が必須というわけではないけど、なんか楽しい
動作としてはバックトラックするだけだから特に継続概念が必須というわけではないけど、なんか楽しい
526デフォルトの名無しさん
2022/01/28(金) 01:56:11.96ID:hT9TavA0 形式定義できるのが継続の便利なところなんだよ。
バックトラックするだけとはいうが「バックトラックってなに?」というのを突き詰めていったときに「継続をこんなふうに受け渡してるでよ」と言えるの。
バックトラックするだけとはいうが「バックトラックってなに?」というのを突き詰めていったときに「継続をこんなふうに受け渡してるでよ」と言えるの。
527デフォルトの名無しさん
2022/01/28(金) 23:35:03.31ID:i9eS2qVS でも実際はambはただの愚直な探索だから遅いんじゃないの?
528デフォルトの名無しさん
2022/01/28(金) 23:54:45.12ID:hT9TavA0 原理的にはバックトラックと同じ速さ。
それが遅いというのならバックトラックでも遅い。
バックトラックより速い方法があってチューニングの手間をかけていいならそうすりゃいい。
それが遅いというのならバックトラックでも遅い。
バックトラックより速い方法があってチューニングの手間をかけていいならそうすりゃいい。
529デフォルトの名無しさん
2022/02/09(水) 12:03:16.04ID:3KsDo8lO >>522
久々にscm書いてみたんだけどsrfi1とMITとr6rsでfold, fold-left, reduce fold-right, reduce-right(とそのpair-版)が初期値の畳まれる位置や引数の左右スワップとか違ってて混乱した
とっくに誰かやってると思ったけど今後の為に:initial-valueと:from-endを取るcl式reduceを移植しました…
久々にscm書いてみたんだけどsrfi1とMITとr6rsでfold, fold-left, reduce fold-right, reduce-right(とそのpair-版)が初期値の畳まれる位置や引数の左右スワップとか違ってて混乱した
とっくに誰かやってると思ったけど今後の為に:initial-valueと:from-endを取るcl式reduceを移植しました…
530はちみつ餃子 ◆8X2XSCHEME
2022/02/09(水) 12:14:56.74ID:9Cj+df9g scm はキーワード型がないけどキーワード引数をどういう風に渡すの?
531デフォルトの名無しさん
2022/02/09(水) 12:36:09.65ID:3KsDo8lO restに'symb突っ込んで泥臭く拾ってます
srfiにちゃんとした機構あった気がするけど、小道具レベルで依存はしたくないので
srfiにちゃんとした機構あった気がするけど、小道具レベルで依存はしたくないので
532はちみつ餃子 ◆8X2XSCHEME
2022/02/09(水) 23:48:43.20ID:9Cj+df9g ところで scm を使うのはなにか理由があるの?
単なる好みならそれはそれでいいんだけど
このスレで言及される Scheme 処理系は Gauche, Racket, Chicken あたりが多いので
scm 使いは珍しいなーと思った。
単なる好みならそれはそれでいいんだけど
このスレで言及される Scheme 処理系は Gauche, Racket, Chicken あたりが多いので
scm 使いは珍しいなーと思った。
533デフォルトの名無しさん
2022/02/10(木) 00:36:07.94ID:d8JzH9qO guile使ってるけど#:で自己評価シンボルになるな
よく見かける:の方はデフォルトで有効じゃなくて、オプション切り替えだったり
よく見かける:の方はデフォルトで有効じゃなくて、オプション切り替えだったり
534はちみつ餃子 ◆8X2XSCHEME
2022/02/10(木) 11:27:44.77ID:zyc1CtL/ Guile のキーワードはシンボルとは別の型。
(symbol? #:foo) は #f を返す。
(symbol? #:foo) は #f を返す。
535デフォルトの名無しさん
2022/02/10(木) 20:51:58.38ID:/6XFwXXi CLの掟とか知らないから名前付き引数はマクロでシコシコやってた思い出
536デフォルトの名無しさん
2022/03/22(火) 22:52:38.10ID:VhTpyHaP537デフォルトの名無しさん
2022/03/22(火) 23:07:01.10ID:jC3GI8nJ Lispエイリアンww
538デフォルトの名無しさん
2022/03/23(水) 05:57:57.32ID:M5tI2TdZ ほんまや
539_
2022/04/03(日) 20:41:08.96ID:2/Br4qMY LLVMベースの Common Lisp Clasp が1.0 になったよー
https://github.com/clasp-developers/clasp/releases/tag/1.0.0
https://github.com/clasp-developers/clasp/releases/tag/1.0.0
540デフォルトの名無しさん
2022/04/04(月) 01:15:26.65ID:H1vYw7XQ キタ━━━━(゚∀゚)━━━━!!
541デフォルトの名無しさん
2022/04/04(月) 15:23:18.85ID:lL1T2q6e542でーちゃんじゃないけど
2022/06/25(土) 21:10:35.30ID:AGenfzJY github.com/Soldier-B/ns.js/blob/master/ns.js#L3
543デフォルトの名無しさん
2022/06/26(日) 13:26:40.20ID:DTfGvOZF さとばん
544デフォルトの名無しさん
2022/11/07(月) 12:52:23.10ID:D9DaYQB4 svigiはなんて読めばいいの
545デフォルトの名無しさん
2022/11/07(月) 12:52:44.37ID:D9DaYQB4 木曽路的な
546はちみつ餃子 ◆8X2XSCHEME
2022/11/07(月) 13:59:37.65ID: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
アイスランド語で括弧の意味だというのはあのキャラの作者が発表している公式な情報だから
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
547デフォルトの名無しさん
2022/11/07(月) 16:54:40.26ID:D9DaYQB4548デフォルトの名無しさん
2022/11/07(月) 20:41:51.67ID:kjCGP1Rc549デフォルトの名無しさん
2022/12/12(月) 12:44:02.44ID:asaSA4nl 「命の輝き君」がマンホールの蓋に 轢死体と見分けがつかなくなってしまう [725951203]
https://hayabusa9.5ch.net/test/read.cgi/news/1670487647/
https://hayabusa9.5ch.net/test/read.cgi/news/1670487647/
550デフォルトの名無しさん
2023/01/08(日) 12:42:17.07ID:hPHqQTwv schemeはじめましたなんだけど
[lisp1.0+]label, [cl]labels = letrec + let name
[cl]flet ((f (args) fletbody)) body = let ((f (lambda (args) body)) letbody)
って理解でいいの?
[lisp1.0+]label, [cl]labels = letrec + let name
[cl]flet ((f (args) fletbody)) body = let ((f (lambda (args) body)) letbody)
って理解でいいの?
551はちみつ餃子 ◆8X2XSCHEME
2023/01/08(日) 17:21:31.97ID:/n9SAwLy おおよそ似た雰囲気では書けたりするのかもしれないけど
単純に対応してるわけじゃなかったりもするからいいかどうかは状況によるんじゃないの。
単純に対応してるわけじゃなかったりもするからいいかどうかは状況によるんじゃないの。
552デフォルトの名無しさん
2023/01/08(日) 18:49:11.56ID: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のこれバグ?
とりあえず(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のこれバグ?
553デフォルトの名無しさん
2023/01/09(月) 03:51:35.47ID: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
とりあえず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
554デフォルトの名無しさん
2023/01/09(月) 16:15:24.76ID:2yNmR2Eh | 彡⌒ミ
\ (´・ω・`)名前のシャドウ化辺りって自分で処理系実装した子はわかると思うけどハゲる要因だから絶対関わらない方がいいと思う
(| |)::::
(γ /:::::::
し \:::
\ (´・ω・`)名前のシャドウ化辺りって自分で処理系実装した子はわかると思うけどハゲる要因だから絶対関わらない方がいいと思う
(| |)::::
(γ /:::::::
し \:::
555デフォルトの名無しさん
2023/01/09(月) 16:36:52.10ID:0CyucYY1 eclは有名だけど、embeddableの名前通りの用途で1MBちょいな処理系だから、そういうものと割り切って使うべき
funcallが冗長ならletのbodyにfuncallをconsするだけのmy-fletを作ればいいじゃない
(さらなる災禍を招きそう)
funcallが冗長ならletのbodyにfuncallをconsするだけのmy-fletを作ればいいじゃない
(さらなる災禍を招きそう)
556デフォルトの名無しさん
2023/01/09(月) 16:57:44.09ID:0CyucYY1 eclのlocked packageなる概念やcompile-timeの意味論に関連しそうなissue
2 yeas agoだけど
https://gitlab.com/embeddable-common-lisp/ecl/-/issues/574
2 yeas agoだけど
https://gitlab.com/embeddable-common-lisp/ecl/-/issues/574
557デフォルトの名無しさん
2023/01/10(火) 02:33:32.35ID:/i8qCr3o >>553
特定の名前の解決を決め打つ言語は多いし、そういうポリシーもありだと思う
普通でないのはcondition(warning)を挙げないところ
決め打つ名前(locked package?)が分かってる限りは、flet/labelsのレキシカル束縛リストから拾った名前がbody内の呼び出しformのcarに存在するか、ランタイムコストの無い自明な静的解析でconditionを挙げられるはず
特定の名前の解決を決め打つ言語は多いし、そういうポリシーもありだと思う
普通でないのはcondition(warning)を挙げないところ
決め打つ名前(locked package?)が分かってる限りは、flet/labelsのレキシカル束縛リストから拾った名前がbody内の呼び出しformのcarに存在するか、ランタイムコストの無い自明な静的解析でconditionを挙げられるはず
558デフォルトの名無しさん
2023/01/10(火) 03:18:54.37ID:/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でテストはしたけど、スマホから手打ちなので変だったらごめん
等価と思って良いよ
伝統的な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でテストはしたけど、スマホから手打ちなので変だったらごめん
559はちみつ餃子 ◆8X2XSCHEME
2023/01/10(火) 13:31:12.96ID:TxpPtfKm >>557
スクリプト言語 (処理系) 的な想定だと実行開始時にテキストの解釈から毎回やるので
静的解析もランタイムの一部みたいな感じになる。
この場合に限って言えばどちらにせよ名前のルックアップはやるのだからそのときにわかるだろうとは思うけど
静的解析を頑張らないという方針はあり得るんじゃないの。
スクリプト言語 (処理系) 的な想定だと実行開始時にテキストの解釈から毎回やるので
静的解析もランタイムの一部みたいな感じになる。
この場合に限って言えばどちらにせよ名前のルックアップはやるのだからそのときにわかるだろうとは思うけど
静的解析を頑張らないという方針はあり得るんじゃないの。
560はちみつ餃子 ◆8X2XSCHEME
2023/01/11(水) 00:38:29.47ID:s0T2WgwN Gauche で検出されないエラーで (let ((0 1)) 0) みたいなのがあって、
実際にはオプティマイザが消去してしまうんだそうな。
文法の解析で通したものをオプティマイザがエラーとして弾くのも変な話だし、
オプティマイザが走査することがわかっているものを前段階でもチェックするのは二度手間だし、
オプティマイザを密結合してしまうのも保守しづらいし……
という葛藤があるのはわかる。
まあそれぞれに事情があるので原理的に可能だからといってそうすべきだとも言えない気がする。
実際にはオプティマイザが消去してしまうんだそうな。
文法の解析で通したものをオプティマイザがエラーとして弾くのも変な話だし、
オプティマイザが走査することがわかっているものを前段階でもチェックするのは二度手間だし、
オプティマイザを密結合してしまうのも保守しづらいし……
という葛藤があるのはわかる。
まあそれぞれに事情があるので原理的に可能だからといってそうすべきだとも言えない気がする。
561デフォルトの名無しさん
2023/01/11(水) 00:49:38.31ID:LBEzL6fs 0はシンボルじゃないから、文法解析を通しちゃ駄目だろw
562デフォルトの名無しさん
2023/01/11(水) 01:29:07.80ID:/IOcm4EW そういう手では絶対書かないだろう変なコードも、マクロ書いてるとまれによく発生するから困る
563デフォルトの名無しさん
2023/01/11(水) 01:59:04.27ID:/IOcm4EW カウンタ変数を捕捉更新しようとして、うっかり評価してしまったケースとか
564デフォルトの名無しさん
2023/01/11(水) 02:21:26.04ID:z40MB/0w 多分(let ((i (+ i 1))) i)が化けたのかな
565デフォルトの名無しさん
2023/01/11(水) 02:34:55.34ID:LWIYKuEk letの時点でオプティマイザに通してんのかな
let系はlambdaまで落として((lambda(i) i) (+ i 1))とすれば間違えようがないと思うのだが
let系はlambdaまで落として((lambda(i) i) (+ i 1))とすれば間違えようがないと思うのだが
566デフォルトの名無しさん
2023/01/11(水) 02:44:32.93ID:/IOcm4EW エスパー大会か?
(let ((i (+ i 1)))
(another-macro i))
another-macroは副作用目的で自明にiに展開したか、乗法的な関数を呼んだ(iの初期値0*n=0)
(let ((i (+ i 1)))
(another-macro i))
another-macroは副作用目的で自明にiに展開したか、乗法的な関数を呼んだ(iの初期値0*n=0)
567デフォルトの名無しさん
2023/01/11(水) 03:33:43.09ID:4gRHy1NM >>565
gancheは知らんけど、さすがにletはプリミティブな事が多いかと
むしろ最適化で読み飛ばすならlambdaまで還元してしまってはダメで、LETをヒューリスティックに認識する必要がある
仮に評価順を示す為にバッククォートでわざとらしく書くと
`(let ((,index ,(1+ stride))) ,(* index stride))
; (LET ((0 1)) 0)
(に等価な)展開とかがありがちかな
特に例に意味は無かったってオチだったりして
gancheは知らんけど、さすがにletはプリミティブな事が多いかと
むしろ最適化で読み飛ばすならlambdaまで還元してしまってはダメで、LETをヒューリスティックに認識する必要がある
仮に評価順を示す為にバッククォートでわざとらしく書くと
`(let ((,index ,(1+ stride))) ,(* index stride))
; (LET ((0 1)) 0)
(に等価な)展開とかがありがちかな
特に例に意味は無かったってオチだったりして
568デフォルトの名無しさん
2023/01/11(水) 03:56:23.35ID:/IOcm4EW defmacro/macroexpand方式だと特にだけど、(let ((0 1)) 0)みたいな残骸から推論する技能はとても大事に思う
書く時もそうだけど、人が書いたモノの後始末なら前提知識が無いのでなおさら
これだけ想像を膨らませてくれる貴重な(let ((0 1)) 0)すら消し飛ばされるならもうお手上げ
なんて文句を言いつつ、schemeでもついslibのdefmacroに手が伸びてしまうのだが
書く時もそうだけど、人が書いたモノの後始末なら前提知識が無いのでなおさら
これだけ想像を膨らませてくれる貴重な(let ((0 1)) 0)すら消し飛ばされるならもうお手上げ
なんて文句を言いつつ、schemeでもついslibのdefmacroに手が伸びてしまうのだが
569デフォルトの名無しさん
2023/01/11(水) 06:03:42.65ID:/IOcm4EW >>565
論理的にどんなletが束縛リスト(とおそらくbodyも)を読み飛ばせるかについて補足
letフォームの評価値は最後のフォームの評価値(car (last 'let-form))のみで決まるけど、それが再束縛のできない自己評価オブジェクト(0, T/#t, :kw-symb etc)ならば、単にそれを返すだけで他を一切見る必要すら必要がない
(let dont-care/maybe-invalid self-evaluating)
→self-evaluating
もしそれ以上簡約してしまうと、(eq 'let (car 'let-form))と(car (last 'let-form))だけを見て決められない
論理的にどんなletが束縛リスト(とおそらくbodyも)を読み飛ばせるかについて補足
letフォームの評価値は最後のフォームの評価値(car (last 'let-form))のみで決まるけど、それが再束縛のできない自己評価オブジェクト(0, T/#t, :kw-symb etc)ならば、単にそれを返すだけで他を一切見る必要すら必要がない
(let dont-care/maybe-invalid self-evaluating)
→self-evaluating
もしそれ以上簡約してしまうと、(eq 'let (car 'let-form))と(car (last 'let-form))だけを見て決められない
570デフォルトの名無しさん
2023/01/11(水) 06:21:34.50ID:/IOcm4EW 一応値については正しいというだけで、もしbodyに(exit)や大域脱出が入ってても無視するのか?という問題はある
ill-formedな>>560すら無視するのだから、当然well-formedな(exit)も無視するのが自然だけど、実際のところはgaucheに訊いてください
ill-formedな>>560すら無視するのだから、当然well-formedな(exit)も無視するのが自然だけど、実際のところはgaucheに訊いてください
571はちみつ餃子 ◆8X2XSCHEME
2023/01/11(水) 17:03:18.22ID:s0T2WgwN572デフォルトの名無しさん
2023/01/11(水) 17:40:33.93ID:/IOcm4EW >>571
どうも、俺のも原理的には…という同じ意図の話だよ
eclやgaucheが有名実装では最もアグレッシブな感じなのかな?
(declaim (optimize (speed 0) debug safety)
が外せない俺には怖くて触れないよ
どうも、俺のも原理的には…という同じ意図の話だよ
eclやgaucheが有名実装では最もアグレッシブな感じなのかな?
(declaim (optimize (speed 0) debug safety)
が外せない俺には怖くて触れないよ
573デフォルトの名無しさん
2023/01/11(水) 18:02:49.87ID:/IOcm4EW なおeclのlocked package?の件、標準の宣言を全て付けても有効な模様…
574デフォルトの名無しさん
2023/01/11(水) 18:12:33.46ID:qLQaVlgq notinlineも効かないし独自機構だな
575はちみつ餃子 ◆8X2XSCHEME
2023/01/14(土) 01:01:49.57ID:9ctkhBjT >>572
> 有名実装では最もアグレッシブ
そんなことはないんじゃないかな。。
実行前の処理に時間をかけない (かけても総合的な性能向上にならない) という
判断でエラーチェックに消極的だけど最適化にも消極的だから。
> 有名実装では最もアグレッシブ
そんなことはないんじゃないかな。。
実行前の処理に時間をかけない (かけても総合的な性能向上にならない) という
判断でエラーチェックに消極的だけど最適化にも消極的だから。
576本田
2023/01/25(水) 23:58:21.43ID:PahnnjBC UCB Scheme
https://people.eecs.berkeley.edu/~bh/61a-pages/Scheme/
UCB Scheme is a modified version of STk 4.0.1 by Erick Gallesio.
https://people.eecs.berkeley.edu/~bh/61a-pages/Scheme/
UCB Scheme is a modified version of STk 4.0.1 by Erick Gallesio.
577デフォルトの名無しさん
2023/01/26(木) 19:06:40.12ID:lq03KzKz USB Schemeじゃないのか
どっちかって言えばUSB Schemeが欲しいのだが
どっちかって言えばUSB Schemeが欲しいのだが
578デフォルトの名無しさん
2023/01/28(土) 14:07:46.81ID:BDgiT21v579本田
2023/01/29(日) 22:24:48.67ID:XMFhzyDs580はちみつ餃子 ◆8X2XSCHEME
2023/01/30(月) 00:59:07.34ID:kRDQpz8S そのリンクがどうしたっていうんだ?
何か思うところがあるなら話題に挙げるのはかまわんが
ただリンクを置いて去るのはやめて欲しいな。
ニュース系のネタならお知らせの意味で貼ったのかなと思うところだが、
そういう感じでもないみたいだしな。
何か思うところがあるなら話題に挙げるのはかまわんが
ただリンクを置いて去るのはやめて欲しいな。
ニュース系のネタならお知らせの意味で貼ったのかなと思うところだが、
そういう感じでもないみたいだしな。
レスを投稿する
ニュース
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… [BFU★]
- 高市早苗首相。財務省の経済対策草案を「しょぼすぎる」と一刀両断し自らテコ入れ [バイト歴50年★]
- 立憲・野田代表が主張 台湾有事答弁で「質問者批判は筋違い」「答弁がおかしい」「高市総理迎合のネット世論は危険」★4 [♪♪♪★]
- 日中関係悪化で「日本からもうすぐパンダがいなくなる」 中国SNSでトレンド1位に★2 [♪♪♪★]
- 【旧統一教会】年度内に解散命令請求に結論 教団は最終主張書面を東京高裁に提出 [1ゲットロボ★]
- 【STARTO ENTERTAINMENT】timelesz、メンバーの不適切言動を謝罪「不用意かつモラルに反した発言であった」 全員の署名入りでコメント [Ailuropoda melanoleuca★]
- 【高市悲報】中国「国連安保理の許可なしに日本を攻撃可能だ」 [115996789]
- 【実況】白銀ノエルと博衣こよりのえちえちパワフルプロ野球
- ひろゆきが高市首相を批判「一部の支持者がスッキリしただけで、大多数の日本人にとっては損だよね」 [834922174]
- 【速報】高市早苗「答弁撤回はしない」経済制裁へ★2 [931948549]
- 【んな専🏡】ルーナイトたち~1週間お疲れ様なのらぁ~(・o・🍬)🏰
- 財布に何万も入れてる奴って馬鹿じゃね?
