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

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

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

だいたい最近までOpenSourceでScheme処理系開発してた連中が居たけれども、
彼らがAIと言った事はただの一つもないよ(w
0741デフォルトの名無しさん2017/12/13(水) 20:00:39.22ID:yTQPqafe
おいらも735に賛成。
エキスパートシステムは失敗と無駄そのもの。第五世代も。

現実には民間企業ではMSエクセルが経営支援機能を果たしている。
表計算がAIより機能を果たしている皮肉。
0744デフォルトの名無しさん2017/12/14(木) 01:05:25.22ID:dCJIi5Cz
インタプリタだとかCのプリプロセッサマクロだとか、イカレ過ぎててツッコミどころすらわからんw
0745デフォルトの名無しさん2017/12/14(木) 03:33:21.97ID:fsO62Lbi
ディープラーニングを機械学習と言えば詐欺臭はでない。人工知能なんて言うから投資詐欺に使う奴が出てくる。
既存のTCP/IP使ったクライアントサーバシステムをクラウドなんて言い出すのと同じ。
0746デフォルトの名無しさん2017/12/15(金) 04:45:54.58ID:KHNYpOof
みんなschemeで何作ってるの?
これからscheme始める人は何作るべき?
0750デフォルトの名無しさん2017/12/16(土) 21:18:33.39ID:6we8nAFi
あとC++に組み込んで3Dモデルの作成しようと思ったがまだ上手く行ってない

しかし、おかげで継続が理解できてJSやC#のコルーチンが中でどう動いてるの、とか
本当に勉強になった
人に説明できるようになって仕事に役立ったよ
0754デフォルトの名無しさん2017/12/16(土) 23:04:09.78ID:6cm/hyEb
あれは理解するものじゃない
感じるんだ
0755デフォルトの名無しさん2017/12/17(日) 00:33:44.93ID:0YixwDt0
CPUのコールスタックがわかってれば、スタックでなくヒープを使い捨てることにしたと思えば理解は容易いんじゃないか。
プログラミング言語の抽象度しか知らないならCPS変換から入るのが早道かも。
0756はちみつ餃子 ◆8X2XSCHEME 2017/12/17(日) 01:22:25.09ID:vupC7usA
私も CPS で考えるのが早道だと思う。
CPS で考えた時に表出する環境の受渡しを普段の Scheme では暗黙にやってる感じ。
0757デフォルトの名無しさん2017/12/17(日) 12:04:50.86ID:eoJ80v7u
俺はコールスタックからだったが
>CPS
こういう捉えかたもあるんだね
知らなかった、ありがとう!
0759デフォルトの名無しさん2017/12/17(日) 14:47:33.87ID:/lXwOr1A
関数の戻り値が渡る先を操作できるだけじゃん。

トップレベルの特異性には注意だけど。
0760デフォルトの名無しさん2017/12/18(月) 06:11:49.84ID:RkLzSeZU
c++で継続はライブラリ使うだけで良いみたいだけど
C言語では継続はマシン語いじらないと実現出来ないの?
0764デフォルトの名無しさん2017/12/18(月) 21:02:09.62ID:Idgcm8jE
C++には、GCとか実装から切り離して、実行環境をカプセル化した
関数オブジェクトがあるから、そのことかも
0765デフォルトの名無しさん2017/12/18(月) 21:06:41.77ID:Idgcm8jE
ええと、一応念のため説明させていただきますが、C++では関数は
オブジェクトではないのです……
0768デフォルトの名無しさん2017/12/23(土) 21:49:26.76ID:YzWkPP/t
schemeについてのことではなくてelispについてなんですが、同じかもしれないと
おもってお尋ねします。コードを書いた実行をして、(コードを読み込んで)
そのあとその実行して読み込ませたものをclearして、(書いているコードはそのまま
なんですが、読み込んだという事実をclearしたい)それで別のコードを下に書いて
その下に書いたものだけを実行するという風にしたいのですが、そういうclearする
ことは可能でしょうか?どのようにするのでしょうか?
0770デフォルトの名無しさん2017/12/23(土) 23:28:54.90ID:YzWkPP/t
768の質問を取り消します。後日に尋ねるかもしれませんがその時には
よろしくお願いします
0771デフォルトの名無しさん2017/12/23(土) 23:54:12.88ID:3ZTUAfyp
>>769
schemeってみんなインタプリタとかコンパイラの実装ばっかですね
schemeの勉強でもmapやappendを実装しましょうみたいなのばっかやし
まあguiもwebもゲームも低レイヤーも出来ないとなれば仕方ないんかな
0773はちみつ餃子 ◆8X2XSCHEME 2017/12/24(日) 04:11:25.21ID:j1+IHmNs
>>771
あまり話題に上がらないけど GTK バインディングとかウェブフレームワークとかは有る。

FFI を使えばどんなライブラリでも使えるのでとりたてて分野が限定されているということは無い。
メモリ管理とか、Scheme として自然に使えるようにする面倒くささはあるので、
それを整備したものってのは最終的には物量の問題だと思う。
Chicken には Eggs が、 Racket には Planet というモジュール管理システムがあって公式リポジトリに登録されているライブラリの量もまあまあ多いので、
そのあたりから興味があるものを探してみたらいいんじゃない?
0774はちみつ餃子 ◆8X2XSCHEME 2017/12/24(日) 04:26:34.47ID:j1+IHmNs
>>772
Scheme の record は R6RS と R7RS で違うし SRFI でも微妙に違うのがいくつもあるので、
処理系によってサポート状況が違って使いにくいってのは感じるかな。
それでも多少ラップすればそれなりの移植性は確保できるので、
個人的には積極的に使ってる。

class というかオブジェクトシステムについては Scheme ではまとまった提案がないから
CLOS をベースにデザインされたものが多いとはいうものの処理系による差が激しくて、
最初から特定の処理系をターゲットにすると決めている場合じゃないと使わないな。
でも使うと決めたら積極的に使ってる。
0776 ◆QZaw55cn4c 2017/12/24(日) 22:39:11.33ID:WikwUycQ
人生3度目の the little schemer です。
xyzzy で確かめながら読んでいますが、一つ疑問が生じました。
教科書では

(lat? (atom turkey or))

と印刷されていますが、手元の処理系(gauche 0.9.5) では

(lat? '(atom turkey or))

と関数 lat? の引数に ' をつけないとうまくいかないのです。
これはどういう理由なのでしょうか?この ' は scheme の用語ではなんと呼ばれているのでしょうか?
ずっと教科書を読んでいくうちに自然とわかってくる事項でしょうか?

よろしくお願いいたします。
0777はちみつ餃子 ◆8X2XSCHEME 2017/12/24(日) 23:08:21.47ID:j1+IHmNs
>>776
' は quote の略表記。 たとえば '(a b c) は (quote (a b c)) と書いても同じ。

私はその本を持ってないからそのコードで何を教えようとしてるのかよくわかんないけど、
quote はかなり基本的な要素なので理解できるようにしてるとは思う
0779デフォルトの名無しさん2017/12/25(月) 00:30:34.51ID:eatjhcJn
little schemerはsicpの前に読む人が多いのかな
自分は読まずにsicpに突っ込む予定だけど
0780はちみつ餃子 ◆8X2XSCHEME 2017/12/25(月) 02:53:01.57ID:BGNcpfiB
SICP は計算機科学の専門書だし、趣味プログラマには高度すぎるんじゃね?
SICP は現実的な部分についても書いてないから Scheme を (日常的なスプリクティング用途程度に) 普段使いしたいって
程度の気持ちで読み始めると、理論の部分で挫折して放り投げがちなんじゃないかな?

いや、ガチで背景にある理論を理解したいって志があるなら SICP から読むことに反対なわけではないけど、
もっと緩く Scheme を使いたいっていう気持ちで使う人も歓迎したいし、
最終的に SICP を読んで理解するのが前提みたいに言うのはちょっとどうかと思うよ。
0781デフォルトの名無しさん2017/12/25(月) 21:10:21.58ID:6RDgxEW3
>>776
その「atom」ってのが実は手続きなのよ。本文ではなく前文かどこかに定義が載っていたと思う。
0784デフォルトの名無しさん2017/12/27(水) 21:59:50.53ID:I7jb5yVK
最近はnumpyにしか実装がない数値計算法が増えた
Racketはnumpyのインターフェースあるけど、他はどう?
0785はちみつ餃子 ◆8X2XSCHEME 2017/12/28(木) 00:32:55.47ID:gVqXCAzj
Racket にはそんな変態なものがあるんか。
どうやって実現しているのか興味あるけど、ググっても見つけられなかった。
0787デフォルトの名無しさん2017/12/29(金) 08:38:15.66ID:xmeHjPXR
C++のインターフェースある処理系ならboost.numpyでnumpyは動きそうだが
0789デフォルトの名無しさん2017/12/29(金) 21:45:51.42ID:srQz1veo
機械学習ライブラリとしてなら優秀だけど
今話題になってるディープラーニング対応してない
0790はちみつ餃子 ◆8X2XSCHEME 2017/12/30(土) 01:36:01.07ID:JIvbFZ2K
>>787
boost.numpy はテンプレートもだばだば使ってるし、それをあらためて動的型の言語にバインディングするのあほらしいやろ。
0792デフォルトの名無しさん2017/12/30(土) 21:52:30.82ID:wf2zlY04
Fortran最強か。
0793デフォルトの名無しさん2017/12/30(土) 22:04:07.78ID:NAE2hL7d
gaucheかchickenでGUIやるの厳しい?
tkはlinuxだとめっちゃ汚いから嫌なんだけど
Iupというの気になるんだけど試してみた人いませんか
0794はちみつ餃子 ◆8X2XSCHEME 2017/12/30(土) 23:13:03.41ID:JIvbFZ2K
Gauche や Chicken なら GTK バインディングが楽に使えると思う。

私は使ったことないけど Racket の GUI ライブラリは使いやすいみたいに聞くので、
処理系にこだわりがないなら試してみてもいいんじゃない?
0797デフォルトの名無しさん2018/01/01(月) 15:16:31.98ID:rap/X9U7
(display "Happy New Year.")
0798デフォルトの名無しさん2018/01/01(月) 17:48:15.95ID:UkMdhu1o
今からClojure入門しようと思うんですけど
「Clojure for the Brave and True」
この入門書ってどうなんでしょう?
ポチるか悩んでいるので一押し欲しいです
0803 ◆QZaw55cn4c 2018/01/03(水) 18:25:40.25ID:1ORngv96
>>776
5章になって急に難しくなりました‥
http://d.hatena.ne.jp/kazu-yamamoto/20101021/1287625788
>リストのリストに対して、深く再帰します。見方を変えれば、これは木構造に対する再帰です。

それまでは(復習は必要ですが)理解に苦しむことはなかったんですが‥
0804デフォルトの名無しさん2018/01/03(水) 21:17:21.44ID:E10k9nmq
本は仕様の確認程度に留めて処理系の実装を一通り見た方が理解が早いよ
俺は昔SECDR-SchemeやTiny-Scheme辺りのソース読んでSchemeの全てを理解した
0805デフォルトの名無しさん2018/01/04(木) 06:24:55.50ID:ZoCOsoct
勉強していく上で参考になるプログラムを見つけられないのが痛い
特にgaucheとかchickenでのオブジェクト指向をどうやって身につければいいの
0806はちみつ餃子 ◆8X2XSCHEME 2018/01/04(木) 19:59:41.91ID:l3TQzZ4M
Gauche で書いたプロジェクトとしては WiLiKi とかどう?
shiro さん自身が書いてるのがいちばん Gauche 的に綺麗な書き方じゃね?
0807デフォルトの名無しさん2018/01/04(木) 20:10:19.94ID:L/Z2udtD
gaucheがライブラリを含めて固まってから書かれたならそう断言できるけど……
0808デフォルトの名無しさん2018/01/05(金) 07:35:42.44ID:zqdaz1Y8
RacketのプログラムをCと同じぐらいに高速化したい
Checkenで動くように改変すれば手間かからずに高速化出来るんだろうか
0810はちみつ餃子 ◆8X2XSCHEME 2018/01/05(金) 12:55:55.45ID:CY5W8ai3
Racket は速い方なので、それで不満なら単純に (手間をかけずに) 移植してもたいした高速化は望めないと思う。
処理系ごとのクセはあるから場合によっては載せ替えるだけで高速化になることも無いわけじゃないが、
やってみないと (検証の手間をかけないと) 結果はわからぬ。
0813デフォルトの名無しさん2018/01/06(土) 20:53:46.77ID:/zx+3sJQ
使ってみた感想あれば聞きたいね
日本語情報少ないし、用途もよくわからない
0816デフォルトの名無しさん2018/01/08(月) 07:56:07.49ID:iCZsrYFg
スマホアプリもあるんか
シーケント計算ベースの型システムってのが難しそう
0817デフォルトの名無しさん2018/01/08(月) 14:33:12.38ID:GiAqRu5e
>>816
> シーケント計算ベースの型システムってのが難しそう

別にそういうことはない
型システムを良く行われるように自然演繹で定式化するかシーケント計算で定式化するかという定式化のスタイルの違いだけだから
大雑把に言えばシーケント計算は自然演繹のmeta calculusというスタイルだというだけだからね
0820はちみつ餃子 ◆8X2XSCHEME 2018/01/13(土) 20:46:00.95ID:SxvD86sf
>>818
こんな感じかな?

https://ideone.com/w5FtZ9

ideone はコード中の URL らしきものを適当にぼやかす機能があるらしく、勝手に置き換えられちゃった。
「download」のリンクでは本来の通りになるみたいなので、 html からコピペじゃなくてそっちを使ってね。
あと、 openvpn を手元で導入せずにそれっぽく書いたのでほんとにちゃんと動くか確かめてないぽよ〜
0821はちみつ餃子 ◆8X2XSCHEME 2018/01/13(土) 20:47:24.55ID:SxvD86sf
>>820
いいかげんに書いたけど、まじめに書くならもうちょっと小さい手続きに分割するかも
0824デフォルトの名無しさん2018/01/15(月) 04:35:38.24ID:BnLwMjmV
ちょこっと修正すれば接続は出来ました
+(use srfi-11)
- (set! chosenCountry (list-ref 1)))
+ (set! chosenCountry (list-ref args 1)))

