Lisp Scheme Part41

2018/07/15(日) 02:05:28.62ID:oGr67yTf
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/
2020/12/01(火) 23:12:43.95ID:Ul2ITO5q
スキーム手習いなんですけど
前の章までしっかり理解してから読み進めてくださいとのことですが
継続渡しから急に難しく感じます
そこまでが理解できてないってこと??
2020/12/02(水) 11:19:13.62ID:wCsCmSK2
>>254
私はその本を持っていないから具体的なことはわからんけど、
不慣れな初心者にとって継続渡しは実際に難しいと思う。
でも「難しい」だけで「理解できない」わけじゃないならたぶん前章まで一応の理解はできてるんじゃないかな。
2020/12/02(水) 12:39:58.54ID:2sTDa/BO
継続渡しスタイルに書き換える方法がわからないではなくて継続渡しスタイルに書き換える意味がわからないからかな?
2020/12/02(水) 13:45:58.76ID:wCsCmSK2
ああ。 なるほど。
継続渡し形式でプログラムを書くことは実際にまず無いし便利でもないので
その点では意味不明と感じられても仕方がないことではあるな。

後の話 (第一級継続) に繋がる前振りだと思うので、
この時点ではパズルとでも思ってとりあえずこなすしかないわ。
2020/12/02(水) 22:18:09.20ID:3rT4yRJc
>>256
そんな感じです
例で挙げられてる渡される側の関数が何したいのかよくわからないし
多分、教育的に意図的にそうしてるのかもしれないけど
その意図がいまいちわからなくてモヤモヤするんですよね

>>257
一応追っかけることは出来るんですが
直で継続教えてもらったほうがわかりやすいような気がするのですが…
つまり、読めてないってことなんだろうなと
259256
垢版 |
2020/12/02(水) 22:40:35.57ID:2sTDa/BO
俺はsicpでcall-cc出てきてもさっぱり理解できなかったけど、
onlispで継続の実装を読んでやっと理解できた。

継続でできることってのは超高性能goto(?)が使えるようになることなんだけど、
そのためには継続渡しスタイルで今までの状態(実際はクロージャだけど)の全部または一部を渡して計算をしていくんだよ。
渡されたクロージャのどれかを呼び出す事によって以前の状態に復帰できる。

みたいなことだったと思う。空覚えなんで誰か突っ込んでね。

それと本のわからんところのコードを貼れば誰か解説してくれんじゃない。
2020/12/02(水) 22:45:58.51ID:2sTDa/BO
超高性能gotoって書いてるのは普通の言語のgotoって同じ関数内でしかジャンプできないんだけど、
継続なら安全に関数間でもジャンプできるっていう意味。
2020/12/02(水) 22:48:34.44ID:2sTDa/BO
継続はわかってしまえば当たり前でどこにでも存在してるんだけど、
継続を考えたやつは本当頭いいわとおもった。
2020/12/02(水) 23:20:42.42ID:wCsCmSK2
>>258
「プログラミング言語 Scheme」や「プログラミング Gauche」でもそういう手順で説明されている。
ネット上で見つかる解説でもよくあるパターン。
http://www.shido.info/lisp/scheme_cc.html
http://www.nct9.ne.jp/m_hiroi/func/abcscm20.html

ようするに定番なんですわ……。
2020/12/03(木) 00:08:17.53ID:BSRv8eBD
なんでも継続
http://practical-scheme.net/docs/cont-j.html

