X



Lisp Scheme Part40 [転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん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/
0632デフォルトの名無しさん2017/09/10(日) 03:26:45.50ID:kGuGeUHg
あとシグマの時代だったか、テレビで日本人のAI研究者が
マクロが使えるから人工知能に向いてる的なコメントしてた記憶が
0633デフォルトの名無しさん2017/09/10(日) 03:41:36.36ID:H+JqMwrJ
今のAI開発に言語の自己プログラミング能力なんて求められてないでしょ
0636デフォルトの名無しさん2017/09/17(日) 16:00:12.99ID:WEOAz6Eh
>>633
今のAIとLISPが生み出された時代のAIとは全く違うからねえ
今のAIは本質的にはパラメータの最適化だよ

ところが当時のAIは記号処理(数式処理…つまり数式のままの微分や不定積分とか…だって
70年代初頭頃まではAIのテーマだったんだから)が中心で、その記号処理がAIに求められた時代に
科学技術計算向けのFORTRANやALGOLあるいは事務計算向けのCOBOLといった本質的には数値計算しか
できない言語しかない時代に、ATOMの概念を持ち込んで更にリストの任意の入れ子のデータ構造によって
記号のプログラム上での直接的な表現とそれら多数の記号から成る複雑な構造(特に言語の構造として
Chomskyの主張した句構造)の処理をサクサクと書けるLISPは当時の人々の眼には画期的に映ったのは
容易に想像がつく

要するに「AI」という言葉の表す内容とその研究の推進に必要な技術がLISPが生まれた時代と今とでは全く違うと
いうだけの話
0637はちみつ餃子 ◆8X2XSCHEME 2017/09/17(日) 16:05:25.82ID:jnHDU3kL
AI って言葉が広すぎるってのもあるけど、
LISP ってのも初期と今じゃやっぱり違うやで。
0639デフォルトの名無しさん2017/09/18(月) 09:29:59.24ID:ftdwLT63
AIの意味自体はほとんど変わってないやろ。研究すすんでちょっと内容が豊かになって、訳のわからなさがふえて、短期目標がいろいろ設定されて、研究予算獲得やもの売るための宣伝文句としてのAIのイメージがかわってきただけ。
今も昔もLispでAIやるのは楽しい(と思ってる人がいる)というとこだけが変わらん。
0640デフォルトの名無しさん2017/09/18(月) 18:56:00.44ID:TQdkd7p/
>>マクロが使えるからAIに向いている
頭がおかしい?
別の文脈で言えば、マクロアセンブラが使えるからAIに向いているのか?。
その人間の勘違いさに気付くべき

>>636
数式処理は別にしても今なら記号処理はスクリプト言語で可能な話。それをAIとは言わないでしょ。
Siriなんて原理は人工無能ですよ。昔からあったでしょ。本気でAIと思っているなら勘違いもはなはだしい。

>>638
それはLISPとは関係ないから
0641デフォルトの名無しさん2017/09/18(月) 19:03:01.72ID:TQdkd7p/
海外でやっている人工知能の対話実験は、単に人工無能の二台並べて会話させているだけでしょ。
それのどこが先進的で時代先取りのAIなんですかね?

>>638のような話はニューラルネットといって昔からあったし今更な話題でしょ。
画像認識なら別にニューラルネット使わなくともあるでしょ。
グラフのフィッティング実演見せてこれがAIですという場面見るとシラけるのですよね。
そんなものは昔からフィッテングアルゴリズムあるし、AI違うでしょ。
0642デフォルトの名無しさん2017/09/18(月) 22:15:48.12ID:FKyHuAgC
人工知能って言いながら実体は
昔からあるアルゴリズムだったり
人工無能だったりするのはそうなんだが

たんにハードルあげて
こんなのくだらないって
こき下ろすのも簡単

既存のアルゴリズムでも
実際に少しでも精度を上げるのは
すごい大変だし大事なことだよ
0643はちみつ餃子 ◆8X2XSCHEME 2017/09/18(月) 23:51:55.61ID:XIi6lubs
>>642
なんかズレてる気がするな。
ある程度手法が確立してひとつの分野になったものをいまだに AI って読んでるのに違和感があるってのが >>641 の言ってることなんじゃないの?
ニューラルネットワークの界隈では大した成果なのかもしれないけど、 AI としてのインパクトに欠けるってのは両立する話で、
それをこき下ろしているといって批判するのはちょっと違うでしょ。
0644デフォルトの名無しさん2017/09/19(火) 04:56:21.91ID:ibgnMHfJ
>>640
> >>636
> 数式処理は別にしても今なら記号処理はスクリプト言語で可能な話。それをAIとは言わないでしょ。

だから今はどうかでなく、1970年代初頭辺りまでは数式処理、特に不定積分は人工知能研究のテーマと看做されてたんだよ。
更に言えば、1950年代はコンパイル技術の研究はAIにおける自動プログラミングというテーマだったんだよ。

当時はそういうテーマも人工知能研究の一環として研究されていたという歴史的事実が厳として存在しているということだ。
それら歴史的事実に対して、今はどうだからとか、Siriが人工知能でなく人工無能だからとかは全く関係ないし反論になっていない。
0645デフォルトの名無しさん2017/09/20(水) 00:16:09.10ID:6JOaC60s
mccarthyは 1959 年から programs with common sense っていってる。
おまえらこれの意味わかった上でAIがどうのこうのっていってるの?
歴史云々するならちゃんと原典も読めよ糞が
0647デフォルトの名無しさん2017/09/26(火) 05:00:29.06ID:/zEF5028
渋谷Lispとかの勉強会、以前は誰でも発表できたはずなのに
今は有名人以外はお断りになったの?
0649デフォルトの名無しさん2017/09/26(火) 16:22:53.75ID:w3seKs+r
Lisperなんてマニアックな奴が多いから
相当な知識がないと発表できないだろ
0650デフォルトの名無しさん2017/09/26(火) 18:31:26.23ID:89uFYcmE
聴衆のレベルが高いことがわかっている場所でアホなことは言いたくないだろうし、
そういうところで気後れしやすい素地はあるのかもしれんなぁ。
わかってる人には今更すぎることでも知りたい人はいると思んだが。

レベルが高すぎると思うんならそうでもない人向けの勉強会を開催してもいいんですよ。
0651デフォルトの名無しさん2017/09/26(火) 23:32:07.45ID:qx6kfgqA
>>647

ほんと何から何まで他人のせいにしてて2chの化身みたいな意見だな
誰一人おまえの邪魔なんかしてないから.おまえが勝手に障壁つくってるだけだから.
0652デフォルトの名無しさん2017/09/29(金) 22:04:35.58ID:7WUGaaf4
初歩的な質問いいっすか?

ドット(.)とかカンマ(,)を標準入力で文字列として受け取るにはどうすればいい?
readじゃ無理ですよね?
0654デフォルトの名無しさん2017/09/29(金) 22:31:22.67ID:7WUGaaf4
ボードゲームの盤面を表したような、空白で区切られた複数文字を受け取ることを想定してたんですが、read-lineで受け取ってsplitとかするのが無難ですかね
0656はちみつ餃子 ◆8X2XSCHEME 2017/09/30(土) 01:07:33.44ID:H54Xn+Px
セミコロンやカンマで区切られた文字の中に空白が入っていることもある形式って意味かな?
0657デフォルトの名無しさん2017/10/05(木) 20:50:00.34ID:AqPJkEp2
>>647
むしろshibuya.lispは事前審査も何もないし、入門してみた的な内容でも全然大丈夫だと思うぞ。LTでもいいし。
発表登録も単にconnpassのページのコメント欄で表明するだけだし。
0659デフォルトの名無しさん2017/10/21(土) 04:02:05.88ID:W+SO0xqJ
記号処理は文字列処理のうち
人工知能の分野に関係する処理
たとえば機械翻訳とか
0660デフォルトの名無しさん2017/10/21(土) 04:12:27.39ID:uavAERV8
コンパイラの字句解析、構文解析みない処理といことですかね。
Lispはそういうのが得意なんですか? まだ関数型言語の実装イメージがよくわかりません。
0661デフォルトの名無しさん2017/10/21(土) 05:24:19.82ID:W+SO0xqJ
そういうコンパイラなどの言語処理系も記号処理と言える
Lispは言語処理系の実装が得意
0662デフォルトの名無しさん2017/10/21(土) 10:32:12.07ID:034024q/
LISP言語の設計は人工知能とはまったく関係がない。
機械翻訳は翻訳であって人工知能ではないが、LISPの記号処理の使用例でもない。

コンパイラはコンパイラ技術であって記号処理ではない。Cで書かれた処理系は幾らでもある。
だからといってCが記号処理得意なんですか?違うでしょ?
LISPはコンパイラ処理が得意という訳ではない。LISP製コンパイラを見たことがない。
0663デフォルトの名無しさん2017/10/21(土) 10:41:25.43ID:034024q/
LISPだからといって何でもAIと結び付けて考えるのが間違い。

コンパイラはAIですか?->違います。LISPはAIツールですか->違います。

これははっきりしてる。だから90-2000年代になってLISP==AIという認識が間違いだよねという
コミュニティの認識があった。今再びAIと叫ばれ、LISPに対する誤解が再生産されている。
全てをAIと表現して記号処理もAIとしてしまうと、コンピュータサイエンスも何も無い。
AIというバズワードこそが詐欺的だということです。
0664デフォルトの名無しさん2017/10/21(土) 17:13:02.11ID:W+SO0xqJ
>>662
>LISP製コンパイラを見たことがない
それは知らないだけだろ
なんで開き直って確信してるのか

>>663
>コンパイラはAIですか?->違います
いやそれは現在の認識だろ
当時は言語処理系もAIだと認識されていた
0665デフォルトの名無しさん2017/10/21(土) 20:35:39.15ID:IeS87Wa8
Common Lispはネイティブコードへのコンパイルも仕様に入ってなかったっけ?
0666デフォルトの名無しさん2017/10/21(土) 23:25:46.70ID:Jvo46k7o
Lispで書かれたコンパイラ、、、そう言えば20年くらい前だったか Zeta C ってのがあったなぁ
0667デフォルトの名無しさん2017/10/22(日) 03:22:44.39ID:GA495a0M
>>662
あーでもない、こーでもないと、外堀埋め的説明じゃなくて、
LISPとは何なのか、記号処理とは何なのか、AIとは何なのか、結論だけ教えて。
0668はちみつ餃子 ◆8X2XSCHEME 2017/10/25(水) 04:34:02.39ID:krW9epRr
記号処理は記号を処理することだよ。
数値演算ではなく、たとえば数式みたいなものをいじってなんやかんや。
というのでなんとなくコンパイラ技術とも関係があるというのがわかると思う。

AI (人工知能) は人の知能を真似ようとするもの。
かつては (数値計算ではなく) 数式の変形をするのは機械には出来ない人間的なことだったから、
それをやるのは人工知能というカテゴリだった。

やり方がある程度確立した今では知能もクソもない、普通の数式処理じゃんって話になるから人工知能だとは思われない。
人工知能という言葉が指す具体的な技術の範囲は時代によって変わることになる。

LISP が直接的に得意としているのは名前が示す通りにリスト操作でしかないよ。
それが記号操作に便利だったし、記号操作はかつては人工知能の重要トピックだったって話。
0674デフォルトの名無しさん2017/11/01(水) 17:46:03.98ID:uc9oDMT0
あのさ、俺小学生なんだけど、HaskellとLispどっちが強いの?
おっさん、おばさん教えてよ。
0676デフォルトの名無しさん2017/11/02(木) 07:08:21.52ID:rKU0iffD
どっちも信者しか使う必要を感じない方向での強さしかない
だから信者対策にどっちも舐めとけ
0678デフォルトの名無しさん2017/11/02(木) 22:19:50.36ID:pq+UNRec
>>677
それはたんに「仕事で使わざるを得ないランキング」に見える
Lispは最初から仕事で使われないから対象外なだけ

それに23位にClojureがあるし普及したらもっと上がりそう
0682デフォルトの名無しさん2017/11/05(日) 10:01:55.64ID:TvjmwwI2
>>681
勉強用には最適だと思うけど実用性はかなり低いからね。
2020年のプログラミング教育必修化の教育に使ってほしいが可能性は0.0000000000000000000001%くらいか。
0683デフォルトの名無しさん2017/11/05(日) 10:33:24.70ID:mZtOvkfq
>>682
Lispは学習用言語に向いてるとは思う
実用できなくはないが大変

あとLisp教えられる教師なんか
ほとんどいないだろ
大学じゃないと無理
0684デフォルトの名無しさん2017/11/05(日) 14:04:20.88ID:+AqtjiW/
プログラミング言語の習得とは、
基本的なデータ構造とアルゴリズムが実装できるようになることだとすると、
この言語は向いてると言えるのか。
0686デフォルトの名無しさん2017/11/05(日) 16:24:34.21ID:HYT1C8n3
言語の習得のための言語ではなく、プログラミングを習得するための言語だよね
0688はちみつ餃子 ◆8X2XSCHEME 2017/11/05(日) 20:49:37.28ID:YJZSL4EI
汎用言語じゃね? 特別に何かに特化しているわけじゃないと思うが。
レイモンドは「悟り体験のため」って言ってるけど、
グレアムはそんなこと言わずに使えばいいじゃないのという立場で莫大な収入を得ているので、
使いたいように使えよ〜
0689デフォルトの名無しさん2017/11/05(日) 21:17:49.08ID:mZtOvkfq
>>687
ああそうか
LispからPythonに変えたんだろ
もう大学でも無理って時代になってきたかもな
0691デフォルトの名無しさん2017/11/05(日) 22:20:09.73ID:mZtOvkfq
>>690
「教わる人がいないから」
「教える意味がなくなったから」
って方が実態に近いかもな
0692デフォルトの名無しさん2017/11/05(日) 22:40:01.62ID:/ZsuHin0
主にC++な自分にとって、Lispはmodern C++が目指す最先端なんだけど、
Lispの人たちゃもうどっかに行っちゃってるのかね。
0693はちみつ餃子 ◆8X2XSCHEME 2017/11/05(日) 23:33:09.26ID:YJZSL4EI
>>691
要約すると「総合的に考えて Scheme は入門講義ではベストではなくなった」って話で、
MIT での教育・研究全てから LISP が排除されたって話ではない (大幅に縮小はしてるかもしれない) ので、
Scheme が手頃な場面では Scheme だって使うだろうし、
時代の変化とそれに合わせた適材適所っていう当たり前の話なんだよね。
0696はちみつ餃子 ◆8X2XSCHEME 2017/11/06(月) 13:11:38.24ID:MXn0CmOw
>>695
言語を変更するにあたってサスマン自身も主導者のひとりであるように書かれてる。
モチベーションがないならむしろそのまま続けるんじゃね?

だいたい LISP と言ってもフルセットの Common Lisp を隅々まで使おうってんじゃないんだ。
SICP で使ってるのは R4RS 時代の Scheme だぞ。
MIT の教員レベルならどうということのないものだろ。
0698はちみつ餃子 ◆8X2XSCHEME 2017/11/06(月) 13:49:14.12ID:MXn0CmOw
>>697
「今のエンジニアリングに求められるエンジニアを育てる」ということにモチベーションがあったから、
「それに合ってないカリキュラム (SICP) で指導する」というモチベーションが低下したんだよ。
0699デフォルトの名無しさん2017/11/06(月) 14:01:54.98ID:2nM3KO37
>>698
そうなのかw
今でもエンジン設計できるヤツとかエンジンの部品を開発できるやつは必要だな。
出来合いの部品買おうにも部品屋がいないと駄目だ。
0700はちみつ餃子 ◆8X2XSCHEME 2017/11/06(月) 14:15:36.85ID:MXn0CmOw
>>699
MIT で SICP を使ってた講義ってのはあくまでも入門講義であって、それだけで課程が終わるわけじゃないかんね。
そこんところ誤解なきよう。
0703デフォルトの名無しさん2017/11/06(月) 18:54:46.53ID:PQEgu7bY
アメリカの大学は1〜2年生の時に適正ない奴をふるい落とすんだよ
ジョエルがJavaスクールのなんたらで書いているように
0704デフォルトの名無しさん2017/11/06(月) 19:40:57.12ID:6qywALcU
MITは、入学は簡単、卒業は難しいと言うアメリカの大学の常識は当てはまらないな。
どっちも超難しい。
0706デフォルトの名無しさん2017/11/10(金) 02:30:51.15ID:9lQXjJJf
Common Lisp でscheme と同じ感じで...の使えるMatch マクロ使う方法ないですか?
0707はちみつ餃子 ◆8X2XSCHEME 2017/11/10(金) 14:08:25.40ID:4kUQXTj6
>>706
部分的に syntax-rules を再現したようなライブラリはこういうのがあるよ。
http://www.ccs.neu.edu/home/dorai/mbe/mbe-lsp.html
省略子は ... ではなく *** になってるのと、ハイジニック性は再現されてないことに注意。

マクロ展開器としてだけでなく、パターンマッチ関数を直接使うことも出来る。
0708デフォルトの名無しさん2017/11/13(月) 22:16:51.52ID:MQxQ6x/7
>>704
それは両方の敷居が高い方にスライドしてるだけとも言えるのでは
つまり反論になってない
0712デフォルトの名無しさん2017/11/22(水) 10:46:30.91ID:84Kq9uFn
cpsスタイルはクロージャの応用にすぎない。慣れれば難しくないし、jsのコールバック地獄の意味も分かってくる。
難しいのは各種継続オペレーターのセマンティクスと使いこなし。
0714デフォルトの名無しさん2017/11/23(木) 01:35:29.12ID:aXDeFg+2
SCM_VM_MAX_VALUES を適当な値に書き換えてからgaucheコンパイルすれば?
0715はちみつ餃子 ◆8X2XSCHEME 2017/11/23(木) 01:36:00.20ID:fj1LdTry
そんなことはないはずだが、少ない多値を扱うときに特別な最適化をしていたような気がする
0716デフォルトの名無しさん2017/11/23(木) 01:43:24.14ID:tnspblE+
(apply values (iota 25))でtoo many valuesとか出る

オセロとかチェスの座標(SQ_A1, SQ_B1, ... , SQ_G8, SQ_H8)に連続した数字を割り当てるにはどうすればいいでしょう?
0717はちみつ餃子 ◆8X2XSCHEME 2017/11/23(木) 01:55:46.48ID:fj1LdTry
へー、そんな制限があったのか。
まあそんな多値を使うのはアレであることには違いないのでしょうがないといえばしょうがない。
識別子に連続した数値を割り当てるにはマクロが必要だが Scheme 的には R6RS を仮定するか処理系の拡張を使う必要がある。
Gauche を使う前提でいいの?
0718デフォルトの名無しさん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)))
と同じぐらい簡単な他の表現をぜひ知りたいです
0719はちみつ餃子 ◆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)
0720デフォルトの名無しさん2017/12/03(日) 22:35:25.83ID:J5a1ywZ3
scheme勉強するならこのコード読んどけみたいなのあります?
せいぜい1000~2000行程度の綺麗に書かれてるコードを探してるんですが
0721デフォルトの名無しさん2017/12/04(月) 04:20:12.66ID:3bAg/uQX
3x3の0Xゲームの評価関数をこの言語なら簡単に書けると思いましたが無理でした。
0725デフォルトの名無しさん2017/12/06(水) 00:01:54.26ID:ApzgLH0V
今風AI記述向けDSLってできるよねきっと
内部でマクロ書く言語ならアドバンテージあるんじゃないか?
0726デフォルトの名無しさん2017/12/06(水) 17:51:15.42ID:H73XvtqG
>>725
マクロの有無(内部でマクロ書けるってのはC的なんじゃなくてLisp的なマクロって意味なのか?)がAIプログラミングと何の関係があるの?
0730デフォルトの名無しさん2017/12/08(金) 15:18:41.82ID:TkWaDQHt
>>727
LISPを知らない奴ほどLISPについて語りたがる、とどこかの先生が言っていたけど、
まさに君のことだな
0731デフォルトの名無しさん2017/12/09(土) 04:21:58.35ID:ziJNlv0p
>>730
キミがどーんとLISPにおけるAI記述を語ってもいいんだよ。

まぁ書いたことないから低レベルな煽りしかできないんだろうけど。
■ このスレッドは過去ログ倉庫に格納されています

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