でもCtrl-cするとエラーが出て[autovpn] try another VPN? (y/n)に進めない😱

^CMon Jan 15 04:25:51 2018 event_wait : Interrupted system call (code=4)
*** UNHANDLED-SIGNAL-ERROR: unhandled signal 2 (SIGINT)
Stack Trace:
_______________________________________
0 (sys-waitpid (process-pid process) :nohang nohang?)
at "/usr/share/gauche-0.9/0.9.5/lib/gauche/process.scm":436
1 (process-wait process)
at "./autovpn.scm":42
2 (%with-signal-handlers (list (cons (%make-sigset SIGTERM) (^ ...
expanded from (with-signal-handlers ((SIGTERM (process-send-signal process
at "./autovpn.scm":40
3 (fn item)
at "/usr/share/gauche-0.9/0.9.5/lib/gauche/procedure.scm":303
0825はちみつ餃子 ◆8X2XSCHEME 2018/01/19(金) 06:28:45.76ID:Sx7ZjBeS
>>824
あー、たぶんやけどシグナルマスクがアレなんとちゃうかな。
先にチャイルドプロセスにシグナルが伝播して終了しとんのにシグナルを送ろうとしてもうそのプロセスのうなっとるって感じ。
Windows だとシグナルマスクはなんにも意味なくて、 Unix (POSIX ?) とは扱いが違うんで、ワイにはようわからんのやわ。
すまんの
0828はちみつ餃子 ◆8X2XSCHEME 2018/01/21(日) 02:44:01.85ID:+OtUX/+i
Scheme でオプショナル引数を受け取る手続きをどう書くか? という意味?
0829デフォルトの名無しさん2018/01/21(日) 03:29:23.34ID:88fiVAag
オプショナル引数を受け取れる手続きにどうやって渡すかという意味でつ
0830デフォルトの名無しさん2018/01/21(日) 04:44:31.01ID:+OtUX/+i
それって聞かなきゃわからんような要素あるか?
普通に引数を書く以外にすることないだろ。
0831デフォルトの名無しさん2018/02/03(土) 09:20:23.41ID:AXuwnjr7
はちみつ餃子 ◆8X2XSCHEME怒らせたら大したもんやで
■ このスレッドは過去ログ倉庫に格納されています

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