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
2018/07/15(日) 03:57:54.29ID:mQtsqebE
乙
3デフォルトの名無しさん
2018/07/15(日) 04:45:43.53ID:+G2qeWeL (Lisp 笑)
2018/07/17(火) 22:34:02.03ID:6cKB2nCo
>>1乙
5はちみつ餃子 ◆8X2XSCHEME
2018/07/29(日) 18:08:39.36ID:bQEgGaK2 Racket の 7.0 が出た。
コアを chez に置き換える方向で進んでるんだね。
コアを chez に置き換える方向で進んでるんだね。
a little schemer/「scheme 手習い」 https://www.amazon.co.jp/dp/4274068269/
を読んでいます(ずいぶんと時間がかかっています)が、次のプログラムがさっぱり理解できなくて困っています
第5章「*すごい* 星がいっぱいだ」
この章の最初の方までは困難を伴いながらも、なんとか理解できました、この章でのこんな感じのコードを、仕様をみて独力で書きおこすことはできています https://ideone.com/fPHC2z
ところが、p.92 から
>Q: eqlist? はなんですか。
>A: 2つのリストが等しいかどうかを決める関数です。…@
>Q: eqlist? は、その引数についていくつ質問をしますか。
>A: 9つです。…A
>Q: なぜ 9 つの質問があるか説明できますか。
>A: 自分の言葉で説明すると次のようになります。
>「各引数は次のいずれかです。・空リスト・アトムがリストに cons されたもの・リストが別のリストに cons されたもの
>たとえば、最初の引数が空になるのと同時に、2番目の引数は、空リストか、car の位置に1つのアトムまたはリストを持っています。…B
>Q: eqan? を使って eqlist? を書きましょう
>A: https://ideone.com/vjYCZ5
この解答例がさっぱりです、実はAからよくわかっていません
コードのコメントは私がつけたのですが、最後の方は混乱してしまって…何がわからないかわからない状況です。
何か理解するための手がかり足がかりヒントはないでしょうか?
を読んでいます(ずいぶんと時間がかかっています)が、次のプログラムがさっぱり理解できなくて困っています
第5章「*すごい* 星がいっぱいだ」
この章の最初の方までは困難を伴いながらも、なんとか理解できました、この章でのこんな感じのコードを、仕様をみて独力で書きおこすことはできています https://ideone.com/fPHC2z
ところが、p.92 から
>Q: eqlist? はなんですか。
>A: 2つのリストが等しいかどうかを決める関数です。…@
>Q: eqlist? は、その引数についていくつ質問をしますか。
>A: 9つです。…A
>Q: なぜ 9 つの質問があるか説明できますか。
>A: 自分の言葉で説明すると次のようになります。
>「各引数は次のいずれかです。・空リスト・アトムがリストに cons されたもの・リストが別のリストに cons されたもの
>たとえば、最初の引数が空になるのと同時に、2番目の引数は、空リストか、car の位置に1つのアトムまたはリストを持っています。…B
>Q: eqan? を使って eqlist? を書きましょう
>A: https://ideone.com/vjYCZ5
この解答例がさっぱりです、実はAからよくわかっていません
コードのコメントは私がつけたのですが、最後の方は混乱してしまって…何がわからないかわからない状況です。
何か理解するための手がかり足がかりヒントはないでしょうか?
7SCHEME餃子 ◆8X2XSCHEME
2018/09/08(土) 01:10:14.26ID:VmsJpbI+ >>6
私はその本を持ってないのでそのあたりの問題を取り上げたブログ記事を見ながら説明しようかと思ったが、
その Q&A の通りとしか言いようがないんで、何がわからないのかよくわからない。 困ったな。
リストの先頭を見た時にあり得るパターンが 3 通りで、
l1 が 3 通りと l2 が 3 通りなら組合せは 9 通り。
9 通りのパターンは 3 種類に分類できて、
・ l1 と l2 の先頭が空リストなら真
・ l1 と l2 の先頭が一致すれば次の要素に対して再帰的に同じ処理をする
・ l1 と l2 の先頭が一致しないなら偽
となる。
実際のコードにするにあたって、空リストに car, cdr 手続きは適用できないんで、チェックの順番を気にするくらいかな。
私はその本を持ってないのでそのあたりの問題を取り上げたブログ記事を見ながら説明しようかと思ったが、
その Q&A の通りとしか言いようがないんで、何がわからないのかよくわからない。 困ったな。
リストの先頭を見た時にあり得るパターンが 3 通りで、
l1 が 3 通りと l2 が 3 通りなら組合せは 9 通り。
9 通りのパターンは 3 種類に分類できて、
・ l1 と l2 の先頭が空リストなら真
・ l1 と l2 の先頭が一致すれば次の要素に対して再帰的に同じ処理をする
・ l1 と l2 の先頭が一致しないなら偽
となる。
実際のコードにするにあたって、空リストに car, cdr 手続きは適用できないんで、チェックの順番を気にするくらいかな。
2018/09/08(土) 05:07:37.63ID:GHaullf6
引数が2つあり、それぞれは3通りの場合があるわけだから
引数の組み合わせとしては3×3=9通りの場合がある。
※引数はリスト(空リストを含む)と仮定していいようだ。
愚直にこの9通りの場合分けを展開するとこの表↓のようになるので、それをそのままコードにしたのがその解答例。
A B 等しい?
() () #t
() (アトム . リスト) #f
() (リスト . リスト) #f
(アトム . リスト) () #f
(アトム . リスト) (アトム . リスト) (and アトム同士が等しい リスト同士が等しい)
(アトム . リスト) (リスト . リスト) #f
(リスト . リスト) () #f
(リスト . リスト) (アトム . リスト) #f
(リスト . リスト) (リスト . リスト) (and carのリスト同士が等しい cdrのリスト同士が等しい)
引数の組み合わせとしては3×3=9通りの場合がある。
※引数はリスト(空リストを含む)と仮定していいようだ。
愚直にこの9通りの場合分けを展開するとこの表↓のようになるので、それをそのままコードにしたのがその解答例。
A B 等しい?
() () #t
() (アトム . リスト) #f
() (リスト . リスト) #f
(アトム . リスト) () #f
(アトム . リスト) (アトム . リスト) (and アトム同士が等しい リスト同士が等しい)
(アトム . リスト) (リスト . リスト) #f
(リスト . リスト) () #f
(リスト . リスト) (アトム . リスト) #f
(リスト . リスト) (リスト . リスト) (and carのリスト同士が等しい cdrのリスト同士が等しい)
2018/10/07(日) 02:51:53.80ID:n2yn9/Ec
他のソフトウェアに組み込むスクリプト環境でTinySchemeを使おうかと思っているんですが
スクリプトの中からファイルIO関係の機能は使えないようにしたいです。
この場合、走らせるスクリプトの前に、open-input-file等のIO関係の関数を無害な関数で再定義する部分をくっつけてしまえばOKでしょうか?
スクリプトの中からファイルIO関係の機能は使えないようにしたいです。
この場合、走らせるスクリプトの前に、open-input-file等のIO関係の関数を無害な関数で再定義する部分をくっつけてしまえばOKでしょうか?
10SCHEME餃子 ◆8X2XSCHEME
2018/10/07(日) 14:31:36.10ID:77445U4A >>9
なんらかの方法で元の定義にアクセスできたら脆弱性になっちゃうから、
要らないなら削除する方が確実だと思う。
どのくらい確実にするかってのは程度問題だけど
削除する分にはそんなに手間でもないし。
なんらかの方法で元の定義にアクセスできたら脆弱性になっちゃうから、
要らないなら削除する方が確実だと思う。
どのくらい確実にするかってのは程度問題だけど
削除する分にはそんなに手間でもないし。
2018/10/07(日) 16:22:54.47ID:n2yn9/Ec
2018/10/08(月) 11:15:35.46ID:s+P1p206
>>12
ありがとうございます、やってみます!
ありがとうございます、やってみます!
2018/10/09(火) 08:07:54.35ID:dwdUWAaf
依存型についてのテキストが出てるよ。
Daniel P. Friedman, David Thrane Christiansen "The Little Typer"
Boro Sitnikovski "Gentle Introduction to Dependent Types with Idris"
Edwin Brady "Type-Driven Development with Idris"
Adam Chlipala "Certified Programming with Dependent Types"
Aaron Stump "Verified Functional Programming in Agda"
Idris と Pie言語 ではλ関数とπ関数が同じように導入されているので相互に勉強できるのがいい。
Daniel P. Friedman, David Thrane Christiansen "The Little Typer"
Boro Sitnikovski "Gentle Introduction to Dependent Types with Idris"
Edwin Brady "Type-Driven Development with Idris"
Adam Chlipala "Certified Programming with Dependent Types"
Aaron Stump "Verified Functional Programming in Agda"
Idris と Pie言語 ではλ関数とπ関数が同じように導入されているので相互に勉強できるのがいい。
2018/10/09(火) 15:29:09.16ID:dwdUWAaf
π算法
Robin Milner "Communicating and Mobile Systems: The Pi Calculus"
Davide Sangiorgi, David Walker "The Pi-Calculus: A Theory of Mobile Processes"
Matthew Hennessy "A Distributed Pi-Calculus"
π算法はもともとCCSの拡張としてRobin Milnerらによって考案された、並行計算(π算法はλ算法の並行版)を表すモデルであり、プロセス計算の一種。
Robin Milner "Communicating and Mobile Systems: The Pi Calculus"
Davide Sangiorgi, David Walker "The Pi-Calculus: A Theory of Mobile Processes"
Matthew Hennessy "A Distributed Pi-Calculus"
π算法はもともとCCSの拡張としてRobin Milnerらによって考案された、並行計算(π算法はλ算法の並行版)を表すモデルであり、プロセス計算の一種。
2018/10/11(木) 04:45:55.72ID:kRD0TmZA
A Little Taste of Types - Code Mesh 2017 - David Christiansen
https://www.youtube.com/watch?v=3z9nISI4ppw
A Little Taste of Dependent Types 2018 - David Christiansen
https://www.youtube.com/watch?v=1BWYy2-WM-o
https://www.youtube.com/watch?v=3z9nISI4ppw
A Little Taste of Dependent Types 2018 - David Christiansen
https://www.youtube.com/watch?v=1BWYy2-WM-o
2018/10/16(火) 23:34:54.71ID:D0vhWqBd
Gaucheのリファレンスマニュアル日本語版pdfはないのでしょうか?
18SCHEME餃子 ◆8X2XSCHEME
2018/10/17(水) 01:03:06.73ID:BPtTatWV >>17
Gauche のソースツリーの doc ディレクトリで make pdf コマンドを実行すれば、
pdf 形式のドキュメントのビルドプロセスが走ることになってるよ。
ただ、 TeX を使うみたいなんで、 TeX を導入するのが面倒ってことはあるかも。
公式からは PDF 形式の日本語マニュアルは出してないっぽいね。
Gauche のソースツリーの doc ディレクトリで make pdf コマンドを実行すれば、
pdf 形式のドキュメントのビルドプロセスが走ることになってるよ。
ただ、 TeX を使うみたいなんで、 TeX を導入するのが面倒ってことはあるかも。
公式からは PDF 形式の日本語マニュアルは出してないっぽいね。
1917
2018/10/17(水) 21:27:28.91ID:MYn8m29E ありがとうございます。挑戦してみます。
2018/11/19(月) 21:32:10.84ID:Ebw/7CYM
はちみつ餃子しかいないスレになってしまった
2018/11/19(月) 22:07:56.77ID:FLKvqXWs
よく見ろ別人だぞ。
まさか同一人物なわけがあるまい。
まさか同一人物なわけがあるまい。
22はちみつ餃子 ◆8X2XSCHEME
2018/11/19(月) 22:58:27.29ID:EqyITMeu 話題がなさすぎるので近頃は C++ スレばかりにいるんだけど、
なんか面白い話題があればどんどん書いてよ。
なんか面白い話題があればどんどん書いてよ。
2018/11/20(火) 01:03:10.36ID:Bz9DRyU5
そんなとこにいたら頭がガベージまみれになるぞ
2018/11/22(木) 08:37:23.04ID:idUjP7lK
東方算法騎士団ってどうやって入るの
2018/11/22(木) 11:14:07.32ID:PNeid+Qy
Jupyter with Schemeってどう?
2018/11/25(日) 11:38:51.25ID:yUG3gEBB
Try Jupyter で試してみ
27はちみつ餃子 ◆8X2XSCHEME
2018/12/21(金) 18:19:35.67ID:2lFdE5qB2019/01/08(火) 17:40:17.47ID:n4V6aMpj
WindowsでMinGWがインストールされておらずMSVCだけある状態で
C言語のhelloworldプログラムでgauche.hをインクルードすると
gauche.h内の#include <sys/time.h>の部分でエラーになります。
C言語からGaucheを利用する場合はMinGWがインストールされていることが前提という解釈であっているでしょうか?
C言語のhelloworldプログラムでgauche.hをインクルードすると
gauche.h内の#include <sys/time.h>の部分でエラーになります。
C言語からGaucheを利用する場合はMinGWがインストールされていることが前提という解釈であっているでしょうか?
29はちみつ餃子 ◆8X2XSCHEME
2019/01/08(火) 21:15:36.70ID:YHlgtmk9 >>28
はい。
Gauche をビルドするためには MinGW というか (MinGW を含めた開発環境であるところの) MSYS2 を要求しています。
https://github.com/shirok/Gauche/blob/master/doc/HOWTO-mingw.adoc
少し古いバージョンは (MSYS2 ではなく) MSYS を要求していました。
gauche.h もその開発環境に依存しているので、 gauche.h を include した C のコードは MSVC ではコンパイルを通りません。
つまり、 Gauche の拡張モジュールや Gauche を呼び出すプログラムを C で書こうとするなら、
Windows では MSYS2 を使う方法しか想定されていません。
ただ、過去に「VC++用ポート」を試みた記事が WiLiKi に残っていますし、
ある程度は動いていたようですので、手間を書ければ全く不可能なことというわけでもなさそうです。
https://practical-scheme.net/wiliki/wiliki.cgi?Gauche%3AWindows%2FVC%2B%2B
Gauche の実態は単なる DLL ですから、Gauche 自体を MSVC でコンパイルするのは難しくても
Gauche を呼び出すプログラムを MSVC で作る分には頑張ればなんとかなる可能性は充分にあるように思います。
はい。
Gauche をビルドするためには MinGW というか (MinGW を含めた開発環境であるところの) MSYS2 を要求しています。
https://github.com/shirok/Gauche/blob/master/doc/HOWTO-mingw.adoc
少し古いバージョンは (MSYS2 ではなく) MSYS を要求していました。
gauche.h もその開発環境に依存しているので、 gauche.h を include した C のコードは MSVC ではコンパイルを通りません。
つまり、 Gauche の拡張モジュールや Gauche を呼び出すプログラムを C で書こうとするなら、
Windows では MSYS2 を使う方法しか想定されていません。
ただ、過去に「VC++用ポート」を試みた記事が WiLiKi に残っていますし、
ある程度は動いていたようですので、手間を書ければ全く不可能なことというわけでもなさそうです。
https://practical-scheme.net/wiliki/wiliki.cgi?Gauche%3AWindows%2FVC%2B%2B
Gauche の実態は単なる DLL ですから、Gauche 自体を MSVC でコンパイルするのは難しくても
Gauche を呼び出すプログラムを MSVC で作る分には頑張ればなんとかなる可能性は充分にあるように思います。
30はちみつ餃子 ◆8X2XSCHEME
2019/02/01(金) 16:27:31.29ID:jPYNOX7L Racket のコアを chez のに置き換える話が以前に出てたけど、
もうほとんどできたみたいね。
次のリリースあたりからはそれになるのかな。
もうほとんどできたみたいね。
次のリリースあたりからはそれになるのかな。
31はちみつ餃子 ◆8X2XSCHEME
2019/02/05(火) 04:44:00.67ID:VmiK9YL/ R7RS-Large の Tangerine Edition は議論・投票への参加者が少なすぎてちょっとアレな状況みたいね。
積極的に参加してあげて!
積極的に参加してあげて!
32はちみつ餃子 ◆8X2XSCHEME
2019/02/08(金) 19:33:54.35ID:U10rELvE 界隈でなんだかちょっとだけ ISLISP の人気が出てきてるというか
ここ最近になっていくつか新しい実装が発表されてるんだけど、
使ってみた人いる?
ここ最近になっていくつか新しい実装が発表されてるんだけど、
使ってみた人いる?
2019/02/10(日) 03:09:59.76ID:ZBYYirVg
>>32
新しい実装ってどれのことよ?
新しい実装ってどれのことよ?
2019/02/11(月) 02:00:38.22ID:eS7AzULV
2019/02/11(月) 03:37:14.19ID:JleTlNG9
日本製ばっかりなんだ
2019/02/11(月) 23:47:14.75ID:sKwQy+pT
そりゃ日本人が中心になって考えた規格だし
37はちみつ餃子 ◆8X2XSCHEME
2019/02/12(火) 01:54:55.89ID:jYEPbswv へー。 そうなのかと思って経緯を調べてみたりしてたんだが、
その過程で ISLISP の IS は International Standard の略だと見つけた。
id.nii.ac.jp/1001/00003362/
仕様にも書いてないから知らんかった。
もっと古い時代に STANDARD LISP という名前の Lisp があったそうで、
http://www.softwarepreservation.org/projects/LISP/stanford/Hearn-StandardLisp-AIM-90.pdf
それ故に標準化にあたって単に Standard とは名乗れず、
Common Lisp が Common Lisp という名前になったのもこのあたりの事情があるらしい。
単に名前を付けるだけでも変な苦心をしてるんだな。
その過程で ISLISP の IS は International Standard の略だと見つけた。
id.nii.ac.jp/1001/00003362/
仕様にも書いてないから知らんかった。
もっと古い時代に STANDARD LISP という名前の Lisp があったそうで、
http://www.softwarepreservation.org/projects/LISP/stanford/Hearn-StandardLisp-AIM-90.pdf
それ故に標準化にあたって単に Standard とは名乗れず、
Common Lisp が Common Lisp という名前になったのもこのあたりの事情があるらしい。
単に名前を付けるだけでも変な苦心をしてるんだな。
2019/02/12(火) 02:23:54.71ID:xM7yD0R2
イスラミックステートLISP
処女とヤリまくれるらしいぞ!
処女とヤリまくれるらしいぞ!
39はちみつ餃子 ◆8X2XSCHEME
2019/02/13(水) 00:07:17.42ID:VqRfiaP440はちみつ餃子 ◆8X2XSCHEME
2019/02/13(水) 00:10:08.40ID:VqRfiaP42019/02/14(木) 21:27:33.66ID:jKX9xayO
金払わないと正式な仕様書読めないのか、と諦めた記憶がある>ISLISP
ドラフト?は読めたけど
ドラフト?は読めたけど
2019/02/19(火) 03:58:50.76ID:seNTvLzD
餃子はISLISPerなの?
44デフォルトの名無しさん
2019/02/19(火) 09:00:07.28ID:4kP+wC3u45はちみつ餃子 ◆8X2XSCHEME
2019/02/20(水) 00:03:33.61ID:C98K3aY72019/02/20(水) 02:34:03.07ID:hNG331p8
>>45
ISLispってJIS規格になったんでしたっけ?
ISLispってJIS規格になったんでしたっけ?
2019/02/21(木) 00:45:26.47ID:vZ2CpAoq
>>47
お返事、ありがとうございます
そうですかISLispはJIS化されてたんですね
でも日本で使われてるんですかね?
Lispで日本で使われてるのはやっぱりCommon Lispだと思うんですけど(それと教育とかだとScheme(含Racket)が少しあるかな)
お返事、ありがとうございます
そうですかISLispはJIS化されてたんですね
でも日本で使われてるんですかね?
Lispで日本で使われてるのはやっぱりCommon Lispだと思うんですけど(それと教育とかだとScheme(含Racket)が少しあるかな)
49はちみつ餃子 ◆8X2XSCHEME
2019/02/21(木) 01:05:58.63ID:9MRHAYbl ISLISP のことはなんも知らんけど、
急に ISLISP 処理系が立て続けに出てきたみたいやから
なんか動きがあったんか? と思って >>32 を書いたんで、
私も質問者の立場なんやわ。
大した理由はないのであっても、
始まったならこのまま発展していくといいね。
急に ISLISP 処理系が立て続けに出てきたみたいやから
なんか動きがあったんか? と思って >>32 を書いたんで、
私も質問者の立場なんやわ。
大した理由はないのであっても、
始まったならこのまま発展していくといいね。
2019/02/22(金) 06:25:30.84ID:6MhIDIeu
ISLispのプログラミングテキストや解説書って笹川賢一って人が書いたKindle用の電子的なのが2タイトルあるだけで
それ以外は海外でも何も出てないんですかね、Amazon USでタイトルを“ISLisp”で検索しても、その2タイトル以外は
ISOの規格票しか出てきませんね
とにもかくにも国際規格になったんだから、規格案をプッシュした連中がプログラミングの教科書や言語解説書や入門書ぐらいは
書いて出版するぐらいのことはやるべきなんじゃないかと思うんですが、見事なほどに何も出ていないようで驚きました
それ以外は海外でも何も出てないんですかね、Amazon USでタイトルを“ISLisp”で検索しても、その2タイトル以外は
ISOの規格票しか出てきませんね
とにもかくにも国際規格になったんだから、規格案をプッシュした連中がプログラミングの教科書や言語解説書や入門書ぐらいは
書いて出版するぐらいのことはやるべきなんじゃないかと思うんですが、見事なほどに何も出ていないようで驚きました
2019/02/22(金) 12:52:25.98ID:+Ub0CFOo
common lispとどれくらい違うん?
52はちみつ餃子 ◆8X2XSCHEME
2019/02/22(金) 17:25:28.63ID:PAJj2OJU >>51
Common Lisp の規模が大きくなってまとまらなかった中で
別の提案を整理して100 ページもないような規模の ISLISP を確立したという事情があるので、
完全なサブセットではないけど言語の考え方としては近い部分が多くて
かなり小さいサブセット「的」なものという感じ。
つっても、やっぱり別言語ではあるので、それを「どれくらい」とは一言では表せないな。
個人的には、あくまで私の感想としては Lua と JavaScript くらいの距離はあるかなぁ……と思ってる。
Common Lisp の規模が大きくなってまとまらなかった中で
別の提案を整理して100 ページもないような規模の ISLISP を確立したという事情があるので、
完全なサブセットではないけど言語の考え方としては近い部分が多くて
かなり小さいサブセット「的」なものという感じ。
つっても、やっぱり別言語ではあるので、それを「どれくらい」とは一言では表せないな。
個人的には、あくまで私の感想としては Lua と JavaScript くらいの距離はあるかなぁ……と思ってる。
2019/03/05(火) 05:20:40.92ID:1ASLdeDU
昔の情報処理試験で人工知能の分野ときたらLispだったけど今違うのかな?
54はちみつ餃子 ◆8X2XSCHEME
2019/03/05(火) 09:20:27.48ID:mHzXPPXa >>53
このスレ (の過去スレ) では何度も話題になっている気がするが、
「人工知能」とは何か、それに「向いている」とはどういう意味かが曖昧なので、
Yes とも No とも言えるというのがおおよその結論。
人工知能を定義するなら「人間の知的活動を代行するもの」であり、
かつてはコンパイラや数式処理なども人工知能の範疇だった。
でも、分野として確立して以降は
コンパイラはコンパイラだし、数式処理は数式処理であって、
今ではそれを人工知能と呼ぶ人なんかいない。
逆に言えば分野として確立していない知的な処理はなんだって
人工知能なので、範囲がざっくりしすぎて
どんな言語が向いているかなんて言いようが無い。
強いて言うなら、かつては人工知能の主役は記号処理を基礎に据えたものであったので、
そのときの事情を前提にするならば、
それらを記述するには (当時あった他の主要な言語よりは) LISP が向いていると
言ってもそこそこ妥当ではあった。
このスレ (の過去スレ) では何度も話題になっている気がするが、
「人工知能」とは何か、それに「向いている」とはどういう意味かが曖昧なので、
Yes とも No とも言えるというのがおおよその結論。
人工知能を定義するなら「人間の知的活動を代行するもの」であり、
かつてはコンパイラや数式処理なども人工知能の範疇だった。
でも、分野として確立して以降は
コンパイラはコンパイラだし、数式処理は数式処理であって、
今ではそれを人工知能と呼ぶ人なんかいない。
逆に言えば分野として確立していない知的な処理はなんだって
人工知能なので、範囲がざっくりしすぎて
どんな言語が向いているかなんて言いようが無い。
強いて言うなら、かつては人工知能の主役は記号処理を基礎に据えたものであったので、
そのときの事情を前提にするならば、
それらを記述するには (当時あった他の主要な言語よりは) LISP が向いていると
言ってもそこそこ妥当ではあった。
2019/03/05(火) 20:46:21.78ID:XYJ+jVyT
人工知能でLISPを扱ってる本の巻末付録は大抵駅すぱあとシステムだからな
2019/03/05(火) 22:17:29.86ID:Wd2YNpFb
餃子がスゲー良いこと言ったな…
> 逆に言えば分野として確立していない知的な処理はなんだって人工知能
機械学習みたいないかにも人工知能っぽいものでも、人間が理解して理論的に確立してしまえばなんてことない在り来たりな技術になるんだろうな
> 逆に言えば分野として確立していない知的な処理はなんだって人工知能
機械学習みたいないかにも人工知能っぽいものでも、人間が理解して理論的に確立してしまえばなんてことない在り来たりな技術になるんだろうな
57はちみつ餃子 ◆8X2XSCHEME
2019/03/06(水) 03:45:46.67ID:7/fqDaVy 人工知能のカテゴリのひとつに「ルールベース」があるけど、
これって要するに if 文を並べて判断するようなシステムのことで、
現代的な感覚だと人工知能とは言わんよな。
ひとつのカテゴリとして名前を付けることすら馬鹿馬鹿しい。
(あくまでも現代の感覚で見ればという話なので、
当たり前のものにしてきた先人の努力を貶めるものではないことは断わっておく。)
そんなごく当たり前のプログラムも昔は人工知能と呼ばれていたんだから、
人工知能という言葉が指す範囲はとてつもなく広いし、今後も変遷を続けていくと思う。
結果的に LISP が人工知能の記述に「適していた」あるいは「適している」のが事実であってもなくても、
LISP が人工知能の記述を目指しているというわけでもないし、
(LISP 系言語は幅広いので特に人工知能を指向したものも有りはするかもしれないが)
主要な LISP 系言語は Python やら Ruby やらと並べても違和感のないごく普通の汎用言語なんで、
用途を限定してしまうような言説は、個人的にはあまり好きじゃないな。
使いたいように使っていいんだよ。
これって要するに if 文を並べて判断するようなシステムのことで、
現代的な感覚だと人工知能とは言わんよな。
ひとつのカテゴリとして名前を付けることすら馬鹿馬鹿しい。
(あくまでも現代の感覚で見ればという話なので、
当たり前のものにしてきた先人の努力を貶めるものではないことは断わっておく。)
そんなごく当たり前のプログラムも昔は人工知能と呼ばれていたんだから、
人工知能という言葉が指す範囲はとてつもなく広いし、今後も変遷を続けていくと思う。
結果的に LISP が人工知能の記述に「適していた」あるいは「適している」のが事実であってもなくても、
LISP が人工知能の記述を目指しているというわけでもないし、
(LISP 系言語は幅広いので特に人工知能を指向したものも有りはするかもしれないが)
主要な LISP 系言語は Python やら Ruby やらと並べても違和感のないごく普通の汎用言語なんで、
用途を限定してしまうような言説は、個人的にはあまり好きじゃないな。
使いたいように使っていいんだよ。
2019/03/06(水) 23:50:18.20ID:pTvDqBNf
>>57
> そんなごく当たり前のプログラムも昔は人工知能と呼ばれていたんだから、
> 人工知能という言葉が指す範囲はとてつもなく広いし、今後も変遷を続けていくと思う。
70年代前半だと数式処理(記号微分とか記号積分とか、特に記号積分はね)も立派な人工知能の一分野
ついでに言えば50年代後半だと今で言うコンパイラの研究も人工知能の1テーマだったらしい
> そんなごく当たり前のプログラムも昔は人工知能と呼ばれていたんだから、
> 人工知能という言葉が指す範囲はとてつもなく広いし、今後も変遷を続けていくと思う。
70年代前半だと数式処理(記号微分とか記号積分とか、特に記号積分はね)も立派な人工知能の一分野
ついでに言えば50年代後半だと今で言うコンパイラの研究も人工知能の1テーマだったらしい
2019/03/07(木) 00:08:40.76ID:3nOoPCck
2019/03/08(金) 01:59:42.89ID:PoFzWHgZ
ごめん、見落としてた
2019/03/09(土) 18:08:55.14ID:AFl9pnGp
研究者や企業による実験段階+アルファまでAI
商品化され一般に流通したらIT
商品化され一般に流通したらIT
2019/03/20(水) 16:56:57.86ID:Cy24MG6x
>>61
👍
👍
63デフォルトの名無しさん
2019/03/23(土) 22:34:59.05ID:xopjuNQ8 Scheme というか、Lisp のことを少ししか分かっていないんですども、μKanren を使ってみたくて
Sheme の処理系をインストールしたんですが Gauche、Guile、MT/GNU Sheme と、入れた全部
に assp がアンバウンドだと言われて動きません。
1.解決方法が分からなくて、自前で assp を書いて動かしてますが、本当はどうやったら assp が
使えるか教えてください。ライブラリをロードするのでしょうか?
2.せっかく書いたので、自前の関数の働きが本当の assp と同じなのか知りたいです。
みなさんならどのように書きますか? 最初に見つかったときに止める場合のセオリー
はありますか?
書いてみた関数:
(define (assp fn assoc)
(let ((rtn #f))
(for-each (lambda (x)
(if (not rtn)
(if (fn (car x))
(set! rtn x))))
assoc)
rtn))
Sheme の処理系をインストールしたんですが Gauche、Guile、MT/GNU Sheme と、入れた全部
に assp がアンバウンドだと言われて動きません。
1.解決方法が分からなくて、自前で assp を書いて動かしてますが、本当はどうやったら assp が
使えるか教えてください。ライブラリをロードするのでしょうか?
2.せっかく書いたので、自前の関数の働きが本当の assp と同じなのか知りたいです。
みなさんならどのように書きますか? 最初に見つかったときに止める場合のセオリー
はありますか?
書いてみた関数:
(define (assp fn assoc)
(let ((rtn #f))
(for-each (lambda (x)
(if (not rtn)
(if (fn (car x))
(set! rtn x))))
assoc)
rtn))
64はちみつ餃子 ◆8X2XSCHEME
2019/03/23(土) 23:08:12.36ID:ByL/s3eU >>63
μKanren のことはよくしらないけど、
assp は R6RS (※1) では rnrs lists ライブラリに含まれるので、
R6RS 処理系ではこのライブラリを import すると使えるようになる。
R6RS 以外には無い。
自分で書くとしたら SRFI-1 (※2) を使える状況なら
こんな感じで書くなぁ
(define (assp proc alist)
(find (lambda(x)(proc (car x)))
alist))
※1
RnRS は Scheme の仕様書の通称。
n に改定番号が入る。
※2
小さい言語である Scheme では日常的に使うにはライブラリが足りなさげなので、
ユーザーコミュニティとしてライブラリの仕様を考えて文書化したものの集合体が SRFI 。
(RFC みたいな感じ?)
SRFI-1 はその最初期のもので、リスト操作系のライブラリ。
仕様の一部ではないので処理系によって SRFI の採用の程度は色々だけど、
実用嗜好の処理系は主要なものはまあまあ取り込んでいる。
今では仕様の検討の前段階として一旦 SRFI にしたりもしている。
μKanren のことはよくしらないけど、
assp は R6RS (※1) では rnrs lists ライブラリに含まれるので、
R6RS 処理系ではこのライブラリを import すると使えるようになる。
R6RS 以外には無い。
自分で書くとしたら SRFI-1 (※2) を使える状況なら
こんな感じで書くなぁ
(define (assp proc alist)
(find (lambda(x)(proc (car x)))
alist))
※1
RnRS は Scheme の仕様書の通称。
n に改定番号が入る。
※2
小さい言語である Scheme では日常的に使うにはライブラリが足りなさげなので、
ユーザーコミュニティとしてライブラリの仕様を考えて文書化したものの集合体が SRFI 。
(RFC みたいな感じ?)
SRFI-1 はその最初期のもので、リスト操作系のライブラリ。
仕様の一部ではないので処理系によって SRFI の採用の程度は色々だけど、
実用嗜好の処理系は主要なものはまあまあ取り込んでいる。
今では仕様の検討の前段階として一旦 SRFI にしたりもしている。
6563
2019/03/24(日) 10:14:45.86ID:UnbL980K >>64
ありがとうございます。Gauche は find があるみたいなので、早速置き換えてみました。
Scheme の規格は、過去のものを包括しているわけでもなく、なかなか難しいものなんですね。
μKanren だけに限らないかもしれませんが、μKanren の Scheme のコードは、普通の
オブジェクト指向言語と違って型を作って使い分けするのでなくて、そういう意図でベクトルや
ドット対やリストを使い分けていたり、戻す値が何を意図したものなのかわかりにくくて、
短いけど難しいですね〜
ありがとうございます。Gauche は find があるみたいなので、早速置き換えてみました。
Scheme の規格は、過去のものを包括しているわけでもなく、なかなか難しいものなんですね。
μKanren だけに限らないかもしれませんが、μKanren の Scheme のコードは、普通の
オブジェクト指向言語と違って型を作って使い分けするのでなくて、そういう意図でベクトルや
ドット対やリストを使い分けていたり、戻す値が何を意図したものなのかわかりにくくて、
短いけど難しいですね〜
2019/03/24(日) 12:59:34.15ID:0UFOFyyE
μKanrenてユニフィケーションの亜種みたいなもんだから多分どの言語でも大丈夫だぞ
6763
2019/03/26(火) 10:45:46.30ID:qv9oqtep >>66
μKanren や miniKanren はいろんな言語に移植されていますね。
実は私も、ある超マイナー言語に移植することでその言語の勉強と、移植したライブラリで
なんかしてみようと始めたんですけど、スタック系言語なんで、なかなかすんなりいきません。
あと、コア部分はいいとしても、Shceme でマクロを使っているところをどうするかって
ところが悩みどころ。他の言語の移植をみても、そのへんはつくってないものも多い様で。
μKanren や miniKanren はいろんな言語に移植されていますね。
実は私も、ある超マイナー言語に移植することでその言語の勉強と、移植したライブラリで
なんかしてみようと始めたんですけど、スタック系言語なんで、なかなかすんなりいきません。
あと、コア部分はいいとしても、Shceme でマクロを使っているところをどうするかって
ところが悩みどころ。他の言語の移植をみても、そのへんはつくってないものも多い様で。
2019/03/26(火) 12:30:38.77ID:rfZeS/lQ
powershell上のC#で持っとくと捗りそう
2019/05/17(金) 11:21:22.79ID:5wW1YVrN
なんか書けよおまえら
2019/05/17(金) 20:28:12.22ID:yF96juLt
Racket 7.3 でたね。上げ
レスを投稿する
ニュース
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★4 [BFU★]
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★3 [BFU★]
- 【千葉】コンビニに尿入りペットボトル並べた疑い、26歳男「むしゃくしゃして」…購入した客が飲もうとしたところ臭いに違和感 [ぐれ★]
- 中国官製報道「日本経済はもう持たない」にネット民ツッコミ「ニュースだけ見てたら日本はもう百回くらい爆発してる」 [1ゲットロボ★]
- 【硬貨】500円だと思ったら「500ウォンが入っていた」価値は約10分の1 全国で飲食店などで“500ウォントラブル”相次いで報告 [ぐれ★]
- 【STARTO ENTERTAINMENT】timelesz、メンバーの不適切言動を謝罪「不用意かつモラルに反した発言であった」 全員の署名入りでコメント [Ailuropoda melanoleuca★]
- 【実況】博衣こよりのえちえちホロ分かり手クイズ🧪🏴‍☠🌸 ★3
- 【高市悲報】中国「国連安保理の許可なしに日本を攻撃可能だ」★2 [115996789]
- フィリピンの中国大使館、高市早苗の面白漫画を公開www🤣 [718678614]
- NHKニュースウオッチ9「日本側は対話にオープンな姿勢で安定した日中関係を築きたい考えなのに中国が意固地で糸口が見いだせない」 [904151406]
- 【んな専🏡】華金もんなっしょいとはやれやれなのらね🍬(・o・🍬)🏰
- 日中戦争起きたら5日で自衛隊壊滅するらしい。じゃあ徴兵も無いし、俺等が必死になって反対してやる理由なくね? [237216734]
