Lisp Scheme Part40 [転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん2015/03/16(月) 13:45:52.92ID:EEYZoZ1i
Common Lisp、SchemeをはじめとするLisp族全般のスレです

■前スレ
Lisp Scheme Part39
http://peace.2ch.net/test/read.cgi/tech/1408017352/

■テンプレ
ttp://wiki.fdiary.net/lisp/

■関連スレ
【入門】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】プログラミング言語 Clojure #3【JVM】
http://peace.2ch.net/test/read.cgi/tech/1380333808/
【魔法】リリカル☆Lisp【言語】
http://peace.2ch.net/test/read.cgi/tech/1183396621/

670デフォルトの名無しさん2017/10/27(金) 09:32:17.60ID:AxdRsB1E
こマ?

671デフォルトの名無しさん2017/10/28(土) 12:46:05.09ID:cqczctm/
lispアイデンティティの最後の砦はs式と同図像性であろう。

672デフォルトの名無しさん2017/10/28(土) 18:41:28.67ID:GkEAGE6K
ライブラリがあるのと言語に組み込まれてるのは違うよな

673はちみつ餃子 ◆8X2XSCHEME 2017/10/28(土) 22:37:04.27ID:2YYmHGUQ
>>672
区別なく使える程度の抽象化能力が有ればどうでもよくなる。

674デフォルトの名無しさん2017/11/01(水) 17:46:03.98ID:uc9oDMT0
あのさ、俺小学生なんだけど、HaskellとLispどっちが強いの?
おっさん、おばさん教えてよ。

675デフォルトの名無しさん2017/11/01(水) 20:03:18.94ID:kGHIjG82

676デフォルトの名無しさん2017/11/02(木) 07:08:21.52ID:rKU0iffD
どっちも信者しか使う必要を感じない方向での強さしかない
だから信者対策にどっちも舐めとけ

677デフォルトの名無しさん2017/11/02(木) 21:38:00.34ID:4phqPjoT
おっしゃ、嫌いな言語ランキングに入ってないぜ!
https://s.news.mynavi.jp/news/2017/11/02/073/

678デフォルトの名無しさん2017/11/02(木) 22:19:50.36ID:pq+UNRec
>>677
それはたんに「仕事で使わざるを得ないランキング」に見える
Lispは最初から仕事で使われないから対象外なだけ

それに23位にClojureがあるし普及したらもっと上がりそう

679デフォルトの名無しさん2017/11/04(土) 23:07:45.20ID:9Iye7uTf
>>678
マジレスは断る!

680デフォルトの名無しさん2017/11/05(日) 02:28:52.37ID:mZtOvkfq
食わず嫌いランキングには確実に上位に入りそう

681デフォルトの名無しさん2017/11/05(日) 08:24:59.45ID:+AqtjiW/
入門サイトを読んでみたが必要性が分からない言語だな。

682デフォルトの名無しさん2017/11/05(日) 10:01:55.64ID:TvjmwwI2
>>681
勉強用には最適だと思うけど実用性はかなり低いからね。
2020年のプログラミング教育必修化の教育に使ってほしいが可能性は0.0000000000000000000001%くらいか。

683デフォルトの名無しさん2017/11/05(日) 10:33:24.70ID:mZtOvkfq
>>682
Lispは学習用言語に向いてるとは思う
実用できなくはないが大変

あとLisp教えられる教師なんか
ほとんどいないだろ
大学じゃないと無理

684デフォルトの名無しさん2017/11/05(日) 14:04:20.88ID:+AqtjiW/
プログラミング言語の習得とは、
基本的なデータ構造とアルゴリズムが実装できるようになることだとすると、
この言語は向いてると言えるのか。

685デフォルトの名無しさん2017/11/05(日) 14:55:05.26ID:btHL8vAt
理解することと実用することは違うんだわいな

686デフォルトの名無しさん2017/11/05(日) 16:24:34.21ID:HYT1C8n3
言語の習得のための言語ではなく、プログラミングを習得するための言語だよね

687デフォルトの名無しさん2017/11/05(日) 20:41:48.37ID:TvjmwwI2
>>683
MITでもScheme教えられる教師が居ないと言うのに

688はちみつ餃子 ◆8X2XSCHEME 2017/11/05(日) 20:49:37.28ID:YJZSL4EI
汎用言語じゃね? 特別に何かに特化しているわけじゃないと思うが。
レイモンドは「悟り体験のため」って言ってるけど、
グレアムはそんなこと言わずに使えばいいじゃないのという立場で莫大な収入を得ているので、
使いたいように使えよ〜

689デフォルトの名無しさん2017/11/05(日) 21:17:49.08ID:mZtOvkfq
>>687
ああそうか
LispからPythonに変えたんだろ
もう大学でも無理って時代になってきたかもな

690はちみつ餃子 ◆8X2XSCHEME 2017/11/05(日) 21:45:40.46ID:YJZSL4EI
教える人がいないからってわけじゃないよ。
Sussman 自身もまだ現役だし。
Sussman が語った内容の日本語訳がここにある。
https://cpplover.blogspot.jp/2016/05/mitsicp.html

691デフォルトの名無しさん2017/11/05(日) 22:20:09.73ID:mZtOvkfq
>>690
「教わる人がいないから」
「教える意味がなくなったから」
って方が実態に近いかもな

692デフォルトの名無しさん2017/11/05(日) 22:40:01.62ID:/ZsuHin0
主にC++な自分にとって、Lispはmodern C++が目指す最先端なんだけど、
Lispの人たちゃもうどっかに行っちゃってるのかね。

693はちみつ餃子 ◆8X2XSCHEME 2017/11/05(日) 23:33:09.26ID:YJZSL4EI
>>691
要約すると「総合的に考えて Scheme は入門講義ではベストではなくなった」って話で、
MIT での教育・研究全てから LISP が排除されたって話ではない (大幅に縮小はしてるかもしれない) ので、
Scheme が手頃な場面では Scheme だって使うだろうし、
時代の変化とそれに合わせた適材適所っていう当たり前の話なんだよね。

694デフォルトの名無しさん2017/11/06(月) 00:08:40.80ID:PhKwOpTs
ジョエル「なんてこった(略)」

695デフォルトの名無しさん2017/11/06(月) 10:15:26.67ID:2nM3KO37
>>690
70の爺さまだぞ
モチベーションなかろ

696はちみつ餃子 ◆8X2XSCHEME 2017/11/06(月) 13:11:38.24ID:MXn0CmOw
>>695
言語を変更するにあたってサスマン自身も主導者のひとりであるように書かれてる。
モチベーションがないならむしろそのまま続けるんじゃね?

だいたい LISP と言ってもフルセットの Common Lisp を隅々まで使おうってんじゃないんだ。
SICP で使ってるのは R4RS 時代の Scheme だぞ。
MIT の教員レベルならどうということのないものだろ。

697デフォルトの名無しさん2017/11/06(月) 13:29:54.84ID:2nM3KO37
>>696
>>690 の中で1997年の時点で教えるの嫌になったって書いてる。サスマン50歳でモチベ低下w

698はちみつ餃子 ◆8X2XSCHEME 2017/11/06(月) 13:49:14.12ID:MXn0CmOw
>>697
「今のエンジニアリングに求められるエンジニアを育てる」ということにモチベーションがあったから、
「それに合ってないカリキュラム (SICP) で指導する」というモチベーションが低下したんだよ。

699デフォルトの名無しさん2017/11/06(月) 14:01:54.98ID:2nM3KO37
>>698
そうなのかw
今でもエンジン設計できるヤツとかエンジンの部品を開発できるやつは必要だな。
出来合いの部品買おうにも部品屋がいないと駄目だ。

700はちみつ餃子 ◆8X2XSCHEME 2017/11/06(月) 14:15:36.85ID:MXn0CmOw
>>699
MIT で SICP を使ってた講義ってのはあくまでも入門講義であって、それだけで課程が終わるわけじゃないかんね。
そこんところ誤解なきよう。

701デフォルトの名無しさん2017/11/06(月) 14:21:32.49ID:2nM3KO37
>>700
その入門レベルで挫折したわけだが
決して翻訳のせいなどではない

702はちみつ餃子 ◆8X2XSCHEME 2017/11/06(月) 15:14:50.89ID:MXn0CmOw
>>701
入門って言っても MIT のレベルの入門だから仕方がない

703デフォルトの名無しさん2017/11/06(月) 18:54:46.53ID:PQEgu7bY
アメリカの大学は1〜2年生の時に適正ない奴をふるい落とすんだよ
ジョエルがJavaスクールのなんたらで書いているように

704デフォルトの名無しさん2017/11/06(月) 19:40:57.12ID:6qywALcU
MITは、入学は簡単、卒業は難しいと言うアメリカの大学の常識は当てはまらないな。
どっちも超難しい。

705デフォルトの名無しさん2017/11/07(火) 07:15:51.14ID:+eGEGKqx
あーいえばこーいう
のらりくらり

706デフォルトの名無しさん2017/11/10(金) 02:30:51.15ID:9lQXjJJf
Common Lisp でscheme と同じ感じで...の使えるMatch マクロ使う方法ないですか?

707はちみつ餃子 ◆8X2XSCHEME 2017/11/10(金) 14:08:25.40ID:4kUQXTj6
>>706
部分的に syntax-rules を再現したようなライブラリはこういうのがあるよ。
http://www.ccs.neu.edu/home/dorai/mbe/mbe-lsp.html
省略子は ... ではなく *** になってるのと、ハイジニック性は再現されてないことに注意。

マクロ展開器としてだけでなく、パターンマッチ関数を直接使うことも出来る。

708デフォルトの名無しさん2017/11/13(月) 22:16:51.52ID:MQxQ6x/7
>>704
それは両方の敷居が高い方にスライドしてるだけとも言えるのでは
つまり反論になってない

709デフォルトの名無しさん2017/11/15(水) 01:08:42.97ID:OceHAp3p
Lispworks 7.1出た

710はちみつ餃子 ◆8X2XSCHEME 2017/11/15(水) 14:48:42.39ID:3wZM93Yq
買った人いる?

711デフォルトの名無しさん2017/11/21(火) 20:22:08.45ID:hrQbCY+a
継続渡しスタイル難しい😭

712デフォルトの名無しさん2017/11/22(水) 10:46:30.91ID:84Kq9uFn
cpsスタイルはクロージャの応用にすぎない。慣れれば難しくないし、jsのコールバック地獄の意味も分かってくる。
難しいのは各種継続オペレーターのセマンティクスと使いこなし。

713デフォルトの名無しさん2017/11/23(木) 01:28:35.64ID:tnspblE+
gaucheって20個以上の多値扱えないの?

714デフォルトの名無しさん2017/11/23(木) 01:35:29.12ID:aXDeFg+2
SCM_VM_MAX_VALUES を適当な値に書き換えてからgaucheコンパイルすれば?

715はちみつ餃子 ◆8X2XSCHEME 2017/11/23(木) 01:36:00.20ID:fj1LdTry
そんなことはないはずだが、少ない多値を扱うときに特別な最適化をしていたような気がする

716デフォルトの名無しさん2017/11/23(木) 01:43:24.14ID:tnspblE+
(apply values (iota 25))でtoo many valuesとか出る

オセロとかチェスの座標(SQ_A1, SQ_B1, ... , SQ_G8, SQ_H8)に連続した数字を割り当てるにはどうすればいいでしょう?

717はちみつ餃子 ◆8X2XSCHEME 2017/11/23(木) 01:55:46.48ID:fj1LdTry
へー、そんな制限があったのか。
まあそんな多値を使うのはアレであることには違いないのでしょうがないといえばしょうがない。
識別子に連続した数値を割り当てるにはマクロが必要だが Scheme 的には R6RS を仮定するか処理系の拡張を使う必要がある。
Gauche を使う前提でいいの?

718デフォルトの名無しさん2017/11/23(木) 02:02:44.56ID:tnspblE+
racketとchickenではエラーが出ないのでgaucheやめるかも✋

でも
(define-values (SQ_A1 SQ_B1 ... SQ_G8 SQ_H8) (apply values (iota 64)))
と同じぐらい簡単な他の表現をぜひ知りたいです

719はちみつ餃子 ◆8X2XSCHEME 2017/11/23(木) 03:14:41.55ID:fj1LdTry
Gauche だとこういう風にすれば識別子の方の自動生成も含めて出来るけど、
なんかイマイチすっきりしないなー。
もっといい方法ありそうだと思うんだけど。

(use util.combinations)
(use gauche.sequence)

(define-macro (define-serial-numbers)
`(begin
,@(map-with-index
(^(i x) `(define ,(string->symbol (apply format #f "SQ_~a~a" x)) ,i))
(cartesian-product `((A B C D E F G H) ,(iota 8 1))))))

(define-serial-numbers)

720デフォルトの名無しさん2017/12/03(日) 22:35:25.83ID:J5a1ywZ3
scheme勉強するならこのコード読んどけみたいなのあります?
せいぜい1000~2000行程度の綺麗に書かれてるコードを探してるんですが

721デフォルトの名無しさん2017/12/04(月) 04:20:12.66ID:3bAg/uQX
3x3の0Xゲームの評価関数をこの言語なら簡単に書けると思いましたが無理でした。

722デフォルトの名無しさん2017/12/04(月) 12:45:54.31ID:2BKC4tD8
言語関係なくね

723デフォルトの名無しさん2017/12/04(月) 21:15:18.70ID:xA3K1zC6
Lispに簡単を求めても仕様がない

724デフォルトの名無しさん2017/12/05(火) 21:27:38.26ID:9/0mIcjW
言語のせいです。ぶっちゃけAI記述に向いてません。

725デフォルトの名無しさん2017/12/06(水) 00:01:54.26ID:ApzgLH0V
今風AI記述向けDSLってできるよねきっと
内部でマクロ書く言語ならアドバンテージあるんじゃないか?

726デフォルトの名無しさん2017/12/06(水) 17:51:15.42ID:H73XvtqG
>>725
マクロの有無(内部でマクロ書けるってのはC的なんじゃなくてLisp的なマクロって意味なのか?)がAIプログラミングと何の関係があるの?

727デフォルトの名無しさん2017/12/08(金) 03:52:55.47ID:B7XIwxA3
AI書いたことない人がLISPはAIに向いていると言ってるだけ。

728デフォルトの名無しさん2017/12/08(金) 12:23:36.73ID:0sL+nlBI
お前の言うAIはAIというよりディープラーニング限定だろ

729デフォルトの名無しさん2017/12/08(金) 15:08:29.63ID:Y0XUjRGM
いいえ人工無能です

730デフォルトの名無しさん2017/12/08(金) 15:18:41.82ID:TkWaDQHt
>>727
LISPを知らない奴ほどLISPについて語りたがる、とどこかの先生が言っていたけど、
まさに君のことだな

731デフォルトの名無しさん2017/12/09(土) 04:21:58.35ID:ziJNlv0p
>>730
キミがどーんとLISPにおけるAI記述を語ってもいいんだよ。

まぁ書いたことないから低レベルな煽りしかできないんだろうけど。

732デフォルトの名無しさん2017/12/09(土) 14:26:11.92ID:4MbXeuoC
80年台に腐るほど論文が書かれてるから勝手に探して読んでよ
集大成的なのは人工知能学会から出ている「人工知能ハンドブック」とか、まあ探せばいくらでもある
AI=ディープラーニング前提で話をしてんのかね

733デフォルトの名無しさん2017/12/09(土) 16:18:47.50ID:pGblBOWb
パズルを解かせるのも人工知能!!!

734デフォルトの名無しさん2017/12/09(土) 18:12:35.14ID:KFfYNPXO
>>732
1980年代の人工知能の研究成果で現在でも役に立ってるのあるのか?

735デフォルトの名無しさん2017/12/10(日) 02:54:54.81ID:BWtpHFrw
80年代といえばエキスパートシステム。壮大な詐欺だったな。

>>732 で? キミはその詐欺に加担した一人?

736デフォルトの名無しさん2017/12/10(日) 03:24:34.13ID:FZ4Yj2IT
何でこんな上から目線なの?

737デフォルトの名無しさん2017/12/10(日) 03:57:50.25ID:bmx+OvdS
80年代のAI理論が役立たずだからだろ。

738はちみつ餃子 ◆8X2XSCHEME 2017/12/10(日) 05:17:42.36ID:alL+GiY3
んなこたーない

739デフォルトの名無しさん2017/12/12(火) 04:12:35.32ID:0ontp/1M
中身はif分並べただけの実装だらけ。

740デフォルトの名無しさん2017/12/13(水) 19:52:34.13ID:yTQPqafe
>>725
LISPのマクロってたいしたことないよ。それがLISPの本質でもないし。
ただインタプリタでC風にマクロが書けるというだけで。

マクロはマクロなんで、LISP内部で置き換えするだけで本質的なコード処理はしてないし。
それ(マクロ)が記号処理の本質ではないし。
何ならCのマクロ使って記号処理しましたって公開してみ。笑われるだけだから。
LISPの世界はこの程度の話すら理解できてないから誤解されているといっている訳。

だいたい最近までOpenSourceでScheme処理系開発してた連中が居たけれども、
彼らがAIと言った事はただの一つもないよ(w

741デフォルトの名無しさん2017/12/13(水) 20:00:39.22ID:yTQPqafe
おいらも735に賛成。
エキスパートシステムは失敗と無駄そのもの。第五世代も。

現実には民間企業ではMSエクセルが経営支援機能を果たしている。
表計算がAIより機能を果たしている皮肉。

742デフォルトの名無しさん2017/12/13(水) 22:45:23.21ID:0KXAmUZF
いやマクロ使わなかったら
Lisp使う意味ほとんどないだろ

743デフォルトの名無しさん2017/12/13(水) 22:49:24.98ID:Iqcr0fg8
誰かコイツに構ってやれよ薄情だなおまえらw

744デフォルトの名無しさん2017/12/14(木) 01:05:25.22ID:dCJIi5Cz
インタプリタだとかCのプリプロセッサマクロだとか、イカレ過ぎててツッコミどころすらわからんw

745デフォルトの名無しさん2017/12/14(木) 03:33:21.97ID:fsO62Lbi
ディープラーニングを機械学習と言えば詐欺臭はでない。人工知能なんて言うから投資詐欺に使う奴が出てくる。
既存のTCP/IP使ったクライアントサーバシステムをクラウドなんて言い出すのと同じ。

746デフォルトの名無しさん2017/12/15(金) 04:45:54.58ID:KHNYpOof
みんなschemeで何作ってるの?
これからscheme始める人は何作るべき?

747デフォルトの名無しさん2017/12/15(金) 11:06:11.48ID:pWQR70OL
lispインタプリタ

748はちみつ餃子 ◆8X2XSCHEME 2017/12/15(金) 15:36:43.16ID:+BtaN/Vr
好きなもん作ればええがな

749デフォルトの名無しさん2017/12/16(土) 21:12:53.74ID:6we8nAFi
俺はホームページ自動作成

750デフォルトの名無しさん2017/12/16(土) 21:18:33.39ID:6we8nAFi
あとC++に組み込んで3Dモデルの作成しようと思ったがまだ上手く行ってない

しかし、おかげで継続が理解できてJSやC#のコルーチンが中でどう動いてるの、とか
本当に勉強になった
人に説明できるようになって仕事に役立ったよ

751デフォルトの名無しさん2017/12/16(土) 22:40:58.31ID:0h/cQnhY
LISPは計算コストの感覚が掴みにくいのが難点。

752はちみつ餃子 ◆8X2XSCHEME 2017/12/16(土) 22:59:36.86ID:x6Q70KZj
実測せよ!

753デフォルトの名無しさん2017/12/16(土) 23:02:30.22ID:z0aQUVNx
継続理解出来ない😭

754デフォルトの名無しさん2017/12/16(土) 23:04:09.78ID:6cm/hyEb
あれは理解するものじゃない
感じるんだ

755デフォルトの名無しさん2017/12/17(日) 00:33:44.93ID:0YixwDt0
CPUのコールスタックがわかってれば、スタックでなくヒープを使い捨てることにしたと思えば理解は容易いんじゃないか。
プログラミング言語の抽象度しか知らないならCPS変換から入るのが早道かも。

756はちみつ餃子 ◆8X2XSCHEME 2017/12/17(日) 01:22:25.09ID:vupC7usA
私も CPS で考えるのが早道だと思う。
CPS で考えた時に表出する環境の受渡しを普段の Scheme では暗黙にやってる感じ。

757デフォルトの名無しさん2017/12/17(日) 12:04:50.86ID:eoJ80v7u
俺はコールスタックからだったが
>CPS
こういう捉えかたもあるんだね
知らなかった、ありがとう!

758デフォルトの名無しさん2017/12/17(日) 13:44:07.44ID:qZUcJPEk
>>753
ナカーマ
誰かこのスレで解説してー

759デフォルトの名無しさん2017/12/17(日) 14:47:33.87ID:/lXwOr1A
関数の戻り値が渡る先を操作できるだけじゃん。

トップレベルの特異性には注意だけど。

760デフォルトの名無しさん2017/12/18(月) 06:11:49.84ID:RkLzSeZU
c++で継続はライブラリ使うだけで良いみたいだけど
C言語では継続はマシン語いじらないと実現出来ないの?

761デフォルトの名無しさん2017/12/18(月) 06:17:47.07ID:qvbmzFlP
ロングジャンプが継続

762デフォルトの名無しさん2017/12/18(月) 15:55:48.42ID:uwunIJyp
>>760
C++ではライブラリで継続が使えるってどういうこと?

763はちみつ餃子 ◆8X2XSCHEME 2017/12/18(月) 20:02:37.96ID:1AqL5NX7
>>760,762
このあたりの話かな。
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0534r3.pdf
今のところはまだ提案があるだけで標準に入ったわけではない。

継続を表現するライブラリっつっても、
そのライブラリの中身は何がしかアーキテクチャ依存になるだろうけどな。

764デフォルトの名無しさん2017/12/18(月) 21:02:09.62ID:Idgcm8jE
C++には、GCとか実装から切り離して、実行環境をカプセル化した
関数オブジェクトがあるから、そのことかも

765デフォルトの名無しさん2017/12/18(月) 21:06:41.77ID:Idgcm8jE
ええと、一応念のため説明させていただきますが、C++では関数は
オブジェクトではないのです……

766デフォルトの名無しさん2017/12/18(月) 23:12:15.36ID:7/ciCMNl
>>763
うおぉ、なにこれ!
情報ありがとう。

767デフォルトの名無しさん2017/12/20(水) 05:00:04.59ID:a6n0mn8s
Exaリーディングのすゝめ
https://www.slideshare.net/ShinichiMakino1/exa-84358376

👆これええな
schemeでも読んだら勉強になる、程よい大きさのコードないものか

768デフォルトの名無しさん2017/12/23(土) 21:49:26.76ID:YzWkPP/t
schemeについてのことではなくてelispについてなんですが、同じかもしれないと
おもってお尋ねします。コードを書いた実行をして、(コードを読み込んで)
そのあとその実行して読み込ませたものをclearして、(書いているコードはそのまま
なんですが、読み込んだという事実をclearしたい)それで別のコードを下に書いて
その下に書いたものだけを実行するという風にしたいのですが、そういうclearする
ことは可能でしょうか?どのようにするのでしょうか?

769デフォルトの名無しさん2017/12/23(土) 23:20:52.51ID:BI9Rd4SH
>>767
3imp

770デフォルトの名無しさん2017/12/23(土) 23:28:54.90ID:YzWkPP/t
768の質問を取り消します。後日に尋ねるかもしれませんがその時には
よろしくお願いします

■ このスレッドは過去ログ倉庫に格納されています