はよ完成させて
264デフォルトの名無しさん
垢版 |
2020/12/03(木) 12:12:09.32ID:vc9+WZu6
Landin's J operator の糖衣みたいなもんじゃ?
call-ccって.
2020/12/03(木) 14:15:21.78ID:sf+VFKLQ
普段cl書きなんでこのまま動くか知らんが、雰囲気はたぶん
(define call/cc (lambda (func) (func (J (lambda x x)))
2020/12/03(木) 19:48:43.98ID:1MHSKMz8
>>258
継続渡しの初期の用例にヒューイットのアクター理論があるように
並行性が絡むと有り難いこともあるけど
Schemeの規格にそういうのがないから

Gaucheを使ったウェブアプリサーバーにKahuaってのがあったけど
あれが継続渡しを使ってたはず
267デフォルトの名無しさん
垢版 |
2020/12/04(金) 22:12:04.78ID:9AUT9QCq
エンジニアが教えるの下手くそな理由を論理的に解説してみた【教育の本質】
https://www.youtube.com/watch?v=3YwyYSj-k2s
派遣エージェントの言う事は9割ウソである理由【カモられない方法】
https://www.youtube.com/watch?v=8DxQFLAuFqo&;t=231s
IT業界のヤバすぎる落とし穴5選
https://www.youtube.com/watch?v=WPPCJ4o-mpA
絶対にエンジニアになってはいけない人とは【ハイクラス人材】
https://www.youtube.com/watch?v=kKUC7rZRUtc
りゅうけんKENTAマナブは怪しいアフィ勢だとベテランエンジニア(笑)に言われるらしいwww
https://www.youtube.com/watch?v=Cp7ByHiFk6Y
【個人で稼ぐ】会社を辞める前に習得しておくべきスキル5選
https://www.youtube.com/watch?v=8WB4O1V6YLg
【聞いてください】「会社員」という働き方の本当のヤバさ
https://www.youtube.com/watch?v=HbIAACbQkPc
サラリーマンが知らないフリーランスの真実
https://www.youtube.com/watch?v=vxVG8eAQbsc
2020/12/07(月) 13:18:23.95ID:kze+rPTU
結局call/ccは実装読んだ方が早い
2020/12/08(火) 00:25:26.96ID:g/rTchWW
そういう発想はschemeっぽくないと思う
これはコンピュータにかける魔法言語なんだからぁ
2020/12/08(火) 10:24:39.14ID:7buWiz9t
schemeは知らんがclでcall/ccエミュってるぞ、こういうのは勉強になる
閲覧無料の論文もたくさん出てくるし、確かrosetta code(だったか)に少し残念だけど動く実装載ってた気がする
デフォでdynamic scopeのclの方が(エミュる)のはむしろ簡単な気がする
2020/12/10(木) 03:16:14.79ID:FVBY7yTa
clデフォでdynamic scopeじゃないな
どういうcps実装なん
2020/12/10(木) 19:52:56.52ID:m5YUCflP
dr.schemeを起動したらada lavelaceが表示された。12月10日が誕生日らしい。
2020/12/18(金) 00:23:57.39ID:xE2tdWzM
3月にサスマンの新しい本が出ますね
2020/12/18(金) 00:35:54.39ID:wHl77nxB
Software Design for Flexibility
How to Avoid Programming Yourself into a Corner
https://mitpress.mit.edu/books/software-design-flexibility
2021/01/02(土) 01:05:03.40ID:wp0Bo1A/
>>6
この冬、職場から休暇をいただいたことをきっかけに a little schemer への再チャレンジを始めました
2週間では >>6 までは進めなかったけれども、しつこくてべたな精読を今後も継続することにしました‥‥個人的な話でごめんなさい
2021/01/02(土) 09:30:41.51ID:DXffwUjS
頑張れ
2021/01/02(土) 12:55:01.66ID:rf+zWHQf
2018 年の話題へスレ内でアンカーできるあたり、だいぶん進みの遅いスレだなぁ……

ところで先月、 Gauche の 0.9.10 がリリースされたよ。
2021/01/11(月) 12:28:40.23ID:evx8yw3j
最近Clojureをさわって思ったんだけど、コンスって必要?ただのリストじゃだめなん?
2021/01/11(月) 22:00:08.80ID:TgqHKx3G
最近はlistと言いつつ狭義のlist(linked)じゃなくlinked arrayな事が多いけどclosureもそれかな?(触ってないごめん
(三十年前の言語だけど)Pythonのコード読んだけどそうだったはず
計算量の議論なんかだとlinked listとarrayは一長一短ってことになってるが、アーキテクチャと殆どのデータの性質によって連結配列が実質万能なんで仕方ないね
抽象データ型としてcons/car/cdrというインターフェイスを提供してるなら十分lispだよ

consがなんでそんな大事なのかというと、普通に使われる抽象データ型の中では最も表現力が高いこと
単に自由に伸ばせるリストのようなモノでは、構文上バイナリツリーより複雑な構造は書きにくい(ポインタを駆使しない限り)
consが提供されていれば自然に平面DAGが、そしてちょっと読みにくくなる程度で任意のグラフが表現できる

化学構造やグラフをconsで扱ってるけどほんと便利だよ
2021/01/11(月) 23:51:15.24ID:TgqHKx3G
書きにくい/やすい、ってのは環や分岐がcarとcdrとconsだけで書けるって意味ね
これらのアクセサが提供されていない言語、例えはPythonやcではリストのインデックスに対応する参照/ポインタを明示的に取り出して記録し、アドレスを格納する必要がある
またアルゴリズムにかける時に素の型とポインタ型を区別して場合分けする必要まである
そのまま文字列として吐くのも実装しなくていいし(リンク先のインデックス表示が読みやすいとは言わないが)

PythonなんかだとオブジェクトがリッチなのでnetworkXのような巨大なライブラリを使えば木を超えた表現も自然にかけるので、一時浮気をしたが…


形式言語の分野だともう線形な文字列や二分木の括弧文法は研究され尽くしてるので、グラフ文法なんかが最近流行ってlisp系言語で論文書かれてるね
2021/01/12(火) 00:03:51.23ID:XqNkUArk
連投してごめんだけど、環や分岐がポインタ使わず自在に描けるのはかしこいsetfの寄与もある、って書き忘れてた(schemeはset-cdr!だっけ)
念のため
2021/01/13(水) 22:45:17.14ID:c60O+Iz7
>>279
興味深い内容をありがとう
ちょこちょこ遊んでいるだけなので到底そこまで使いこなせる気がしないけど、
データをプログラム中にストレートに表現して操作できるというのはよく分かる

他の言語だとデータを保持するためにわざわざクラス設計からしないと
いけないような強迫観念にかられるけど、lispはそういう気にならない
2021/01/14(木) 12:13:04.15ID:/NlgSZrU
データ型を定義しないのはトイプログラムだけだけどな
Lispはリストだけ使うのが通だとか善意で広めないでくれよ
2021/01/14(木) 22:43:13.17ID:9qLPLWCT
(カッチリした型を中心にする言語に比べれば) 最初はラフに
書き始められるというのはあると思うよ。

でも、そのままだと千行くらいの規模でももうだいぶんキツいんじゃないかな。
人によってはコードを書く腕力 (?) というか強引に行けちゃう人もいるけど、
雑に試行錯誤できるということとそこから部品として確立するのは別の段階なので、
試行錯誤で弄ってるときと同じノリでどんどん拡大していったら
すぐわけわからんようになる。

世間で思われているよりは型定義はすると私も思う。
2021/01/15(金) 01:43:39.29ID:Hai3vgIl
そういう後付けのボイラープーレトにはCLOSやジェネリックよりコンパイラマクロが便利ね
2021/01/15(金) 21:24:11.84ID:6113KkR6
ここでいう型定義はdeftypeのことを指しているのでしょうか
2021/01/16(土) 09:43:26.51ID:uH9KWN6j
Common Lisp でなら deftype とか defclass とかいったものを使うことになるんかな。
私は Scheme しか知らんからよくわからんけど。
2021/01/17(日) 08:06:30.53ID:MtDeBO+C
>>285
嘘でしょ
人口無能が生成した文かこれ
2021/01/17(日) 11:47:31.37ID:9ajuvsmH
>>288
defgeneric/methodは勢いで書き上げた触りたくないコードに機能追加するにはコード触らなくちゃならない
型の付いていない複雑なconsはどうせdestructuring-bindして振り分けるしかないんだから分けてdefmethodする利点もない
define-compiler-macroなら一切既存のコードに触れる必要は無いからすごく便利だよ
既存のライブラリに手を入れたいけど、直接書き換えるとアップグレードで無かった事にされるから嫌、って時にも活躍する

もちろんリファクタリング出来るならした方がいいけど、取り敢えず動けば良い時の話ね
2021/01/17(日) 12:14:47.80ID:fZnccXPg
この場合、 alist はどっち側に分類されるのかな…
個人的にはだいたい alist で済ませてるけど。
2021/01/17(日) 12:16:55.56ID:ERThMJgw
Lisp 的なスタイルだとかなり短いサイクルで開発が進むので、
リファクタリングしないまま手の付けられないほどグダグダになった状態は単にサイクルを
回すのが下手なように思うんだけど。

まあ上手くいってないときでもどうにかする方法があるのはありがたい話ではあるけどさ。
2021/01/17(日) 12:22:48.91ID:16Ro+9sx
既存のコードには手を入れず振る舞いだけに着目して付け足して行くってスタイルはaspect oriented programmingとか言うんだっけな
まあ盲で付け足してゆく事と同義ではないが
2021/01/17(日) 12:36:52.37ID:16Ro+9sx
>>290
plistの方が好きだな、pprintでkey-valのカラムに並べられるし、alistが要求されれば一段flattenすれば済む
consの数も同じだし好みでは

ただvalがlistだと(a . (b c))=(a b c)とformatされてしまうので(a . ((b c))) = (a . (b c))と書いてる
aとリストのペアなので意味的にも正しいはず
294289
垢版 |
2021/01/17(日) 12:38:34.26ID:16Ro+9sx
最後は(a (b c))が正しい、.が余計だった

なんかid変わってたけど289です
295289
垢版 |
2021/01/17(日) 12:54:42.47ID:16Ro+9sx
真意を掴めてなかった感がある
alist-pとplist-pを定義してる、よく見るし受け入れられてるイディオムだと思う
deftypeしておくといい
すると振り分けをdefmethodに任せる事が出来る
2021/01/17(日) 22:27:16.25ID:MtDeBO+C
deftypeしたtypeはclassじゃないからdefmethodできない
コンパイラマクロはプログラムの意味をかえたらいかんし
パッチするなら別定義のファイルを追加でloadすれば上書きされるのでコンパイラマクロする意味0
嘘ノウハウいらないです・・・
2021/01/17(日) 23:38:13.35ID:4VqziDiv
>>296
そうだっけ、ごめん確認してきます
2021/01/20(水) 01:48:17.88ID:9Gv1v6nA
alist vs plist はalistの方がassocが(lisp的な意味で)簡潔になるから?で一票
assoc[x;y] = eq[caar[y];x] → cadar[y];T → assoc[x;cdr[y]]]
M式、[x→y; ...はapplyによってS式(QUOTE (COND (x y ) …に展開される

http://www-formal.stanford.edu/jmc/recursive.html
pdf17p

evalのボトムケースでもある大事なassoc、俺にはplist版は思いつかない
evenpが欲しいところだけど算術の定義がまだだし…

clのcx^nrがn=4までなのもcaddarまで使ってるからだろうかね
2021/01/20(水) 01:59:40.44ID:9Gv1v6nA
ffとかappqとか見慣れない面白関数出てきて面白かった
first/restは単なるエイリアスでなくL-exp(線形リスプ?)における相似物としてちゃんと別に定義されてるとかも

あとpairがpairlisに改称した理由とか気になってる、次は1.5マニュアル読むか
小並感
2021/01/22(金) 02:54:51.68ID:GlnM3g/q
consesのカッコのネストを無視して初めのシンボルを返すffは、左端の簡約だけで導出が決まる特性を持つコンビネータ計算(SKなど)にとても重宝する関数だよ
applyを.と見なせば(論理学記法で)SKx = ((S K) x)はcons((S . K) . x)と等価
.
/ \
. x
/ \
S K
(ff ((S . K) . x)) ; => S

ffでSを得て、そこへのaccessor は(dfs 'S '((S . K) . x))で4行程度で実装出来る、carで潜る時にはpush 'car、cdrならpush 'car、その枝で見つからなかったときにはpopでSへのアクセサ(car car)が得られて、そのノードを公式に従ってsetf '公式すれば導出完了

lispと言えばラムダってイメージあるとおもうけど、むしろコンビータと相性が良い、特にclのラムダは細かなコントロールを求めた代償として明示的なapply/funcallが必要だからなあ
あとdotprintとか定義しとくと便利ね
2021/01/22(金) 08:32:42.17ID:hEWi2BMh
jmcはラムダ教徒だったろうになあ
いくらlispが形式言語処理向けとはいえ、機械的に処理するには置換が面倒過ぎる
2021/01/26(火) 22:54:00.78ID:+x6NTk+g
>>299
app(ly)-q(uote)?直訳するとこんな感じか

(defun appq (m)
(cond (null m) nil)
(t (cons (list 'quote (car m)))))
(appq (cdr m))
>(appq '(a b c d e))
; ('a 'b 'c 'd 'e)

(jmcの)applyは関数fをコレにconsしてS式 (#'f 'a 'b 'c ...)を得ると
common lispではformの先頭は関数名かラムダじゃないとダメなのでevalには'funcallか'applyを追加でconsする必要があるので、組み込みevalを使う限りは循環定義だな
2021/01/26(火) 23:06:50.96ID:+x6NTk+g
誤解してた
M式apply[f; args]の引数はシンボルなのでS式のapplyに渡ってくるのはfunction fじゃなくてシンボルfか
グローバルでdefunしたfなら多分呼べるはず、試してないけど
2021/01/28(木) 03:52:37.47ID:52TUUvk8
cons-car-cdr公理主義者への反発として最近妙に感心してしまったポエムを貼っとく
https://arxiv.org/pdf/1507.05956
本当の基本関数はc、a、d、rでした

paulのon lispに載ってる(explode 'bomb) → (B O M B)がハマりそうと思い、実装してみたは良いけどなんに使うんだコレ…
楽しいからいいか
2021/02/06(土) 00:01:36.05ID:7zAE1WPt
cxrとconsは表裏一体なので片手落ち
r•c = idになるからこそ
car•cdr = c•a•r•c•d•r = ca•(r•c)•dr = cadr
と読める訳であって

cxr • cons= id を成り立たせるにはcxons = id となるようなo, n, sも定義せねばならない

後はまかせた
2021/02/12(金) 22:14:51.72ID:rBgVuMm7
わたばさんのところ見て知ったけど
井田昌之先生のHPで
bit 1996-4、5月号、Guy L. Steele Jr.『Scheme 過去◇現在◇未来』(訳 井田昌之)
などの歴史資料PDFが読めるね
2021/02/15(月) 14:15:58.52ID:GNSRFiac
Racket のメジャーリリース。
https://blog.racket-lang.org/2021/02/racket-v8-0.html

ついに Chez Scheme の実行エンジンを組み込んだものがデフォになった。
2021/02/16(火) 17:43:38.86ID:05vP8Ot3
普通のやつらを超えろおじさんのarcヲチするのにちょっとracketしてるけどフレンドリーかつ尖ってるね
どんどん尖ってゆけ
2021/02/16(火) 18:27:11.46ID:6gVrqubW
グラハムさんは今はBel言語では
2021/02/16(火) 19:02:11.29ID:05vP8Ot3
>>309
現在の俺がもしjmcだったら?とか言い出したので見限った
今ざっと目を通しても目新しいところ、興奮するところが全然ないんだなこれが
https://sep.yimg.com/ty/cdn/paulgraham/bellanguage.txt
ofは便利くらいの感想しか出ない
あと整数nをnth nへオバロは、逆なんじゃないかな?
push n へオバロならforthライクに発展できるのに
おじさんは自分に求められてるのは変態テクニックやインスピレーションだと自覚しろ
2021/02/16(火) 19:13:16.29ID:RZ7vFu0i
>>309
グレアムの方が近いはずだが
2021/02/16(火) 21:26:58.99ID:6gVrqubW
>>310
言語が自分自身を書くことが出来る、ということをよりうまくやれれば
ってことでしょ
lisp1.5マニュアルを彼なりにアップデートしたいんだよ
2021/02/17(水) 03:29:33.90ID:PFWUQJwx
関数やマウロの実体もリストというのはだいぶん振り切れていると思うがおまえらには目新しくはないのか>bel
2021/02/17(水) 03:49:42.83ID:KZUgEKHz
>>313
むしろ昔ながら/手抜きlispがそんなもんでは
lit(eral)はマッカーシーのappqだし、elispは対話モードならちゃんとcarでlambdaが取れる
2021/02/17(水) 04:32:37.72ID:KZUgEKHz
後は語り尽くされたlisp1/2の分化の話になるのでその辺はググって
2021/02/17(水) 04:57:15.21ID:KZUgEKHz
補足
elの挙動は完全にバグいので忘れた方がいい、一方で関数実体はリストのサブタイプではないとヒューリスティックに判定されるのでそもそもill-defined
2021/02/17(水) 18:52:29.11ID:zk5Pyjxw
アラン・ケイもそれを自分でやってみようとすることが重要だと言ってる
原始関数が変われば何もかもが変わるわけだから
変わった世界が良いのか悪いのか、は自己言及がどれだけよく出来てるかどうか
ということだと思うんだけど
つまり、僕らが使いやすいと感じるかどうかではなく
未来にそれに慣れた人たちがより効率の良い開発が出来るかどうか

で、グレアムは自分なりにBelは良く出来てると思ってるんだろう
オレにはよくわからんがw
2021/02/18(木) 00:14:56.95ID:k6/K1ymI
グレアムが現役プログラマだった時代なら実務に全振りしただろうが、今は投資する側の立場だからね。
投資に技術的な知見を活かしてはいるんだろうけど、道楽が出来るんだろう。
2021/02/18(木) 01:58:35.80ID:lD1LwcuS
レディットで実装した人いるね
確かに使われてみなければ分からん事もたくさんあるので使ってみたい、まあ、そのうちね…

原典からlit=appqを引用(復古)するのなら、read&eval結果を示すのでなく、各々の挙動についてイメージできるように書いてほしい
とりわけlitは、302のレスにあるdefunをdefmacroに置き換えた定義(その場合(lit a b c)と記述できる)であっても、
より強力なreader macroによる、定義(e.g.quote)でも実装できるのだから、なおさら
2021/02/18(木) 02:07:31.14ID:lD1LwcuS
でもグラハムは尊敬してるよ、著書もエッセイ以外紙版で全部持ってるし、啓蒙家としての実績を差し引いてもトップクラスのハッカーであるのは間違いない
2021/02/18(木) 03:15:27.49ID:sRdwF113
>>319
言葉足らずでした
clは基本的にapplyへマクロを渡せないから、or/andに対応したsome/everyが提供されてるわけだけど、展開効率を無視すればread時に関数へすり替えるワークアラウンドで実現できる
そこが売りなんだからもうちょっと仔細を、と
2021/02/18(木) 06:11:12.33ID:FG25zgsT
ゲイツ、ジョブズと同い年なんだよな
2021/02/19(金) 11:35:19.85ID:VprFkjBX
・知能は高い
・こまかい技術用語をちりばめてくるので詳しそうと思わせる
・言語仕様と歴史的経緯と個人研究の区別をつける意識がない
・検証するとトータルとしては話が嘘

こまったもんだ
2021/02/23(火) 02:25:08.36ID:VIkkm8/q
関数がリストで表せるからatomじゃないってのは気持ち悪いな
別にどんな言語であろうと関数定義はトークンの並び≒リストで書けるわで
論理学では関数や述語はそのシンボルと引数のリストとして書かれるにも関わらずatomと定義される、あんまり明るくないんでなんでそうするのかは知らんが
2021/02/23(火) 03:38:31.96ID:aA0AvmX/
ELisp だと、一部の関数は本当にリストとして保持されてたりするんだよね。
ラムダ式そのままの形で。
だから car や setcar とかで中身にアクセスできちゃったり。
2021/02/23(火) 04:39:24.64ID:VIkkm8/q
elのfunctionはid関数っていうね…知りたくなかった
関数定義をいじくりたいならformとして持ち回って、invokeする時にfunction噛ますのがベストプラクティスと思うよ、わりとよく見る
2021/02/23(火) 04:45:23.10ID:VIkkm8/q
あ、後半はちゃんと関数を理論と整合するatomとして扱うlisp(clとか)への言及です
2021/03/14(日) 21:42:37.21ID:ykHNi/i1
linuxでdr.schemeがちゃんと表示してくれなくて追加パッケージも入れられない
(表示が崩れてまともにサブウインドウが開いてくれない)
どころか終了すらまともに出来ないので、、、
探したらgeiser(Emacs拡張?)というのがあって
それ入れたらEmacsからracket使えるようになった(≧∇≦)/
追加バックはコマンドラインから入れられた
これで充実した春休みが送れそうだぞ
2021/03/15(月) 17:40:08.88ID:mTFo5Bvn
Happy Hacking!

maclispのpitman/moonual読んでるけどシンボル操作系ユティリティが充実してて楽しい、ちまちまclへ移植
そんなのもうたくさん誰かやってるだろって?絶対にググらないぞ
2021/03/15(月) 17:56:03.28ID:iXam+Zcq
誰かがここに検索結果を貼る可能性を考えなかったのが敗因でした
2021/03/17(水) 18:41:37.66ID:e+VOZDZq
gosh> '()
()

racket> '()
'()

(。・_・。)…?
2021/03/17(水) 19:32:10.48ID:sFqg8ROj
>>331
Racket でも (write '()) としたら quote は付かない。
repl が quote を付けてる。
空リストの外部表現は () が正しい。
2021/03/17(水) 21:49:16.02ID:e+VOZDZq
racket> '()
'()racket> '()

になる……
2021/03/17(水) 21:49:52.85ID:e+VOZDZq
訂正

racket> '()
()racket>

になる……
2021/03/17(水) 22:26:44.32ID:e+VOZDZq
すんません、再度訂正

racket>(write '())
()racket>

になります
2021/03/18(木) 00:10:13.29ID:3weRgygV
replに代わってrpeplを提唱したい
意外とreadは仕事をしている
clだけどread-from-stringにはいつもお世話になる
2021/03/18(木) 01:34:59.90ID:4J+m36hV
>>333-335
モンキーパンツかよ。
2021/03/18(木) 21:03:14.59ID:jgE2sGe4
連投してスレ汚しすんませんでした

こんなのあるんだね
https://en.scratch-wiki.info/wiki/Snap!_(programming_language)#First_Class_Continuations
Snap!: Scheme Disguised as Scratch
https://youtu.be/wtUMvx9mvm4
339デフォルトの名無しさん
垢版 |
2021/03/19(金) 14:16:23.58ID:6iPIiOby
Lispへの憧憬
https://xtech.nikkei.com/it/article/COLUMN/20090324/327085/

Lispに対する偏見、エリートコンプレックスを赤裸々に吐露していて参考になった
すこし弄れるからといってエリート意識持っていたりするのも同じ事なんだよね
そこに本質的な差は無いし、能力的な差も殆どない
2021/03/19(金) 19:07:28.92ID:VzIhkYvX
>>339
なんかカッコいい感じは分かるけど、なんでそうなのかは分からん
Fortranはすげー科学者がみんな使ってて技術的にも常に(今も、Fortran2020を見よ)最先端だけど、別にFortranはカッコよくないと思うし
どういう心理なんだろ
2021/03/19(金) 19:12:24.45ID:VzIhkYvX
思うに、使ってる層のエリート度で考えるとFortranと変わらん
思うに、単純にコードの見た目がalien technologyっぽいかだろ
by an alien
2021/03/19(金) 19:13:41.78ID:VzIhkYvX
大事なことなので2回思ってしまった…
見た目は大事ってことじゃね
2021/03/19(金) 19:21:49.87ID:VzIhkYvX
ところで記事に挙がってるJava、cl/scm、(モダン)Fortranの全てにガッツリ関わってるSteele先生すげーな
2021/03/19(金) 20:26:43.21ID:6zFezuIX
十年前の記事だけど状況はだいぶん変化したのでLispへの憧憬などというものがもう成り立ってない・・
十年前に書き込んでくれ・・
2021/03/19(金) 21:04:26.12ID:RMQx/osX
なあにlispの本質は60年前から変わってないさ

lispに直接関わる事じゃないんだけど、ちょっとよろしいかしら
ISLISPなるものの規格を読むのにjisc.go.jpに登録しなくちゃならないんだけど、pcからもスマホからも"障害が発生しました"と怒られて進めないんだけど、俺だけ?
ちなみに一月前にも試して同じだった
フリーな規格なのでhtml版読めるとこもあるけど、一応pdfもと
2021/03/19(金) 21:11:14.03ID:RMQx/osX
一部の日本人が布教に熱心で検索にかかりまくるから胡散臭くて敬遠してたんだが、少なくとも初期はcl委員が関わってるし由緒はあるんだよな
無難なlispだが、大体スーパーセットなclにアクティブですごい処理系沢山ある限り絶対流行らんが

あんまり布教頑張るとネガキャンに見えるぞ…
2021/03/20(土) 01:03:24.86ID:iR2BedGg
>>338
vimだと階層に合わせて背景塗り分けるプラグインとかあるね

Peirce(パースの法則の人)も初めはlogical graphと言う円で囲む二次元言語を考えてたんだが、今言及されるときはテキスト表現で()になってる(そして読みやすい)
歴史はめぐるってか

ちなみにlispと見た目が似てるからってパーサを書いたが、やはり親和性が高い
面白いのでオススメ
2021/03/20(土) 01:11:33.86ID:iR2BedGg
コードエディタじゃなくて残念なんだけど、愛用してるOneNoteのテキストのドラッグが()ごとドラッグしてくれるのに気づいた
まあいつものMSのお節介なんですけどね
本来の用途である物書きでは選択範囲を自由に決めさせてくれないイライラ要素
2021/03/20(土) 01:12:20.50ID:iR2BedGg
(特に日本語!)
2021/03/20(土) 01:20:25.61ID:O2z0YRFR
規格っつーのは多少の粗があっても皆で統一したほうが便利だというもんなんで、
ユーザー規模がないものは規格化が活きてこない。
ISLISPでコードが書いてあってもオレオレLISPで書いてあるのと大差ないんだよ。
共通の知識になってないから。

ISLISP の仕様自体が悪いわけではないし劣っているわけでもないと思うんだけど、
最初に広められなかったらこれから広まるってことはもう無いんだろうな。
それはそれでいいんじゃね。 細々とやっていくのが好きな人もいるんだろ。
2021/03/20(土) 01:39:51.02ID:SzdWYV/s
30年事足りるほど十分カバーしてるclってすごいよな(実働は1980年初頭だからもっと?)
まあマルチスレッドあたりの仕様がバラバラなので、そこをしっかり決めてくれるMACLISP風規格があれば、俺はポッと出でも支持するんだが
2021/03/20(土) 02:00:29.14ID:O2z0YRFR
>>351
Scheme で言う SRFI に相当するものとして Common Lisp にも CDR (Common Lisp Document Repository) があるんだが、
Common Lisp は Scheme よりも実務主義というか話し合いするよりも動くライブラリを置いときゃいいだろみたいな文化があって
共通仕様の策定に熱心ではないような気がするな。
2021/03/20(土) 02:13:36.08ID:SzdWYV/s
>>352
今誰が主導してるかと訊かれて、答えに詰まるのは特異な状況だとは思う
商用(持ってないけど)ですら保守的にみえる
ぬるま湯に浸かるのを良しとしないISLISPの人を讃えたい

フリーでまともな処理系待ってるから出来たら起こしてくれよな!(讃えるだけ)
2021/03/20(土) 02:19:30.20ID:SzdWYV/s
こんな感じの人現れないかな
https://i.imgur.com/h6qXF7E.jpg
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況