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/
Lisp Scheme Part40 [転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
2015/03/16(月) 13:45:52.92ID:EEYZoZ1i
2015/03/17(火) 01:44:14.25ID:wiNtO9kJ
>1乙
2015/03/17(火) 09:53:16.13ID:DlMQwoSW
>>1
乙
乙
2015/03/18(水) 23:56:10.72ID:/VH+nDBr
ho
2015/03/19(木) 00:28:58.08ID:azHU8zeY
もー前スレおちたぁ
2015/03/19(木) 21:49:34.34ID:huDE+3Pz
そりゃ980超えたら落ちるって
2015/03/19(木) 21:50:55.51ID:gfNdMEUZ
チンコそそり立ちましたぁ!!
2015/03/19(木) 22:37:25.40ID:xkSYEtbo
OnLisp難しい
みんなどれぐらいで読めた?
みんなどれぐらいで読めた?
2015/03/19(木) 22:45:10.30ID:vj62FvKk
読むだけなら三〇分だったなぁ(速読なんで)
理解するのは3月以上かかった orz
理解するのは3月以上かかった orz
2015/03/19(木) 22:45:39.09ID:W/Yj+6+X
OnLisp を読んで、ユーザー定義のマクロは害悪だと、あらためて認識しました
11はちみつ餃子 ◆8X2XSCHEME
2015/03/20(金) 10:11:21.50ID:zxNcWGv0 極端なマクロを作るべきではないし実際にそれほど使われないけど、
マクロを使いたいときというのは汚いコードを隠蔽したいときだったりするので、
マクロを定義できないとたぶんもっとひどいことになる。
マクロを使いたいときというのは汚いコードを隠蔽したいときだったりするので、
マクロを定義できないとたぶんもっとひどいことになる。
2015/03/20(金) 11:05:47.23ID:O5J2wnNt
On Lisp読んでmacroを害悪って感じるのが不思議だわ
使いどころを間違えると確かに非道いものになるが、使うべき所で使わないのも非道い事になるって明確に述べられているじゃん
使いどころを間違えると確かに非道いものになるが、使うべき所で使わないのも非道い事になるって明確に述べられているじゃん
2015/03/20(金) 11:51:10.65ID:T3pE7L+s
マクロのおかげでいちいちクオートせずに済むのが吉
2015/03/20(金) 12:15:37.76ID:tzi7z/rK
マクロあってこそ唯一無二のLisp族なのに、マクロを否定したら読み辛いだけの欠陥言語やないか〜い!
2015/03/20(金) 12:22:46.09ID:1skyWr+5
マクロなくても読みやすくね?
コードが視覚的に構造化されてるし
コードが視覚的に構造化されてるし
2015/03/20(金) 12:41:17.89ID:UxTdHBIs
>>12
OnLispの内容を、隣の同僚に説明することまで想像してください
OnLispの内容を、隣の同僚に説明することまで想像してください
17SCHEME餃子 ◆8X2XSCHEME
2015/03/20(金) 13:11:21.51ID:zxNcWGv0 >>14-15
構造化と言えば構造化だけどどの構造も同じように括弧で表されるのは微妙。
慣れれば読み難いとは思わないけど、読み易いというほどでもないんじゃないか。
読み易いかどうかと言うよりも許容可能かどうかという話だと思う。
どの構文にも名前 (記号によって表される名前のこともあるけど) が付いているから検索しやすいとか、
本物のマクロを使えるとか、そういうのは利点としてカウントできるから見難さを上回る利点になるけど、
簡単に覚えられる程度の決まりきった構文しか使わないという人には利点がないわけで、欠点が上回ってしまうということは考えられる。
>>10
そんなわけで、マクロを否定しつつそれでもLISPを使いたいというのは何が嬉しいのかよくわからない。
それともLISP自体が駄目と言いたいのかな?
わからないというのは言葉通りの意味で、批判とかではないよ。
わかるように是非とも説明して欲しい。
構造化と言えば構造化だけどどの構造も同じように括弧で表されるのは微妙。
慣れれば読み難いとは思わないけど、読み易いというほどでもないんじゃないか。
読み易いかどうかと言うよりも許容可能かどうかという話だと思う。
どの構文にも名前 (記号によって表される名前のこともあるけど) が付いているから検索しやすいとか、
本物のマクロを使えるとか、そういうのは利点としてカウントできるから見難さを上回る利点になるけど、
簡単に覚えられる程度の決まりきった構文しか使わないという人には利点がないわけで、欠点が上回ってしまうということは考えられる。
>>10
そんなわけで、マクロを否定しつつそれでもLISPを使いたいというのは何が嬉しいのかよくわからない。
それともLISP自体が駄目と言いたいのかな?
わからないというのは言葉通りの意味で、批判とかではないよ。
わかるように是非とも説明して欲しい。
2015/03/20(金) 14:26:01.18ID:40hCSndp
カッコいいから
2015/03/20(金) 19:33:58.42ID:zrSU6lyb
理系女を引っ掛ける時の武器になるじゃない
俺「つまり、リスプで無名再帰をランダムでYコンビネーターするわけさ。実際見てみたい?」
女「うん」
俺「(*´σー`)エヘヘ、そそり立ったマクロをランダムに君のYにプス。ニップルにもプス、さあさあ、リスプリスプ」
女「リスプ・スゴー!ズコーってスゴー」
俺「つまり、リスプで無名再帰をランダムでYコンビネーターするわけさ。実際見てみたい?」
女「うん」
俺「(*´σー`)エヘヘ、そそり立ったマクロをランダムに君のYにプス。ニップルにもプス、さあさあ、リスプリスプ」
女「リスプ・スゴー!ズコーってスゴー」
2015/03/20(金) 20:20:04.43ID:h7LYVeHC
ラテン語みたいなものだろう
知ってると箔が付く
知ってると箔が付く
2015/03/20(金) 20:55:26.84ID:O5J2wnNt
2015/03/20(金) 22:05:05.58ID:A7MaPU0q
はっきり言ってマクロなしでもLISPを使いたい
2015/03/21(土) 06:38:20.56ID:A3oIMbrm
チンコそそり立つ奴うぜえと思ってggったら個人特定できてワロタw
2015/03/21(土) 08:30:58.58ID:DmU1FDu0
ふふふ、俺に嫉妬してるな
よし、中国五千年の秘法、少漏多接でおまえもチンコ鍛えろ
よし、中国五千年の秘法、少漏多接でおまえもチンコ鍛えろ
2015/03/22(日) 13:48:56.65ID:UD5BMgeo
2015/03/22(日) 15:24:08.46ID:EgqLl3qo
OnLispにてベジエ曲線とかで詰んだ
2015/03/22(日) 17:14:41.36ID:JNKpaAnB
ショートリフの医薬品エキスパートシステムではマクロは使われてたんかいなぁ?
2015/03/22(日) 17:37:58.34ID:sE6THi50
2015/03/22(日) 20:29:13.56ID:qgxjSyJi
積み木の世界は?
2015/03/26(木) 17:33:28.39ID:nOM28eq7
記号処理ベースのAIは絶滅したのだろうか。
2015/03/26(木) 21:15:18.80ID:3jWPMno2
巷で話題のDeep Learningとは対極だしね
2015/03/27(金) 07:49:53.83ID:P/37pHtr
>>22
S式単位の編集、評価が便利すぎるんだよな
S式単位の編集、評価が便利すぎるんだよな
2015/03/30(月) 00:47:47.89ID:Ti6GzTDJ
最近はCommon LispとSchemeの人口はどっちが多いんだろう?
2015/03/30(月) 01:29:55.42ID:YnE17X1Q
githubとかの活動状況みて、人口数だとclojureがうなぎ登りな感じする
schemeって何かするときに処理系に依存するのが多いのが厭
clって何かするときに過去のしがらみが厭
みたいな理由でclojureに流れた人なので余計にそう感じるのかも<<俺
;;;ちなみにjvmと.net(clojure cli)の狭間で同じように嫌いになりかけてる orz
schemeって何かするときに処理系に依存するのが多いのが厭
clって何かするときに過去のしがらみが厭
みたいな理由でclojureに流れた人なので余計にそう感じるのかも<<俺
;;;ちなみにjvmと.net(clojure cli)の狭間で同じように嫌いになりかけてる orz
2015/03/30(月) 04:41:55.03ID:Ti6GzTDJ
Javaが嫌いなのでClojureは使いたくない
2015/03/30(月) 05:26:22.68ID:yk1mvYNm
>>33
ttp://redmonk.com/sogrady/2015/01/14/language-rankings-1-15/
しっかし改めてみて見ると、Lisp方言の中ではClojureが抜きん出てるな
ttp://redmonk.com/sogrady/2015/01/14/language-rankings-1-15/
しっかし改めてみて見ると、Lisp方言の中ではClojureが抜きん出てるな
2015/03/30(月) 10:26:51.41ID:gPkdujhq
clojure は Lisp の皮をかぶせた Java って感じだから、
伝統的 Lisp が好きな人はイマイチに感じるかもね。
それでも Clojure がそれだけ伸びたってことは
「伝統」が Lisp 人口を抑制する理由になってたってことだ。
具体的にどれというわけでもないけど、文法的にもコミュニティ的にも。
伝統的 Lisp が好きな人はイマイチに感じるかもね。
それでも Clojure がそれだけ伸びたってことは
「伝統」が Lisp 人口を抑制する理由になってたってことだ。
具体的にどれというわけでもないけど、文法的にもコミュニティ的にも。
2015/03/30(月) 10:40:43.11ID:R7/d5mE9
ここに詭弁がある
それでも Clojure がそれだけ伸びたってことは
「伝統」が Lisp 人口を抑制する理由になってたってことだ。
それでも Clojure がそれだけ伸びたってことは
「伝統」が Lisp 人口を抑制する理由になってたってことだ。
39デフォルトの名無しさん
2015/03/30(月) 13:03:44.37ID:O4/bZba6 Paas上にサービス作ろうと思うとたいていJVM上になるからClojureになっちゃう
ホストしてくれるところがあるならCommon Lispで書いてもいいんだけど
ホストしてくれるところがあるならCommon Lispで書いてもいいんだけど
2015/03/30(月) 17:01:50.37ID:NYibuce/
clojure は repl のあるjavaです
だんじてlispではない
だんじてlispではない
2015/03/30(月) 20:12:54.65ID:YgdRSR6f
PaulGrahamの言う大理石みたいな言語ってやっぱりHaskellのこと?
2015/03/30(月) 23:07:48.12ID:E0z7vvS1
>>40
え、どうみても Lisp じゃんか?何が嫌なの
え、どうみても Lisp じゃんか?何が嫌なの
2015/03/31(火) 14:56:40.38ID:8nbXovb7
ベクタが嫌
2015/03/31(火) 16:15:14.17ID:mK8B2Vnm
馬鹿丸出しだな
2015/03/31(火) 20:50:47.45ID:O1cF667I
俺も一々 java が顔出してくるので嫌になって clojure 辞めた
2015/04/02(木) 02:50:22.14ID:T+WMNlyT
Dot 対が無いのが嫌って人が居たな>>clojure
2015/04/02(木) 06:33:27.84ID:s2WfleIg
しばらく前に触った時は、時々エラーメッセージがまんまjavaで出てきて、デバッグし辛くて嫌になった。
今は改善されてるかな?
今は改善されてるかな?
2015/04/02(木) 07:41:26.03ID:Q+R7YirZ
car/cdrがないなんて
オッパイとチンコがない人類みたいじゃないか
オッパイとチンコがない人類みたいじゃないか
2015/04/02(木) 08:40:08.68ID:prY5HrbT
凸と凹が無いレゴブロックだよ
2015/04/02(木) 11:44:11.10ID:vfTDdwEU
確かにエラーメッセージが意味をなしてないことは多々ある
REPLでNullPointerExceptionとか言われても困るし
REPLでNullPointerExceptionとか言われても困るし
2015/04/04(土) 00:19:09.41ID:ot6qeumL
>>48がうまいこと言ったな
2015/04/04(土) 11:26:07.69ID:ylJbkIMW
car,cdrに相当するものは有るじゃん
2015/04/04(土) 13:22:24.64ID:ugaLmOKA
car: 吾が身は、成り成りて成り合はざる処一処あり
adr: 我が身は、成り成りて成り余れる処一処あり
cons: 此の吾が身の成り余れる処を以ちて汝が身の成り合はざる処に刺し塞ぎて国土を生み成さむ
adr: 我が身は、成り成りて成り余れる処一処あり
cons: 此の吾が身の成り余れる処を以ちて汝が身の成り合はざる処に刺し塞ぎて国土を生み成さむ
2015/04/04(土) 16:57:43.66ID:EJsUpkUQ
list: しか善けむ
2015/04/04(土) 18:41:54.80ID:fmxizuNG
チンコそそり立ちましたぁ!!
2015/04/04(土) 20:08:23.90ID:W+B5XJ7H
そっかー。
2015/04/04(土) 20:25:22.46ID:4SWzUYUy
チンコたたない (´・ω・`)
58はちみつ餃子 ◆8X2XSCHEME
2015/04/04(土) 21:34:18.65ID:W+B5XJ7H Common Lisp には ed あるからな。
2015/04/04(土) 21:50:15.57ID:fmxizuNG
チンコ萎えましたぁ!
2015/04/05(日) 00:33:34.90ID:XqnpqZbw
>>41
なんだろう?C/C++ のことかな?
なんだろう?C/C++ のことかな?
2015/04/05(日) 04:26:19.34ID:0qV8//6B
特定の言語を指して言ってるようにも読みとれないし、
指していないものとして読んでも意味は通じると思うのだが。
指していないものとして読んでも意味は通じると思うのだが。
2015/04/05(日) 12:28:37.93ID:XqnpqZbw
でもポール・グラハムの価値観というか美的センスは知りたいよね
2015/04/05(日) 13:18:57.52ID:eP1s4V8k
Lisper捕まえて価値化とか美的センス問いただすってどうなの
2015/04/05(日) 15:24:39.64ID:S9OEePzZ
PGの経歴考えれば、氏の美的センスに興味持つのは別におかしいことじゃないだろ
2015/04/05(日) 16:48:40.38ID:Mc1LufYO
元の文読んだら出てこない質問じゃないのかな。
66デフォルトの名無しさん
2015/04/05(日) 19:07:54.35ID:0+ESVGOs 教祖が思いつきで適当こいたことを信者が一生懸命意味づけしてるみたい
67デフォルトの名無しさん
2015/04/05(日) 20:16:22.22ID:jqMEIOdF PGはセンスないと思う
68デフォルトの名無しさん
2015/04/05(日) 20:20:03.29ID:jqMEIOdF PGは経済的な感覚はするどいと思う
プログラマとして、言語設計者としてはどうかと思う
プログラマとして、言語設計者としてはどうかと思う
2015/04/05(日) 20:27:27.33ID:n8yu0sIB
グレアムは現実寄りの感覚を持っていると思う。
言語設計者が陥りがちな罠として一貫性とか対称性とかを過度に重視してしまうことがあるんだけど、
グレアムの場合は逆に「汚くてもこの方が効率的だ」と言えちゃうところがある。
それはそれでプログラマ、言語設計者に必要な資質だと思う。
言語設計者が陥りがちな罠として一貫性とか対称性とかを過度に重視してしまうことがあるんだけど、
グレアムの場合は逆に「汚くてもこの方が効率的だ」と言えちゃうところがある。
それはそれでプログラマ、言語設計者に必要な資質だと思う。
2015/04/05(日) 20:36:24.36ID:BNV+ndU/
>>67
典型的に恥ずかしいやつだな
典型的に恥ずかしいやつだな
71デフォルトの名無しさん
2015/04/05(日) 20:39:37.24ID:jqMEIOdF >>70
教祖様べったりか。おまえ、自分の頭で考えたか?
教祖様べったりか。おまえ、自分の頭で考えたか?
2015/04/05(日) 20:42:20.66ID:BNV+ndU/
73デフォルトの名無しさん
2015/04/05(日) 20:44:44.80ID:jqMEIOdF だからLisperは・・・
2015/04/06(月) 03:34:53.06ID:iRkvZ+2f
グラハム師は絵かきでもあるんだが?
尊師、いやセンスも抜群であるぞよ?
尊師、いやセンスも抜群であるぞよ?
2015/04/06(月) 13:38:56.01ID:24zntdu4
グレアムですとりとり
2015/04/20(月) 17:42:17.20ID:ic3Zh3EU
ちょっと見ないうちに発展してるんだな
ChickenなんてPython並みにライブラリ充実してるやん
ChickenなんてPython並みにライブラリ充実してるやん
77デフォルトの名無しさん
2015/04/21(火) 22:23:55.27ID:k+lIUh1M ☆ 日本の核武装は絶対に必須ですわ。☆
http://www.soumu.go.jp/senkyo/kokumin_touhyou/index.html
☆ 日本国民の皆様方、2016年7月の『第24回 参議院選挙』で、改憲の参議院議員が
3分の2以上を超えると日本国憲法の改正です。皆様方、必ず投票に自ら足を運んでください。
私たちの日本国憲法を絶対に改正しましょう。☆
http://www.soumu.go.jp/senkyo/kokumin_touhyou/index.html
☆ 日本国民の皆様方、2016年7月の『第24回 参議院選挙』で、改憲の参議院議員が
3分の2以上を超えると日本国憲法の改正です。皆様方、必ず投票に自ら足を運んでください。
私たちの日本国憲法を絶対に改正しましょう。☆
2015/04/22(水) 21:43:11.85ID:DgtUSZ4O
最初の一発をアメリカに落とすなら賛成
2015/04/26(日) 16:00:13.01ID:2npT22yp
>>77
某大統領はツーマンルールの束縛をも離れ自由に核を行使することができるようになるのですね
某大統領はツーマンルールの束縛をも離れ自由に核を行使することができるようになるのですね
2015/05/09(土) 06:59:13.12ID:R7pPsL7j
pythonのdoctestに相当するものって
schemeの実装でもってる処理系ってありますか?
schemeの実装でもってる処理系ってありますか?
81デフォルトの名無しさん
2015/05/23(土) 11:06:22.08ID:B3nG1+3y SICPは糞訳だから難しいだけで
普通の入門書やで
普通の入門書やで
2015/05/23(土) 12:44:35.08ID:5iWlkXmX
学生がはじめて触るプログラミング言語としてschemを想定している時点で普通ではない
2015/05/23(土) 14:04:59.31ID:CdB4mnZs
学生がはじめてさわる言語として?
は?
は?
2015/05/27(水) 17:02:03.66ID:7qplcBoj
LispWorksメジャーバージョンアップしてたよ〜
http://www.lispworks.com/news/news34.html
Release of LispWorks 7.0
Cambridge, England, 05 May 2015
ARM版がでたり、EE版でなくても64bit版使えるようになってますね。
ただとても高いです(>_<)
64bitだと、
Hobbyist Edtion $750
HobbyistHV Edtion $1,500
Professional Edition $3,000
Enterprise Edition $4,500
Lisp生誕50周年の時に、記念価格で頑張って10万円以下で32bit Pro版買いましたが
もうムリポ
http://www.lispworks.com/news/news34.html
Release of LispWorks 7.0
Cambridge, England, 05 May 2015
ARM版がでたり、EE版でなくても64bit版使えるようになってますね。
ただとても高いです(>_<)
64bitだと、
Hobbyist Edtion $750
HobbyistHV Edtion $1,500
Professional Edition $3,000
Enterprise Edition $4,500
Lisp生誕50周年の時に、記念価格で頑張って10万円以下で32bit Pro版買いましたが
もうムリポ
2015/05/27(水) 17:49:32.08ID:zmDBrH1G
2015/06/02(火) 01:25:15.07ID:y4V2Np0V
>>85
Windows版しかわからないけど、LispWorks 6.1あたりから日本語は問題なくなってるよ。
インライン入力、日本語フォントの表示など。
ただ、Shell Panelについては相変わらず文字化けするね。
(前から要望は出してたけど結局対応されてない。)
Windows版しかわからないけど、LispWorks 6.1あたりから日本語は問題なくなってるよ。
インライン入力、日本語フォントの表示など。
ただ、Shell Panelについては相変わらず文字化けするね。
(前から要望は出してたけど結局対応されてない。)
2015/06/02(火) 17:33:15.03ID:6+pzD3Ix
https://github.com/pedropramos/PyonR
Racketとpythonの混合できるって聞いて動かそうとしてるんだけど
Gentoo Linuxだと動いてくれない
ひょっとしてWindowsでしか動かなかったりします?
Racketとpythonの混合できるって聞いて動かそうとしてるんだけど
Gentoo Linuxだと動いてくれない
ひょっとしてWindowsでしか動かなかったりします?
2015/06/02(火) 17:59:01.82ID:w187aOqK
>>86
>ただ、Shell Panelについては相変わらず文字化けするね
まだ多国語対応未対応な箇所あるのか orz
LispWorksはVSと値段かわらんから購入候補になるんで頑張って欲しいんだが。(DB必須なので必要なのはEnterprize版)
Franzは良いとは見聞きして知ってるけど零細企業で買うのは開発に必要なライセンスは2か3でなんとかなっても再配布ライセンスがちょっと躊躇する(値段が見えないので銀座の寿司屋な気分だ)
>ただ、Shell Panelについては相変わらず文字化けするね
まだ多国語対応未対応な箇所あるのか orz
LispWorksはVSと値段かわらんから購入候補になるんで頑張って欲しいんだが。(DB必須なので必要なのはEnterprize版)
Franzは良いとは見聞きして知ってるけど零細企業で買うのは開発に必要なライセンスは2か3でなんとかなっても再配布ライセンスがちょっと躊躇する(値段が見えないので銀座の寿司屋な気分だ)
2015/06/02(火) 18:44:36.72ID:lN7QylsY
きちんとしたサポート込みで、個別の相談にもかなり乗ってくれるらしいからなぁ。
処理系の値段つーより、ある種のコンサルみたいなもんなんじゃね。
用途を説明して概算を聞いてみてもいいと思うよ。
処理系の値段つーより、ある種のコンサルみたいなもんなんじゃね。
用途を説明して概算を聞いてみてもいいと思うよ。
2015/06/02(火) 18:48:14.93ID:KVObd6cl
issueとpull reqみると、osxは分からんってかいてあるけど、
作者がどの環境で動かしてるかよくわからないね。
作者がどの環境で動かしてるかよくわからないね。
91デフォルトの名無しさん
2015/06/02(火) 23:33:13.20ID:rOXsVj7y2015/06/07(日) 03:32:03.18ID:+hGuy5f7
>>91
cd PyonR/examples/numpy_arrays
$ racket sum_arrays.py
sum_arrays.py:2:0: cpyimport: The 'cpyimport' statement is disabled.
To enable it, require the module 'python/config' from Racket and run (enable-cpyimport!)
in: (cpy-import "numpy" as :np)
context...:
/home/niitsumalocal/.racket/6.0.1/pkgs/python/cpy-importing.rkt:65:2
/usr/share/racket/collects/syntax/wrap-modbeg.rkt:46:4
standard-module-name-resolver
cd PyonR/examples/numpy_arrays
$ racket sum_arrays.py
sum_arrays.py:2:0: cpyimport: The 'cpyimport' statement is disabled.
To enable it, require the module 'python/config' from Racket and run (enable-cpyimport!)
in: (cpy-import "numpy" as :np)
context...:
/home/niitsumalocal/.racket/6.0.1/pkgs/python/cpy-importing.rkt:65:2
/usr/share/racket/collects/syntax/wrap-modbeg.rkt:46:4
standard-module-name-resolver
2015/06/07(日) 10:39:37.53ID:AwWM8qy1
>>92
そのエラーメッセージに解決法書いてあるよ
> sum_arrays.py:2:0: cpyimport: 'cpyimport' 文は無効になっている。
> これを有効にするには、Racket で 'python/config' モジュールを require し (enable-cpyimport!) を実行せよ。
というわけでこう
$ racket --eval '(require python/config) (enable-cpyimport!)'
The 'cpyimport' statement is now enabled.
$ racket PyonR/examples/numpy_arrays/sum_arrays.py
cpu time: 2197 real time: 2194 gc time: 12
[[ 5.05084018e+08 4.99867603e+08 5.02311555e+08 ..., 4.97975418e+08
以下略
そのエラーメッセージに解決法書いてあるよ
> sum_arrays.py:2:0: cpyimport: 'cpyimport' 文は無効になっている。
> これを有効にするには、Racket で 'python/config' モジュールを require し (enable-cpyimport!) を実行せよ。
というわけでこう
$ racket --eval '(require python/config) (enable-cpyimport!)'
The 'cpyimport' statement is now enabled.
$ racket PyonR/examples/numpy_arrays/sum_arrays.py
cpu time: 2197 real time: 2194 gc time: 12
[[ 5.05084018e+08 4.99867603e+08 5.02311555e+08 ..., 4.97975418e+08
以下略
2015/06/11(木) 22:16:49.32ID:XgvKq4Ru
最近流行のdeep learningだけどlispと組み合わせて何かやった研究とかないのでしょうか
2015/06/12(金) 04:54:57.92ID:GYNZ5Dwp
型つきschemeで一番まともなのはbiglooぽいけど
ライブラリが一番充実してるのはracketぽい
Racketのパッケージをbiglooで動かせないものか
ライブラリが一番充実してるのはracketぽい
Racketのパッケージをbiglooで動かせないものか
2015/06/14(日) 19:10:32.03ID:mXFFHZJ9
::okey::
2015/06/14(日) 19:11:12.06ID:mXFFHZJ9

2015/06/19(金) 08:01:11.57ID:RmIQOIpq
他人の作ったJavaプログラムのバグをとりつつ
自分の使いたい機能を追加したりするなら
Scala
Clojure
どっちがおすすめ?
Javaとの融合はScalaが上っぽいけどLispになれてるのでLispの方がいい
自分の使いたい機能を追加したりするなら
Scala
Clojure
どっちがおすすめ?
Javaとの融合はScalaが上っぽいけどLispになれてるのでLispの方がいい
2015/06/19(金) 08:57:20.33ID:688YE8UT
>>98
後者
後者
100デフォルトの名無しさん
2015/06/19(金) 11:01:47.02ID:tBR6vKOw101デフォルトの名無しさん
2015/06/20(土) 11:39:42.60ID:rk/B/nZr102デフォルトの名無しさん
2015/06/22(月) 11:59:19.90ID:2Ao8Xtyy モナドのちゃんとした定義ってあるの?
言語ごとに定義が違う気がするんだけど
言語ごとに定義が違う気がするんだけど
103デフォルトの名無しさん
2015/06/22(月) 14:13:40.72ID:FwurGF7a モナド則はモナド則だよ。
104デフォルトの名無しさん
2015/06/22(月) 20:47:07.39ID:unToOooi 関数型言語「Racket 6.2」リリース
http://osdn.jp/magazine/15/06/23/063900
RacketはShemeから派生した関数型言語。旧名称はPLT Schemeで、バージョン5より
Racketに名称を変更した。強力なマクロシステムが特徴で、マクロを使って言語機能
を拡張でき、プロジェクト固有の新しい「方言」を作成できるという。また、Web
サーバーやデータベース、GUI、チャートなどのアプリケーションをサポートする
ライブラリも提供される。ライセンスはLGPL。プロジェクトは米国立科学財団(NSF)、
国防高等研究計画局(DARPA)、米教育省、Exxon Foundation、Microsoft、Mozilla、
Googleなどの支援を受けている。
http://osdn.jp/magazine/15/06/23/063900
RacketはShemeから派生した関数型言語。旧名称はPLT Schemeで、バージョン5より
Racketに名称を変更した。強力なマクロシステムが特徴で、マクロを使って言語機能
を拡張でき、プロジェクト固有の新しい「方言」を作成できるという。また、Web
サーバーやデータベース、GUI、チャートなどのアプリケーションをサポートする
ライブラリも提供される。ライセンスはLGPL。プロジェクトは米国立科学財団(NSF)、
国防高等研究計画局(DARPA)、米教育省、Exxon Foundation、Microsoft、Mozilla、
Googleなどの支援を受けている。
105デフォルトの名無しさん
2015/06/22(月) 23:08:50.19ID:SUvAdIcO Racket 最強伝説
106デフォルトの名無しさん
2015/06/23(火) 00:34:37.16ID:ZAN95P/B107デフォルトの名無しさん
2015/06/24(水) 10:17:09.07ID:fsHZ6HK+ typed-racketが変なバグ起こさなくなったの?
安心して使えるようになったのなら使ってみようかな
安心して使えるようになったのなら使ってみようかな
108デフォルトの名無しさん
2015/06/24(水) 18:03:08.01ID:jBd8hVQL Clojureと同じ文法でC++もwrapしようとしてるプロジェクトを
2つぐらいみつけたんだが2年ぐらい更新がない
JavaからC++の変換はそんな難しくないはずなんだけど
何か違う理由で頓挫してるんだろうか
2つぐらいみつけたんだが2年ぐらい更新がない
JavaからC++の変換はそんな難しくないはずなんだけど
何か違う理由で頓挫してるんだろうか
109デフォルトの名無しさん
2015/06/24(水) 23:03:41.63ID:+qhy7yF2 >>108
(その人達に必要な機能は)完成したからではなかろうか
(その人達に必要な機能は)完成したからではなかろうか
110デフォルトの名無しさん
2015/06/24(水) 23:46:08.20ID:PBiySlld 試しに実装してみたぐらいの気がする。
継続して使うのに作ったかは分からない。
型付きといえばshenも、18.1で型チェックが速くなったらしい。
ソースみたら、該当箇所の型が総称型に変わってた。
http://www.shenlanguage.org
継続して使うのに作ったかは分からない。
型付きといえばshenも、18.1で型チェックが速くなったらしい。
ソースみたら、該当箇所の型が総称型に変わってた。
http://www.shenlanguage.org
111デフォルトの名無しさん
2015/06/24(水) 23:50:28.07ID:PBiySlld 相互運用テストのためにakamaiがhttp2のコードをCLで書いてて、少し話題になってたね。
https://github.com/akamai/cl-http2-protocol
https://github.com/http2/http2-spec/wiki/Implementations
https://github.com/akamai/cl-http2-protocol
https://github.com/http2/http2-spec/wiki/Implementations
112デフォルトの名無しさん
2015/06/24(水) 23:56:47.57ID:PBiySlld cl-llvmってなんだろう。
https://github.com/sellout/CL-LLVM
llvmを吐く?FFI?
http://blog.cnu.jp/2012/12/11/android-gdk/
それとも、androidのjava/llvmみたいな話と同じなのかな?
https://github.com/sellout/CL-LLVM
llvmを吐く?FFI?
http://blog.cnu.jp/2012/12/11/android-gdk/
それとも、androidのjava/llvmみたいな話と同じなのかな?
113デフォルトの名無しさん
2015/06/25(木) 00:00:46.68ID:1wCihy2Z これ3年ぶりのコミットがあったのか。
https://github.com/sellout/CL-LLVM/commits/master
https://github.com/sellout/CL-LLVM/commits/master
114デフォルトの名無しさん
2015/06/25(木) 13:36:07.50ID:q+JEbLja CL (というより動的型の言語) は LLVM の抽象度では上手く扱えないしたいして最適化できないという話もある。
GC の性能にも強く左右されるし、 LLVM よりも JVM の方が CL とは相性よさそうな気がする。
GC の性能にも強く左右されるし、 LLVM よりも JVM の方が CL とは相性よさそうな気がする。
115デフォルトの名無しさん
2015/06/25(木) 14:00:35.66ID:NeoIiVi2 ABCLの性能ってどうなの?
116デフォルトの名無しさん
2015/06/28(日) 19:28:01.75ID:8Yznu8U0 昔,kawaからJavaを使おうとして非常に苦労した記憶が
ABCLならだいぶ楽にJavaが使えるのだろうか
Clojureは最初は楽だけどJavaのパッケージマネージャで苦労するね
ABCLならだいぶ楽にJavaが使えるのだろうか
Clojureは最初は楽だけどJavaのパッケージマネージャで苦労するね
117デフォルトの名無しさん
2015/06/30(火) 06:09:22.32ID:OHT0M0qn >>116
Java のパッケージマネージャって Clojure 書くのに Maven とか Gradle でも使ってるの?
Java のパッケージマネージャって Clojure 書くのに Maven とか Gradle でも使ってるの?
118デフォルトの名無しさん
2015/07/05(日) 11:29:59.98ID:dGwooAgp 一時期Clojureが過剰に持ち上げられていたけど
まったく流行らずに終わったな
まったく流行らずに終わったな
119デフォルトの名無しさん
2015/07/05(日) 12:29:23.07ID:Fkt4l860 ブラジャーに対抗しようとしても無駄なことだし
120デフォルトの名無しさん
2015/07/05(日) 23:54:46.16ID:6U0/+Enp clojure は、lispの対抗馬とか思ってると、 repl 起動するまでにブチ切れると思う
121デフォルトの名無しさん
2015/07/06(月) 05:13:14.19ID:lUS8hza0 普通に流行ってるじゃん
122デフォルトの名無しさん
2015/07/06(月) 14:46:34.49ID:Mc9Nlxok やもえずJavaのウンコなプログラムのメンテしないといけない場合に
Clojureは便利だった
そういう制約ないならRacketが一番
Clojureは便利だった
そういう制約ないならRacketが一番
123デフォルトの名無しさん
2015/07/06(月) 16:16:59.97ID:VRJTYjkB >>122
Racketの良さを教えて
Racketの良さを教えて
124デフォルトの名無しさん
2015/07/06(月) 17:47:41.11ID:Mc9Nlxok srfiがみんな使える上に
pythonとも連携できる
jythonみたいにnumpyが動かないとかもない
pythonとも連携できる
jythonみたいにnumpyが動かないとかもない
125デフォルトの名無しさん
2015/07/06(月) 18:34:53.65ID:VRJTYjkB126デフォルトの名無しさん
2015/07/06(月) 20:10:10.03ID:XAQcetl+ えっ?Clojure って流行ってるの?
127デフォルトの名無しさん
2015/07/06(月) 21:13:41.58ID:4dWpMilG 少なくともメーリングリストは相当活発だよ
128デフォルトの名無しさん
2015/07/06(月) 21:14:58.54ID:VRJTYjkB 自前でサーバー立てるなら何でもありだけど、実際PaaSのほとんどがJVM前提だからね
129デフォルトの名無しさん
2015/07/07(火) 02:14:08.64ID:FANO5u+E Javaでプログラム書く人達はユニットテストという概念がないらしく
csvに結果を書き出してエクセルで手作業テストを行うという謎慣習があるようだ
こういう人達の書いたJavaコードと付き合わざる得ない環境ではClojureは便利
csvに結果を書き出してエクセルで手作業テストを行うという謎慣習があるようだ
こういう人達の書いたJavaコードと付き合わざる得ない環境ではClojureは便利
130デフォルトの名無しさん
2015/07/07(火) 05:31:59.64ID:3YG+ylqQ JUnit…
131デフォルトの名無しさん
2015/07/07(火) 13:05:55.75ID:FANO5u+E eclipseからJUnit使ってみるとわかるけど
エクセルの方が楽
エクセルの方が楽
132デフォルトの名無しさん
2015/07/08(水) 00:15:24.50ID:j/rYw6w7 >>129
むしろ、java以外のユニットテストツールを使ったことがない
むしろ、java以外のユニットテストツールを使ったことがない
133デフォルトの名無しさん
2015/07/18(土) 20:06:26.43ID:cOkep0vN >強力なマクロシステムが特徴で、マクロを使って言語機能を拡張でき
このLISP系でよく言われる「言語機能の拡張」って全然的を射てねーなと思う
例えばschemeのファーストクラスオブジェクト(FCO)としての継続って
言語プリミティブとしてFSO継続相当を始めから持ってない限りはどうやっても
拡張で得ることはできないし
FCOとしての継続の無い言語から有る言語へ言語機能を拡張するってことは
つまり新規にFCO継続付き言語を作るって事に他ならない
できることは結局言語に既にある機能の延長上の事だけで
言語拡張なんて大それた事は他の言語同様できやしない
「子供騙しですけど強力なマクロシステムで俺構文糖衣が簡単に作れますんで・・・」
とちゃんと書き直した方がいいね!
「プラグインモジュールを使うと言語機能を拡張できます」とかで売った方がまだ納得できると
思わないかね君たち
このLISP系でよく言われる「言語機能の拡張」って全然的を射てねーなと思う
例えばschemeのファーストクラスオブジェクト(FCO)としての継続って
言語プリミティブとしてFSO継続相当を始めから持ってない限りはどうやっても
拡張で得ることはできないし
FCOとしての継続の無い言語から有る言語へ言語機能を拡張するってことは
つまり新規にFCO継続付き言語を作るって事に他ならない
できることは結局言語に既にある機能の延長上の事だけで
言語拡張なんて大それた事は他の言語同様できやしない
「子供騙しですけど強力なマクロシステムで俺構文糖衣が簡単に作れますんで・・・」
とちゃんと書き直した方がいいね!
「プラグインモジュールを使うと言語機能を拡張できます」とかで売った方がまだ納得できると
思わないかね君たち
134デフォルトの名無しさん
2015/07/18(土) 23:28:49.86ID:uE0O9hZ+ 長くて読めないから3文字にまとめてくれ!
135デフォルトの名無しさん
2015/07/19(日) 00:51:10.84ID:yGfbtuav おかしなひとには
かかわらない
しらんぷり
かかわらない
しらんぷり
136デフォルトの名無しさん
2015/07/19(日) 05:55:05.73ID:9T0GJGKU お
か
ん
か
ん
137デフォルトの名無しさん
2015/07/19(日) 06:44:26.04ID:D56BGbCW >>133
思わない
思わない
138デフォルトの名無しさん
2015/07/19(日) 06:46:11.77ID:D56BGbCW139デフォルトの名無しさん
2015/07/19(日) 07:08:41.31ID:rCpqRDah マクロ展開時になんでもできるのに何で制限があると思うんだ?
140デフォルトの名無しさん
2015/07/19(日) 12:23:56.55ID:HOCsiBj3 >>133 みたいな勉強不足の人に黒板先生は本当に便利だ
http://cl-www.msi.co.jp/solutions/knowledge/lisp-world/articles/scheme
> 端的に言ってしまえば Scheme は Lisp ではないです。 この2つを混同するのは味噌糞いっしょ、ってやつで、つつしむべきです。
http://cl-www.msi.co.jp/solutions/knowledge/lisp-world/articles/script-lang
> Lisp の不幸の1つに、
> Lisp を使わない奴に限って Lisp について語りたがる
> というのがあるんですが、今回もう1つ加わったのは、
> Lisp を知らない奴に限って Lisp を他のもの、なかでも自分の自慰行為の結果と比べたがる
> Lisp の評論をとうとうとやるわけです。
http://cl-www.msi.co.jp/solutions/knowledge/lisp-world/articles/scheme
> 端的に言ってしまえば Scheme は Lisp ではないです。 この2つを混同するのは味噌糞いっしょ、ってやつで、つつしむべきです。
http://cl-www.msi.co.jp/solutions/knowledge/lisp-world/articles/script-lang
> Lisp の不幸の1つに、
> Lisp を使わない奴に限って Lisp について語りたがる
> というのがあるんですが、今回もう1つ加わったのは、
> Lisp を知らない奴に限って Lisp を他のもの、なかでも自分の自慰行為の結果と比べたがる
> Lisp の評論をとうとうとやるわけです。
141デフォルトの名無しさん
2015/07/19(日) 12:48:48.02ID:UMlSSY6R142デフォルトの名無しさん
2015/07/19(日) 13:33:11.61ID:4YSiYgLI >>140
その理屈でいくなら、CommonLisp も Lisp ではありませんね
その理屈でいくなら、CommonLisp も Lisp ではありませんね
144デフォルトの名無しさん
2015/07/19(日) 13:58:30.31ID:4YSiYgLI >>143
Lisp と CommonLisp を混同しながら、Scheme はLisp ではないと主張ている人の意見はほどほどにして聞きましょう
Lisp と CommonLisp を混同しながら、Scheme はLisp ではないと主張ている人の意見はほどほどにして聞きましょう
145デフォルトの名無しさん
2015/07/19(日) 14:18:17.54ID:HOCsiBj3 >>144
自身のLispの定義を明らかにせずにCommon Lispは違うって言われましてもw
でもCommon LispがLispでないんなら、なおさらSchemeでLispを代表させるような論が成立しないのは同意できるんでないの
自身のLispの定義を明らかにせずにCommon Lispは違うって言われましてもw
でもCommon LispがLispでないんなら、なおさらSchemeでLispを代表させるような論が成立しないのは同意できるんでないの
146デフォルトの名無しさん
2015/07/19(日) 15:30:05.25ID:4YSiYgLI >>145
まず、Lisp は CommonLisp ではない
Lisp は Scheme ではない
次に
ttp://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
この↑Lisp1.5 は Lisp であるとする (おそらく、誰も異議をはさまないでしょう)
その上で、CommonLisp は Lisp であると仮定する (つまり、Lisp1.5 と CommonLisp程度の差があっても Lisp の一部であると仮定する)
当然、SchemeはLispである
逆に、SchemeはLispではないと仮定する (つまり、SchemeにもLisp1.5にもないモノがあればLispではないとする)
package にintern できる symbol がある CommonLisp は Lispではない
CommonLisp 側の言い分としては、CommonLisp はSchmeと同じくLisp系の新言語です
(Common Lisp is the modern, multi-paradigm, high-performance, compiled, ANSI-standardized, most prominent (along with Scheme) descendant of the long-running family of Lisp programming languages. )
Confusing Lisp and Common Lisp is permissible once in a human life. です
個人的には、マクロやシンボルが無くてもLispと呼ぶべきだと思います
まず、Lisp は CommonLisp ではない
Lisp は Scheme ではない
次に
ttp://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
この↑Lisp1.5 は Lisp であるとする (おそらく、誰も異議をはさまないでしょう)
その上で、CommonLisp は Lisp であると仮定する (つまり、Lisp1.5 と CommonLisp程度の差があっても Lisp の一部であると仮定する)
当然、SchemeはLispである
逆に、SchemeはLispではないと仮定する (つまり、SchemeにもLisp1.5にもないモノがあればLispではないとする)
package にintern できる symbol がある CommonLisp は Lispではない
CommonLisp 側の言い分としては、CommonLisp はSchmeと同じくLisp系の新言語です
(Common Lisp is the modern, multi-paradigm, high-performance, compiled, ANSI-standardized, most prominent (along with Scheme) descendant of the long-running family of Lisp programming languages. )
Confusing Lisp and Common Lisp is permissible once in a human life. です
個人的には、マクロやシンボルが無くてもLispと呼ぶべきだと思います
147デフォルトの名無しさん
2015/07/19(日) 16:16:48.77ID:heZn3Xco >>140
このKURODA Hisaoって人が書いてる他のページも見たが
Abstract Syntaxの概念やこれを設定する意義を理解できない人がSemanticsについて語っても全く説得力がないね
それにSchemeの単一name space批判を自然言語での文脈依存性を持ち出してるが
自然言語の柔軟さというかいい加減さを至上の価値とするのならば所詮は知性ゼロ・常識ゼロのコンパイラやインタプリタですら処理できちゃう
普通のプログラミング言語なんてどれも失格、もちろんCommon Lispもね
理論や論理学について良く判っていない人間ほどFregeみたいな「計算機と深い関係があると世間で言われている」哲学者の名前を出したがる
このKURODA Hisaoって人が書いてる他のページも見たが
Abstract Syntaxの概念やこれを設定する意義を理解できない人がSemanticsについて語っても全く説得力がないね
それにSchemeの単一name space批判を自然言語での文脈依存性を持ち出してるが
自然言語の柔軟さというかいい加減さを至上の価値とするのならば所詮は知性ゼロ・常識ゼロのコンパイラやインタプリタですら処理できちゃう
普通のプログラミング言語なんてどれも失格、もちろんCommon Lispもね
理論や論理学について良く判っていない人間ほどFregeみたいな「計算機と深い関係があると世間で言われている」哲学者の名前を出したがる
148デフォルトの名無しさん
2015/07/19(日) 16:17:03.59ID:OiytaaWT わりと
どうでもいいよね〜 ね〜♪
_ ‐..::  ̄ ̄ ::::... 、
. ィ r'::/ ::ィ:::::::::::j:::::::ヽ::::\
,._.._ .......、._ _ /:/l! | ::|::/ |::::::::∧:::レ::l:::| :::::rヘ
ヽ :~""''.>゙' "~ ,、、''‐'、| l ::仏_ノヘ:/ ー- ハ:::!::::::|::::i
゙、'、::::::ノ:::::::_,.-=. _〜:、 /::::リy=ミ ' ィ=ミ /:::::!::::/:::::!
``、/:::::::::__....,._ `゙'Y' _.ェ-、..._ |::::{xx xx/::::::「)'|:::::::|
,.--l‐''"~..-_'.x-='"゙ー 、`'-、 lハ:仆 ..._ヽフ /:::: /´ |:::::::|
" .!-'",/ `'-‐'') /\ ` Y::::ソ勺 7イV_ !:::::::!
.-''~ >'゙:: ‐'"゙./ ヽ. __ |::/ 爻___ん'´ッ'⌒ヽ! :::::!
//::::: ', (__,、\/ /‐―一弋{、 /  ̄_)
' /::::: .:'; \ ' { :::\ /~::!
どうでもいいよね〜 ね〜♪
_ ‐..::  ̄ ̄ ::::... 、
. ィ r'::/ ::ィ:::::::::::j:::::::ヽ::::\
,._.._ .......、._ _ /:/l! | ::|::/ |::::::::∧:::レ::l:::| :::::rヘ
ヽ :~""''.>゙' "~ ,、、''‐'、| l ::仏_ノヘ:/ ー- ハ:::!::::::|::::i
゙、'、::::::ノ:::::::_,.-=. _〜:、 /::::リy=ミ ' ィ=ミ /:::::!::::/:::::!
``、/:::::::::__....,._ `゙'Y' _.ェ-、..._ |::::{xx xx/::::::「)'|:::::::|
,.--l‐''"~..-_'.x-='"゙ー 、`'-、 lハ:仆 ..._ヽフ /:::: /´ |:::::::|
" .!-'",/ `'-‐'') /\ ` Y::::ソ勺 7イV_ !:::::::!
.-''~ >'゙:: ‐'"゙./ ヽ. __ |::/ 爻___ん'´ッ'⌒ヽ! :::::!
//::::: ', (__,、\/ /‐―一弋{、 /  ̄_)
' /::::: .:'; \ ' { :::\ /~::!
149デフォルトの名無しさん
2015/07/19(日) 17:56:45.41ID:D56BGbCW チンコも関係ないもんねぇ
150デフォルトの名無しさん
2015/07/19(日) 17:57:39.68ID:KxDpt4xY これで133も満足だね
151デフォルトの名無しさん
2015/07/19(日) 18:28:12.53ID:yGfbtuav 確かに言語拡張でarduinoと連携してドローンを自動航行できますとか言えた方がかっこいいよな
方言作れるとか書かれてもLisp界隈の事情知らん人間にゃ意味不明だし
方言作れるとか書かれてもLisp界隈の事情知らん人間にゃ意味不明だし
152SCHEME餃子 ◆8X2XSCHEME
2015/07/19(日) 20:49:45.79ID:bZkSJoy2153デフォルトの名無しさん
2015/07/19(日) 22:15:40.89ID:+t5BUUhH 言語は大きい会社や団体が開発してることがほとんど。なので妙な政治意図で故意に機能が削られたりが良くある。マクロありとこういうのは無視出来る。だいたいは誰かが便利なマクロを公開してくれる
154デフォルトの名無しさん
2015/07/20(月) 00:59:43.37ID:jCSJmRBw なんで誰もcl-contを持ち出さないんだ
155デフォルトの名無しさん
2015/07/20(月) 01:22:41.63ID:8KYV1D+J だって、>133の言い掛かりと言語レベルでの継続の必要性とは、まるで関係がないんだものw
156デフォルトの名無しさん
2015/07/20(月) 02:49:25.74ID:kupXshGu フル継続の後付けが難しいのは事実だろ。
cl-cont も Scheme に比べればモドキに過ぎないしな。
そんでもって >>133 は継続は例に出しただけで、
マクロによる拡張が容易であっても言語が持つべきプリミティブの選択が重要だってことじゃないのか?
cl-cont も Scheme に比べればモドキに過ぎないしな。
そんでもって >>133 は継続は例に出しただけで、
マクロによる拡張が容易であっても言語が持つべきプリミティブの選択が重要だってことじゃないのか?
157デフォルトの名無しさん
2015/07/20(月) 17:42:45.96ID:aIRgWq4T 長々書いてるけどマクロでシンタックスを拡張できてもセマンティクスは変えられないってこと?
そりゃそうなんじゃない?この手の話の根はチューリング完全話と一緒だよね
機能拡張という言葉はセマンティクス拡張と同義ではないよなあ
そりゃそうなんじゃない?この手の話の根はチューリング完全話と一緒だよね
機能拡張という言葉はセマンティクス拡張と同義ではないよなあ
158デフォルトの名無しさん
2015/07/20(月) 20:43:14.25ID:ysx1EkA6 それはもう見ているものがLispのマクロによる拡張性ではなくなっている
159デフォルトの名無しさん
2015/07/20(月) 21:51:34.43ID:d8TisZYV 特殊形式以外のマクロを使わないという選択
160デフォルトの名無しさん
2015/07/20(月) 23:07:56.79ID:kupXshGu 言語の意味論とシンタクス拡張はレイヤが違う話だよ。
DSL は言語の意味論を変えはしないけど系を作ることは出来る。
物理法則は変えられないけど、物理法則の範囲内でサッカーのルールを定義したとして、それが無意味って言えるか?
DSL は言語の意味論を変えはしないけど系を作ることは出来る。
物理法則は変えられないけど、物理法則の範囲内でサッカーのルールを定義したとして、それが無意味って言えるか?
161デフォルトの名無しさん
2015/07/21(火) 18:19:47.73ID:3UOplv+P 上の方の人と偶然被ってるけど、質問。
schemeのdefine-syntaxって何ですか?
defineじゃダメなの?
schemeのdefine-syntaxって何ですか?
defineじゃダメなの?
162デフォルトの名無しさん
2015/07/22(水) 02:27:20.21ID:ta5d120D Scheme のマクロは式の評価の前に展開される。
ものすごく単純化して説明すると処理されるタイミングが違うの。
ものすごく単純化して説明すると処理されるタイミングが違うの。
163デフォルトの名無しさん
2015/07/22(水) 10:24:48.10ID:4IMBgQFd >>161
マクロなら可能だがdefineでは定義不可能なケースを上げておく
defineで定義された関数(procedure)の適用では、まず全ての引数が評価されてからその結果が関数bodyに渡されて関数の結果が決まる。
もし、全ての関数を評価せずに前から必要な分だけ評価する関数を書きたい場合、defineでは無理。その場合はdefineは-syntaxなどをつかってマクロを定義することになる。
マクロは
>>162が述べているように第一段階としてSchemeのS式を生成し、第二段階でその生成されたS式を評価するわけだが、第一段階ではマクロの引数は評価されない点が重要。
それによって、defieとは異なり一部の引数をのみ評価することが可能となる。
or関数はその一例だな
もしdefineでmy_orを定義しようとすると全ての引数を評価するという無駄な関数となるわけだ。
もしaがtrueなら
(or a b c d e)でb以下は評価不要
が(define my_or ……)とすると
aからeまでを必ず評価してしまう
マクロなら可能だがdefineでは定義不可能なケースを上げておく
defineで定義された関数(procedure)の適用では、まず全ての引数が評価されてからその結果が関数bodyに渡されて関数の結果が決まる。
もし、全ての関数を評価せずに前から必要な分だけ評価する関数を書きたい場合、defineでは無理。その場合はdefineは-syntaxなどをつかってマクロを定義することになる。
マクロは
>>162が述べているように第一段階としてSchemeのS式を生成し、第二段階でその生成されたS式を評価するわけだが、第一段階ではマクロの引数は評価されない点が重要。
それによって、defieとは異なり一部の引数をのみ評価することが可能となる。
or関数はその一例だな
もしdefineでmy_orを定義しようとすると全ての引数を評価するという無駄な関数となるわけだ。
もしaがtrueなら
(or a b c d e)でb以下は評価不要
が(define my_or ……)とすると
aからeまでを必ず評価してしまう
164デフォルトの名無しさん
2015/07/22(水) 10:26:49.67ID:TPXSOrgT165デフォルトの名無しさん
2015/07/22(水) 10:28:22.27ID:TPXSOrgT166デフォルトの名無しさん
2015/07/22(水) 13:29:11.06ID:wcjgZ6Dx167デフォルトの名無しさん
2015/07/22(水) 21:13:51.17ID:ta5d120D168デフォルトの名無しさん
2015/07/23(木) 00:05:16.72ID:a8nLYx9Z 全部(lambda()〜)で囲って遅延評価すればなんでもできるよ
SICPでマクロが無くても問題なかったのはこのおかげ
SICPでマクロが無くても問題なかったのはこのおかげ
169デフォルトの名無しさん
2015/07/23(木) 01:48:45.97ID:6c5WF/G8170デフォルトの名無しさん
2015/07/23(木) 02:53:10.55ID:kIXXXoPi >>169
構文は第一級ではない。 (実行時に値として扱える存在ではない。)
「マクロ展開フェイズ」が完了してから「式の評価」を開始するので、実行時に束縛するのでは遅すぎるんだよ。
式ひとつごとに「展開」「評価」をする処理系でフェイズの分離を有耶無耶にしている処理系だと区別を曖昧にしてもなんとかなるのかもしれないが……
それは実装方針のひとつとしてそういうのもありえる、可能というだけ。
構文は第一級ではない。 (実行時に値として扱える存在ではない。)
「マクロ展開フェイズ」が完了してから「式の評価」を開始するので、実行時に束縛するのでは遅すぎるんだよ。
式ひとつごとに「展開」「評価」をする処理系でフェイズの分離を有耶無耶にしている処理系だと区別を曖昧にしてもなんとかなるのかもしれないが……
それは実装方針のひとつとしてそういうのもありえる、可能というだけ。
171デフォルトの名無しさん
2015/07/23(木) 03:19:31.89ID:6c5WF/G8172デフォルトの名無しさん
2015/07/28(火) 17:18:38.84ID:HAkHyXxd .oO( The Little Prover を読んだ香具師がスレの流れを作ってくれる予感 )
173デフォルトの名無しさん
2015/07/29(水) 02:05:40.80ID:CRqVMe5R なぜ自由なlispより不自由なjavascriptが流行ったのか
174デフォルトの名無しさん
2015/07/29(水) 02:07:56.15ID:c7scFQol 自由度なんてマニアしか求めてないから
175デフォルトの名無しさん
2015/07/29(水) 08:09:17.38ID:F/xNpz+P ウェブブラウザから使えるのが lisp だったら流行ったんじゃないの?
とはいえそこに lisp が採用されない理由も結局は一緒か。
とはいえそこに lisp が採用されない理由も結局は一緒か。
176デフォルトの名無しさん
2015/07/29(水) 20:06:45.42ID:amFWHOPf IE4やNN4で実装されたスクリプト言語がLISP系だったら…
少なくともfirefoxのnoscriptアドオンは不要だったろうな
少なくともfirefoxのnoscriptアドオンは不要だったろうな
177デフォルトの名無しさん
2015/07/29(水) 22:07:49.45ID:Gvu0+gpo 逆に考えるんだ、
「lisp でWebブラウザを作ればいいや」
と考えるんだ
「lisp でWebブラウザを作ればいいや」
と考えるんだ
178SCHEME餃子 ◆8X2XSCHEME
2015/07/29(水) 22:20:24.82ID:w5hc2Qux WebAssembly が一般的になれば Lisp にもワンチャンあるで
179デフォルトの名無しさん
2015/07/30(木) 00:29:45.75ID:5uamD/zW Javaがダメ言語とあの時点で判明してればなあ。
当初の予定通りschemeが組み込まれてたに違いない。
当初の予定通りschemeが組み込まれてたに違いない。
180デフォルトの名無しさん
2015/07/30(木) 00:35:22.22ID:W1QWz47r emacs で Webブラウジングが出来るんじゃ無かったか。
181デフォルトの名無しさん
2015/07/30(木) 00:51:21.10ID:bNQ7YEFA 技術系のドキュメントとかあまり凝った事してないものしかまともに見れんよ。
182SCHEME餃子 ◆8X2XSCHEME
2015/07/30(木) 01:08:52.34ID:txS92Tc7 Emacs に Webkit 載せたりしてるのもあったぞ。
Emacs 側から Webkit をどれくらい操作できるのかは知らんけど。
Emacs 側から Webkit をどれくらい操作できるのかは知らんけど。
183デフォルトの名無しさん
2015/07/30(木) 03:10:36.45ID:qAED+lXR ブラウザ競争っていかにCSSに意図通り対応してるかの勝負だし
サーバサイドならemacsでもjavaでも変わらん
サーバサイドならemacsでもjavaでも変わらん
184デフォルトの名無しさん
2015/07/30(木) 22:45:29.66ID:e7NCTD1Y いや javascript が動かないと。
ああ、其処を lisp にするって話だったか。
ああ、其処を lisp にするって話だったか。
185デフォルトの名無しさん
2015/07/30(木) 22:47:36.32ID:lQHnBAth いまだに、javascript が scheme だということについて納得できない
186デフォルトの名無しさん
2015/07/31(金) 01:38:43.67ID:aJuGxMgm 第一級の継続も末尾呼び出しの最適化もないしねぇ
手続きが無条件でクロージャになるってのがまあ当時としては特徴的ではあったけども
手続きが無条件でクロージャになるってのがまあ当時としては特徴的ではあったけども
187デフォルトの名無しさん
2015/07/31(金) 15:13:29.83ID:Dkg4afbG CLみたいな余計な装飾子が無いところはschemeと考え方が近い
末尾最適化が標準のluaのがよりschemeに近い
継続は第一級にする必要ってあんのかな
使い所が難しいし言語に例外機構が備わってればいらないし
jsはライブラリ覚えるだけでもしんどい
末尾最適化が標準のluaのがよりschemeに近い
継続は第一級にする必要ってあんのかな
使い所が難しいし言語に例外機構が備わってればいらないし
jsはライブラリ覚えるだけでもしんどい
188デフォルトの名無しさん
2015/08/01(土) 07:34:04.74ID:qWCT4wa1 今JSがコールバック地獄になってるからこそ継続がほしいんじゃん。フル継続じゃなくて限定継続でもいいから。
189デフォルトの名無しさん
2015/08/01(土) 10:30:34.72ID:c0YSrVc+ javascriptのように通信が頻繁に行われる環境で継続なんか入れたときに、例えば途中でブラウザを切ったときの継続がどうなってるのか考えるとワケ分からなくなる
schemeの継続ですら、資源を使いまくってるサーバが落ちたときにリソースのclose操作とかきちんと行われるのか不安になる
schemeの継続ですら、資源を使いまくってるサーバが落ちたときにリソースのclose操作とかきちんと行われるのか不安になる
190デフォルトの名無しさん
2015/08/02(日) 01:56:02.37ID:MF9TQU9s191デフォルトの名無しさん
2015/08/03(月) 18:40:37.91ID:zmSfrGKJ >>190
CSP?
CSP?
192デフォルトの名無しさん
2015/08/03(月) 23:15:17.18ID:TaloxJI9 継続渡しはCPS
セントラル警備保障はCSP
セントラル警備保障はCSP
193SCHEME餃子 ◆8X2XSCHEME
2015/08/04(火) 03:41:56.42ID:T8IrycSA JavaScript 処理系の Rhino は第一級継続を持ってる。 実在する以上、言語処理系レベルでは可能ってことだろ。
だけど、 Scheme 処理系でも外部のライブラリ (バインディングとか) を通過したところで継続が途切れてしまう制限を持っているものがあることからもわかるように、
継続が処理系の外の世界をまたぐのは難しいんだわ。
(※参考 Gauche のドキュメント http://practical-scheme.net/gauche/man/?l=jp&p=call/cc )
JavaScript はアプリケーションに組込んで使うタイプの言語だから、当然、外の世界とのやり取りはあたりまえで、
そこに第一級継続を持ち込んでも途切れまくりであんまり役に立たんのじゃないか?
Gauche のドキュメントには限定継続の利用を勧めるようなことも書いてあるけど、
フル継続で途切れてしまうところを越えられるって意味ではなくて、
継続の範囲を明確に書けるから変なところをまたがないように注意しやすいって意味だと思う。
だけど、 Scheme 処理系でも外部のライブラリ (バインディングとか) を通過したところで継続が途切れてしまう制限を持っているものがあることからもわかるように、
継続が処理系の外の世界をまたぐのは難しいんだわ。
(※参考 Gauche のドキュメント http://practical-scheme.net/gauche/man/?l=jp&p=call/cc )
JavaScript はアプリケーションに組込んで使うタイプの言語だから、当然、外の世界とのやり取りはあたりまえで、
そこに第一級継続を持ち込んでも途切れまくりであんまり役に立たんのじゃないか?
Gauche のドキュメントには限定継続の利用を勧めるようなことも書いてあるけど、
フル継続で途切れてしまうところを越えられるって意味ではなくて、
継続の範囲を明確に書けるから変なところをまたがないように注意しやすいって意味だと思う。
194デフォルトの名無しさん
2015/08/05(水) 21:47:02.17ID:PeKQT7A5 プログラミングGauche第2版マダー
195デフォルトの名無しさん
2015/08/05(水) 22:50:49.33ID:Vg22nrpW そういやGNU標準言語?だかのはずのguileって使われてるんだろうか
196デフォルトの名無しさん
2015/08/06(木) 08:01:11.84ID:e5V4W5I+ 待ちguile
197デフォルトの名無しさん
2015/08/06(木) 22:25:04.23ID:JI2t4Gst GNU自体微妙な団体だし
そんな団体の標準になられても気持ち悪い
そんな団体の標準になられても気持ち悪い
198デフォルトの名無しさん
2015/08/06(木) 23:00:12.98ID:lTjoYGg1 などとにわかschemerが申しております
199デフォルトの名無しさん
2015/08/06(木) 23:14:11.05ID:oTKkGTU7 guile って死んでると思ったけど、
結構頑張ってんよ
結構頑張ってんよ
200デフォルトの名無しさん
2015/08/06(木) 23:18:25.94ID:FMimP/gx unicodeサポートが微妙だったのはもう昔の話なのかな?なんかそれで使うのやめた事がある
201はちみつ餃子 ◆8X2XSCHEME
2015/08/07(金) 01:10:45.06ID:p6pvn2Md アプリケーションに組込むなら小さい実装の方がいいよな。 Guile は豪華すぎると思う。
かといってリッチな実装というカテゴリだと Racket が強いから Guile は微妙ということに……。
Guile の強みって何?
かといってリッチな実装というカテゴリだと Racket が強いから Guile は微妙ということに……。
Guile の強みって何?
202デフォルトの名無しさん
2015/08/07(金) 01:54:27.51ID:JnTUt1UO javascriptでscheme組もうと思う
クロージャあるし継続なしで末尾再帰ぐらいなら結構楽勝かな
クロージャあるし継続なしで末尾再帰ぐらいなら結構楽勝かな
203デフォルトの名無しさん
2015/08/11(火) 14:35:52.92ID:3YusrhQW204デフォルトの名無しさん
2015/08/11(火) 16:13:30.65ID:XEwrhpMG >>203
ワラタ
ワラタ
205デフォルトの名無しさん
2015/08/12(水) 16:29:28.90ID:lGV/dlKr racket で raco を使って exe 化したらやたらサイズがデカいのが出来たんだけど、
もっと小さくできないものなん?
もっと小さくできないものなん?
206デフォルトの名無しさん
2015/08/12(水) 23:13:39.90ID:G8qcToBK 自作処理系だと4KBセクタに収まるようにできる
512バイトブロック単位だが
けどschemeコアも含めたりすると結局数十KBにはなる
イメージまるごとexeにするタイプなら
参照切りまくれば小さくなるんじゃないの
512バイトブロック単位だが
けどschemeコアも含めたりすると結局数十KBにはなる
イメージまるごとexeにするタイプなら
参照切りまくれば小さくなるんじゃないの
207デフォルトの名無しさん
2015/08/16(日) 22:04:26.74ID:AZvBPnTZ Biglooの生成するcコードは恐ろしくシンプル
208デフォルトの名無しさん
2015/08/22(土) 09:25:17.20ID:F2lrgiaF そっかー。
209デフォルトの名無しさん
2015/08/25(火) 18:08:56.22ID:8WHoFpvi 初めまして。
早速ですが教えて下さい。
下のcall/ccの定義を解説できますか?
(define call/cc
(lambda (k f)
(f k (lambda (dummy-k result)
(k result)))))
早速ですが教えて下さい。
下のcall/ccの定義を解説できますか?
(define call/cc
(lambda (k f)
(f k (lambda (dummy-k result)
(k result)))))
210はちみつ餃子 ◆8X2XSCHEME
2015/09/05(土) 21:46:57.65ID:H6CjR/B1 例えば RnRS の call/cc を使ってこういうのを書いたとする。
(define (foo x)
(+ 3
(call/cc
(lambda(cc)
(if (> x 3) (cc (+ x 1)) x)))))
(display (foo 1)) (display (foo 5))
継続とは何かというのを綺麗に説明するのは難しいけど、
「残りの計算」という言葉で説明するのが一般的だね。
この例でいえば call/cc を呼出された後にするはずの計算、
すなわち「 (+ 3 」が変数 cc に入っている継続。
call/cc を呼出している外側全てと言い換えてもいいかもしれない。
(字句上の外側ではなくて実行時の外側。)
で、 >>209 の言うところの call/cc (名前がまぎらわしいから
ここでは call/cc* と変える) は残りの計算を陽に引数として
渡すバージョンということだと思う。
最初の例を call/cc* で書き直すと
(define (foo* x)
(call/cc*
(lambda(x)(+ 3 x))
(lambda(cc f)
(if (> x 3) (cc (+ x 1)) (f cc x)))))
(display (foo* 1)) (display (foo* 5))
となる。
「(+ 3」の計算を (lambda(x)(+ 3 x)) というクロージャにして渡しているのが
わかるかな。
(define (foo x)
(+ 3
(call/cc
(lambda(cc)
(if (> x 3) (cc (+ x 1)) x)))))
(display (foo 1)) (display (foo 5))
継続とは何かというのを綺麗に説明するのは難しいけど、
「残りの計算」という言葉で説明するのが一般的だね。
この例でいえば call/cc を呼出された後にするはずの計算、
すなわち「 (+ 3 」が変数 cc に入っている継続。
call/cc を呼出している外側全てと言い換えてもいいかもしれない。
(字句上の外側ではなくて実行時の外側。)
で、 >>209 の言うところの call/cc (名前がまぎらわしいから
ここでは call/cc* と変える) は残りの計算を陽に引数として
渡すバージョンということだと思う。
最初の例を call/cc* で書き直すと
(define (foo* x)
(call/cc*
(lambda(x)(+ 3 x))
(lambda(cc f)
(if (> x 3) (cc (+ x 1)) (f cc x)))))
(display (foo* 1)) (display (foo* 5))
となる。
「(+ 3」の計算を (lambda(x)(+ 3 x)) というクロージャにして渡しているのが
わかるかな。
211デフォルトの名無しさん
2015/09/05(土) 22:53:19.39ID:6dKeptfV >(+ 3 (call/ccc
式中の副作用(call/cc)は評価順序不定の罠が
判ってると思うけど一応
式中の副作用(call/cc)は評価順序不定の罠が
判ってると思うけど一応
212デフォルトの名無しさん
2015/09/05(土) 23:07:18.97ID:6dKeptfV ついでにこの式の評価順序ってR6RS以降で何か変わったのかなーと思って調べたら変わってないっぽいね
式を多用するlisp族ではついつい書いてしまうからどっちかに決めた方がいいと思うんだけどな
継続は一見副作用に見えなかったりするからややこしい
そういや評価順の問題ってトップレベルにもあったなあ
式を多用するlisp族ではついつい書いてしまうからどっちかに決めた方がいいと思うんだけどな
継続は一見副作用に見えなかったりするからややこしい
そういや評価順の問題ってトップレベルにもあったなあ
213デフォルトの名無しさん
2015/09/06(日) 07:10:29.28ID:dcG52JSd 横から初心者が何だけど、
>>209の定義のdummy-kって別に無くてもよさそうなんだけど、何か必要な理由って有るのかな?
>>209の定義のdummy-kって別に無くてもよさそうなんだけど、何か必要な理由って有るのかな?
214デフォルトの名無しさん
2015/09/06(日) 11:19:24.63ID:EuTLUxQt >>210
その例だと継続使っても使わなくても結果が変わらないので微妙。
fを適用する先も間違ってるし。
こんな感じでどうでしょう。
(define (foo x)
(call/cc
(lambda(cc)
(+ 3
(if (> x 3) (cc (+ x 1)) x)))))
(define (foo* x)
(call/cc*
(lambda (x) x)
(lambda (cc f)
(let ((ncc (lambda (x) (cc (+ 3 x)))))
(if (> x 3) (f ncc (+ x 1)) (ncc x))))))
その例だと継続使っても使わなくても結果が変わらないので微妙。
fを適用する先も間違ってるし。
こんな感じでどうでしょう。
(define (foo x)
(call/cc
(lambda(cc)
(+ 3
(if (> x 3) (cc (+ x 1)) x)))))
(define (foo* x)
(call/cc*
(lambda (x) x)
(lambda (cc f)
(let ((ncc (lambda (x) (cc (+ 3 x)))))
(if (> x 3) (f ncc (+ x 1)) (ncc x))))))
215デフォルトの名無しさん
2015/09/06(日) 11:26:17.13ID:EuTLUxQt 連投すまぬ。
引数の名前がきちんと対応していなかったのでfoo*を書きなおした。
(define (foo* x)
(call/cc*
(lambda (x) x)
(lambda (f cc)
(let ((g (lambda (x) (f (+ 3 x)))))
(if (> x 3) (cc g (+ x 1)) (g x))))))
引数の名前がきちんと対応していなかったのでfoo*を書きなおした。
(define (foo* x)
(call/cc*
(lambda (x) x)
(lambda (f cc)
(let ((g (lambda (x) (f (+ 3 x)))))
(if (> x 3) (cc g (+ x 1)) (g x))))))
216デフォルトの名無しさん
2015/09/06(日) 17:16:35.78ID:AiMOxC1Q >>215なら素直に理解できた
要するに、これは継続渡しのスタイルの中で使えるcall/ccってことか
あと、さっきの例をちょっといじって
(define (foo& x k)
(call/cc*
k
(lambda (f cc)
(let ((g (lambda (x) (f (+ 3 x)))))
(if (> x 3) (cc g x) (g x))))))
(foo& 1 (lambda (x) (display x)))
としたほうがわかりやすいかもしれない
要するに、これは継続渡しのスタイルの中で使えるcall/ccってことか
あと、さっきの例をちょっといじって
(define (foo& x k)
(call/cc*
k
(lambda (f cc)
(let ((g (lambda (x) (f (+ 3 x)))))
(if (> x 3) (cc g x) (g x))))))
(foo& 1 (lambda (x) (display x)))
としたほうがわかりやすいかもしれない
217デフォルトの名無しさん
2015/09/28(月) 20:36:46.42ID:uH2NkENy LFE(lisp flavor erlang)使ったことあるかたいますか?
どの辺が問題なんでしょうか。
バックエンドがerlangというのは大きいメリットだと考えるんですが。
どの辺が問題なんでしょうか。
バックエンドがerlangというのは大きいメリットだと考えるんですが。
218デフォルトの名無しさん
2015/09/29(火) 00:25:57.14ID:jGfSnnbY >>217
使われない理由っていうことでいうと、↓のような感じかな。
読み直したら全面的にdisってるが、おもちゃとしては面白いと思ってる
・開発リソースが少ないのでおもちゃの域を出ない
特に、Common LispもしくはClojureを置き換えるほどのライブラリ・
成熟度・勢いは無い。
・そんなに速くない
・Erlang/BEAM自体の需要が少ない
Erlangスレでも書いたことがあるんだが、開発の現場でErlangを本当に必要とする
場面というのは少ない。良くも悪くもフォーカスを絞った言語だから。
エラー処理が楽とかいう人も多いが、乗り換えるほど大きなメリットでは無い
また、現実問題として、システム全部をBEAM上に載せる必要は無い。
一部だけErlangで書けば良いし、そのために
微妙な成熟度の微妙なLisp方言を入れる必要性ってあんまり感じられない
なお、Elixirで騒いでいる人たちも、Erlang系だからってよりはRubyっぽい
関数型言語っていう表面的な特徴で一時的に騒いでいる人の方が多い
・名前がダサい。これは馬鹿にできない
使われない理由っていうことでいうと、↓のような感じかな。
読み直したら全面的にdisってるが、おもちゃとしては面白いと思ってる
・開発リソースが少ないのでおもちゃの域を出ない
特に、Common LispもしくはClojureを置き換えるほどのライブラリ・
成熟度・勢いは無い。
・そんなに速くない
・Erlang/BEAM自体の需要が少ない
Erlangスレでも書いたことがあるんだが、開発の現場でErlangを本当に必要とする
場面というのは少ない。良くも悪くもフォーカスを絞った言語だから。
エラー処理が楽とかいう人も多いが、乗り換えるほど大きなメリットでは無い
また、現実問題として、システム全部をBEAM上に載せる必要は無い。
一部だけErlangで書けば良いし、そのために
微妙な成熟度の微妙なLisp方言を入れる必要性ってあんまり感じられない
なお、Elixirで騒いでいる人たちも、Erlang系だからってよりはRubyっぽい
関数型言語っていう表面的な特徴で一時的に騒いでいる人の方が多い
・名前がダサい。これは馬鹿にできない
219デフォルトの名無しさん
2015/09/29(火) 06:19:23.89ID:nAejDDAX >・そんなに速くない
これはBEAM特有の問題なんだよね、数値計算がちょっとでもはいるととても遅い
非同期IO処理だけさせるような所だとElixir含めてErlang系はものすごく便利だけど読める人が少ないし
これはBEAM特有の問題なんだよね、数値計算がちょっとでもはいるととても遅い
非同期IO処理だけさせるような所だとElixir含めてErlang系はものすごく便利だけど読める人が少ないし
220217
2015/09/30(水) 12:49:12.74ID:dQB3jeSs221デフォルトの名無しさん
2015/10/06(火) 06:05:05.21ID:fg1OrsOi haskellのlhs2texみたいなのって
LispやSchemeにはないの?
LispやSchemeにはないの?
222デフォルトの名無しさん
2015/10/11(日) 20:09:11.90ID:03dbVZHf あかんなぁ
俺、馬鹿になってきた
年ってやつかなぁ
Common Lisp始めたけど、あれこれの関数名をすぐ忘れる。
駿馬も老いては駄馬なんとかか
俺、馬鹿になってきた
年ってやつかなぁ
Common Lisp始めたけど、あれこれの関数名をすぐ忘れる。
駿馬も老いては駄馬なんとかか
223デフォルトの名無しさん
2015/10/11(日) 20:09:38.43ID:03dbVZHf 因みにことし還暦な
224デフォルトの名無しさん
2015/10/12(月) 12:06:44.75ID:traP+X+b >>223
不惑や知命でもぼける人はぼけちゃうからねぇ
不惑や知命でもぼける人はぼけちゃうからねぇ
225デフォルトの名無しさん
2015/10/13(火) 07:25:53.71ID:g15eXpvx Schemeでsyntax-case使うとき、マッチングの第一要素にkって名前をよく見るし使うけどこのネーミングになんか由来とか理由とかあります?
なんで?って聞かれて答えられないんですが
なんで?って聞かれて答えられないんですが
226はちみつ餃子 ◆8X2XSCHEME
2015/10/13(火) 08:36:38.14ID:4fZWo+Bs ソースがあるわけじゃないが自分は keyword の k だと思ってた。
仕様の中にある例でも k 使ってるからほとんどの人はそれに倣ってるだけだろうけど。
仕様の中にある例でも k 使ってるからほとんどの人はそれに倣ってるだけだろうけど。
227デフォルトの名無しさん
2015/10/13(火) 09:30:22.70ID:3mL35rpK i と j じゃ整数の印象が強いんで、次の k を使ってるだけかと思った
228はちみつ餃子 ◆8X2XSCHEME
2015/10/13(火) 10:41:06.68ID:4fZWo+Bs このあたりの例で使ってる i はたぶん identifier の i じゃないかと思う。
http://www.r6rs.org/final/html/r6rs-lib/r6rs-lib-Z-H-13.html#node_sec_12.7
t は疑問の余地なく temporary だな。 p は pattern で e は expression ってところか。
http://www.r6rs.org/final/html/r6rs-lib/r6rs-lib-Z-H-13.html#node_sec_12.7
t は疑問の余地なく temporary だな。 p は pattern で e は expression ってところか。
229デフォルトの名無しさん
2015/10/13(火) 20:14:54.52ID:gIZRbrc0 >>228
scheme限定のイディオムなんかね
clojureだと
(defn hoge [coll] (brabrabra))
coll(collection)をわたすんだぞーってイディオムになってるみたいな?
scheme限定のイディオムなんかね
clojureだと
(defn hoge [coll] (brabrabra))
coll(collection)をわたすんだぞーってイディオムになってるみたいな?
230はちみつ餃子 ◆8X2XSCHEME
2015/10/13(火) 21:10:40.41ID:4fZWo+Bs パターン変数には全部頭に ? を付けるとかいう流儀もあるし、
そんなに確立したものではないと思うけどね。
そんなに確立したものではないと思うけどね。
231デフォルトの名無しさん
2015/10/23(金) 16:08:32.51ID:vFqEchXB マクロの空をつらぬいて
232デフォルトの名無しさん
2015/10/23(金) 18:13:51.87ID:vFqEchXB 継続にkを使う人達もいる
233デフォルトの名無しさん
2015/10/23(金) 19:54:46.64ID:PxOWJO4j >>232
constantな値にkFoo,kBarってつける習慣もあるからcontinuationにkプレフィックスはそんなに違和感持たないなぁ
class指向な処理系で classって名前使えないからClass klass = someObject.class って書くようなものかと思うのであるよ。
;;; 実は歌の続き?としばらく悩んだ
constantな値にkFoo,kBarってつける習慣もあるからcontinuationにkプレフィックスはそんなに違和感持たないなぁ
class指向な処理系で classって名前使えないからClass klass = someObject.class って書くようなものかと思うのであるよ。
;;; 実は歌の続き?としばらく悩んだ
234デフォルトの名無しさん
2015/11/01(日) 09:01:12.26ID:FL14q5P6 理解重視でオレオレlisp処理系をhaskellで書いててこれを改良しようとしてます
環境は[(名前,値)]というわかりやすい実装でラムダ式本体部を引用するとこんなのです
let env' = (zip param args) ++ closure ++ env in
last $ map (eval env') body
これって開発言語のスタックを使った実装になりますよね?
このコードはapplyの一部で、evalとapplyの相互再起の中の1コマなのですが
よく末尾再帰とかいいますがああいうのはどうやって判定するのですか?
環境は[(名前,値)]というわかりやすい実装でラムダ式本体部を引用するとこんなのです
let env' = (zip param args) ++ closure ++ env in
last $ map (eval env') body
これって開発言語のスタックを使った実装になりますよね?
このコードはapplyの一部で、evalとapplyの相互再起の中の1コマなのですが
よく末尾再帰とかいいますがああいうのはどうやって判定するのですか?
235デフォルトの名無しさん
2015/11/06(金) 12:34:46.91ID:R0CwBCQp そろそろ何か書き込みないとスレが落ちる?
236デフォルトの名無しさん
2015/11/06(金) 15:41:26.45ID:vgByJdCj それは大変だ
237デフォルトの名無しさん
2015/11/06(金) 19:56:44.02ID:FxVaFUyP238デフォルトの名無しさん
2015/11/06(金) 22:19:04.69ID:dYcAh74V schemeはいい線行ってたと思う
不幸なのはほとんどの機能がjavascriptで足りてしまったこと
大多数の人は末尾再帰すらないjavascriptでいいと言う
繰り返し処理と言えばループしか脳から出てこないんだから
再帰はおろか末尾再帰なんか知らないだろう
再帰処理もスタック構造のコンテナとループで同じことができるんだから
実際知らなくても困らない
不幸なのはほとんどの機能がjavascriptで足りてしまったこと
大多数の人は末尾再帰すらないjavascriptでいいと言う
繰り返し処理と言えばループしか脳から出てこないんだから
再帰はおろか末尾再帰なんか知らないだろう
再帰処理もスタック構造のコンテナとループで同じことができるんだから
実際知らなくても困らない
239デフォルトの名無しさん
2015/11/07(土) 00:27:31.67ID:iMLfUYTc JavaScriptの末尾再帰はもうすぐ実装されるし高階関数もずいぶん前からあるが
240はちみつ餃子 ◆8X2XSCHEME
2015/11/07(土) 01:25:53.28ID:OLp/9/w8 WebAssembly が一般的になったら JavaScript の勢力は (クライアントサイドでは) 過去の資産を除いてフェードアウトしそう。
そのときこそ Scheme の復権が狙えるかもしれないぞ。
そのときこそ Scheme の復権が狙えるかもしれないぞ。
241デフォルトの名無しさん
2015/11/07(土) 11:42:14.37ID:Lam93S6q >>234
末尾コンテキストを判定する
末尾コンテキストの実行時はフレームで確保したスタックは使われない
よってその直前で削除してしまえるから関数呼び出し等でもループに置き換えられる
(define a (lambda (x y) (b x y) (a x y)))
の最後の(a x y)は末尾コンテキスト
最後のa呼び出し前のx yの引数の積み上げが完了した時点でaのフレームは削除できる
削除した後aを呼び出すとまた同じフレームレベルでaの処理が開始する
末尾コンテキストを判定する
末尾コンテキストの実行時はフレームで確保したスタックは使われない
よってその直前で削除してしまえるから関数呼び出し等でもループに置き換えられる
(define a (lambda (x y) (b x y) (a x y)))
の最後の(a x y)は末尾コンテキスト
最後のa呼び出し前のx yの引数の積み上げが完了した時点でaのフレームは削除できる
削除した後aを呼び出すとまた同じフレームレベルでaの処理が開始する
242デフォルトの名無しさん
2015/11/07(土) 12:03:06.20ID:Lam93S6q 末尾コンテキストの伝播
tを末尾コンテキストとする
(lambda ()・・・t)
(if test t t)
(begin ・・・t)
(lambda()・・・・t))
組み合わせると次のように末尾コンテキストが伝播する
(lambda ()・・(begin ・・・×)・・・(begin ・・・(if test t t)))
×は親が末尾コンテキストでの実行でなければ子も末尾コンテキストにはならない事を示す
tを末尾コンテキストとする
(lambda ()・・・t)
(if test t t)
(begin ・・・t)
(lambda()・・・・t))
組み合わせると次のように末尾コンテキストが伝播する
(lambda ()・・(begin ・・・×)・・・(begin ・・・(if test t t)))
×は親が末尾コンテキストでの実行でなければ子も末尾コンテキストにはならない事を示す
243デフォルトの名無しさん
2015/11/07(土) 12:15:41.27ID:Lam93S6q 関数適用の末尾コンテキスト
上で(a x y)を末尾コンテキストと書いたが
より正確にはtの呼び出し時点が末尾コンテキストとなる
表記的には(t 引数)となるがt自身がいつ評価されるかはschemeでは規定されていない
よって処理系の都合順にt x yを評価した後、tの呼び出し前に末尾コンテキスト処理(フレーム削除等)が発生する
上で(a x y)を末尾コンテキストと書いたが
より正確にはtの呼び出し時点が末尾コンテキストとなる
表記的には(t 引数)となるがt自身がいつ評価されるかはschemeでは規定されていない
よって処理系の都合順にt x yを評価した後、tの呼び出し前に末尾コンテキスト処理(フレーム削除等)が発生する
244デフォルトの名無しさん
2015/11/07(土) 12:37:03.29ID:Lam93S6q 末尾コンテキストが移動する構文
(set! var exp)
(while test body)
set!はvarがフレーム内変数ならexpの評価、フレーム外変数ならvarをexpの結果で破壊した時点が末尾コンテキストになる
whileはtestで偽になった時点かbody内からbreak等で抜けた時点だが、
そもそもschemeでのループ構文は末尾再帰の構文糖衣として定義されることが多く、この限りではない
継続呼び出しの末尾コンテキスト
継続呼び出しは継続を保存した位置に移動すると共に環境も入れ替わるため
末尾コンテキストの対象外となる(考慮しなくて良い)
(set! var exp)
(while test body)
set!はvarがフレーム内変数ならexpの評価、フレーム外変数ならvarをexpの結果で破壊した時点が末尾コンテキストになる
whileはtestで偽になった時点かbody内からbreak等で抜けた時点だが、
そもそもschemeでのループ構文は末尾再帰の構文糖衣として定義されることが多く、この限りではない
継続呼び出しの末尾コンテキスト
継続呼び出しは継続を保存した位置に移動すると共に環境も入れ替わるため
末尾コンテキストの対象外となる(考慮しなくて良い)
245デフォルトの名無しさん
2015/11/09(月) 10:47:59.41ID:zOMtLBxM http://tech.grammarly.com/blog/posts/Running-Lisp-in-Production.html
割と知られている英文法チェッカーがCommon Lispだった
割と知られている英文法チェッカーがCommon Lispだった
246デフォルトの名無しさん
2015/11/09(月) 15:11:05.97ID:nI2VMo2q ドクじゃん
247234
2015/11/09(月) 20:47:58.44ID:uBSPw/8w >>241-244 素晴らしいIDですね
末尾コンテキストの伝播については理解できたと思います
ifは末尾コンテキストが2つに増えるので
もしif文が末尾に連なってたら末尾コンテキストがたくさんになるわけですね
これを使って末尾コンテキスト判定をするis-tailrecみたいなのを作れば
考え方として、関数fの定義でもしis-tailrecが真となる箇所以外でfが
呼ばれていれば末尾再帰でないと判定すればいいですよね
set!の部分がちょっとまだ理解できてませんが考えてみます
末尾コンテキストの伝播については理解できたと思います
ifは末尾コンテキストが2つに増えるので
もしif文が末尾に連なってたら末尾コンテキストがたくさんになるわけですね
これを使って末尾コンテキスト判定をするis-tailrecみたいなのを作れば
考え方として、関数fの定義でもしis-tailrecが真となる箇所以外でfが
呼ばれていれば末尾再帰でないと判定すればいいですよね
set!の部分がちょっとまだ理解できてませんが考えてみます
2015/11/10(火) 21:05:11.25ID:HCVWy2wR
249デフォルトの名無しさん
2015/11/11(水) 14:40:05.71ID:oQgebZ0I Haskellのclassとinstanceに相当する型演算をSchemeで擬似的に作る方法ないのだろうか
250はちみつ餃子 ◆8X2XSCHEME
2015/11/11(水) 17:14:51.88ID:ECN7vnC1 Picrin にはそんな感じのオブジェクトシステムが入ってるよ。
作者による紹介記事がある。
http://wasabiz.hatenablog.com/entry/2015/01/12/170025
クラスじゃなくてプロトコルという名前になってるけど、やってることはほぼ同じ。
実装はこのあたり。 意外に小さい。
https://github.com/picrin-scheme/picrin/blob/master/contrib/50.class/piclib/picrin/class.scm
https://github.com/picrin-scheme/picrin/blob/master/contrib/80.protocol/piclib/picrin/protocol.scm
作者による紹介記事がある。
http://wasabiz.hatenablog.com/entry/2015/01/12/170025
クラスじゃなくてプロトコルという名前になってるけど、やってることはほぼ同じ。
実装はこのあたり。 意外に小さい。
https://github.com/picrin-scheme/picrin/blob/master/contrib/50.class/piclib/picrin/class.scm
https://github.com/picrin-scheme/picrin/blob/master/contrib/80.protocol/piclib/picrin/protocol.scm
251デフォルトの名無しさん
2015/11/11(水) 18:24:03.85ID:hvXzryLw ピクミンかと思ったらピクリン
252デフォルトの名無しさん
2015/11/17(火) 21:41:10.87ID:j2zk6VQe253デフォルトの名無しさん
2015/11/18(水) 02:32:25.06ID:3JxuKBB4 うーん、、、、
254デフォルトの名無しさん
2015/11/18(水) 06:45:07.50ID:D8xoadz9255デフォルトの名無しさん
2015/11/18(水) 13:46:02.89ID:mDzX1/ZQ >>252
これ読んでいるだけでも、すごく勉強になるよな
これ読んでいるだけでも、すごく勉強になるよな
256デフォルトの名無しさん
2015/11/19(木) 00:09:30.94ID:d0YkbYhs なるよな?
同意を求めないで欲しい
気持ち悪いbot作ったなーとしか…
同意を求めないで欲しい
気持ち悪いbot作ったなーとしか…
257はちみつ餃子 ◆8X2XSCHEME
2015/11/19(木) 00:38:47.15ID:cuUnetrq SICP は専門書なわけで、どこの 140 文字を抜き出したって勉強になるってほどの情報量ないよ。
258デフォルトの名無しさん
2015/11/19(木) 00:46:43.61ID:dXEAV4H+ 情報量うんぬん以前に
何言ってんのかわからない
日本語なのか
これは
何言ってんのかわからない
日本語なのか
これは
259デフォルトの名無しさん
2015/11/19(木) 00:51:29.41ID:dXEAV4H+ ワードサラダにしか見えん
260デフォルトの名無しさん
2015/11/19(木) 01:04:54.84ID:H4K8uZul 変な翻訳を抜き出して笑うためのbotだと思うんですけど
SICPで翻訳と言えば例の翻訳炎上のはてブ勢の気持ち悪いこと気持ち悪いこと
SICPで翻訳と言えば例の翻訳炎上のはてブ勢の気持ち悪いこと気持ち悪いこと
261デフォルトの名無しさん
2015/11/19(木) 02:17:36.76ID:sAMKa/4u アスぺの人、和田訳を執拗に擁護するのはなんなんだろうな
専門知識で足りない英語力を補っているから、minghai訳よりはマシって程度なのに
専門知識で足りない英語力を補っているから、minghai訳よりはマシって程度なのに
263デフォルトの名無しさん
2015/11/20(金) 01:28:32.20ID:sUCS+w9M 和田訳こそ英文が読めなくて、日本語を適当にでっちあげた
真鍋のいうところの腐臭のする糞訳なのに、
どういうわけか擁護するんだよな
真鍋のいうところの腐臭のする糞訳なのに、
どういうわけか擁護するんだよな
264デフォルトの名無しさん
2015/11/20(金) 21:27:40.60ID:ph+B6Bvv 擁護とか一体何と戦ってるんだこのおっさん
265デフォルトの名無しさん
2015/11/20(金) 22:14:38.36ID:qdgYLPrR 照り輝くbotはもともと糞訳をまとめたおもしろbotだろ
そもそも照り輝く自体相当前からネタにされてるし
そもそも照り輝く自体相当前からネタにされてるし
266デフォルトの名無しさん
2015/11/21(土) 00:58:11.83ID:ACMxKEDN 糞約とはいえ他人の著作物云々の問題はクリアしてるのか?
267デフォルトの名無しさん
2015/11/21(土) 01:23:42.79ID:ksFSpKOf268デフォルトの名無しさん
2015/11/21(土) 02:17:10.09ID:kXonXFHs269デフォルトの名無しさん
2015/11/21(土) 03:16:47.47ID://2/HV1n 推奨NGワード: illmnt
270デフォルトの名無しさん
2015/11/21(土) 04:49:29.21ID:pdN059iT 機械翻訳みたいな変な訳ばっかり
こういうのダメ出しするのも出版社の仕事だろ
アメリカの教科書はリーダブルじゃなきゃならないと聞くが
悪文で書いた教科書なんてのはそれこそ日本の悪文化だよ
ましてMITの教科書を改悪、悪文化するのはおかしいゾ
こういうのダメ出しするのも出版社の仕事だろ
アメリカの教科書はリーダブルじゃなきゃならないと聞くが
悪文で書いた教科書なんてのはそれこそ日本の悪文化だよ
ましてMITの教科書を改悪、悪文化するのはおかしいゾ
271デフォルトの名無しさん
2015/11/21(土) 04:50:19.99ID:pdN059iT まして、はおかしいか。俺も悪文化。
272デフォルトの名無しさん
2015/11/21(土) 09:08:25.40ID:bRToh1Ye273デフォルトの名無しさん
2015/11/28(土) 18:52:48.98ID:D0YQLzhL プログラミングGauche尼で売り切れてオライリーが入荷待ちなんだけど
絶版?第2版?
絶版?第2版?
274デフォルトの名無しさん
2015/12/02(水) 00:31:49.93ID:amR8vvu9 >>213
ラムダ式返したい
ラムダ式返したい
275デフォルトの名無しさん
2015/12/15(火) 02:43:12.56ID:SCkT4Wmk 本当はLisp使いたいのに急ぎだとpythonとかbashで使い捨てスクリプトを書いてしまう
276デフォルトの名無しさん
2015/12/15(火) 02:54:48.05ID:RaTSkkL3 そうか。
277デフォルトの名無しさん
2015/12/15(火) 12:22:58.17ID:HzjVt2sa それで良い。
278デフォルトの名無しさん
2015/12/16(水) 10:19:05.23ID:7XnugsYC (定義 (長さ リスト)
(もし (空? リスト)
0
(加算 1 (長さ (残余 リスト)))))
(もし (空? リスト)
0
(加算 1 (長さ (残余 リスト)))))
279デフォルトの名無しさん
2015/12/16(水) 13:19:26.38ID:RBWQyPz5 (定義 (右から畳み込み リスト 乗算 単位元)
(もし (空? リスト) 単位元
(乗算 (車 リスト) (右から畳み込み (残余 リスト) 乗算 単位元))))
(もし (空? リスト) 単位元
(乗算 (車 リスト) (右から畳み込み (残余 リスト) 乗算 単位元))))
280デフォルトの名無しさん
2015/12/16(水) 13:30:51.38ID:7BuiFt2H 「車」…w
281デフォルトの名無しさん
2015/12/16(水) 14:27:37.96ID:V4z/b3Ey (管 リスト)
282デフォルトの名無しさん
2015/12/17(木) 08:55:39.39ID:hUsjEVq7 Schemeを勉強しだす→「なんてシンプルかつエレガントなんだ!これさえあれば何でもできそうだ!」
Schemeで何か作ろうとしだす→「なんて面倒なんだ!CommonLispみたいに統一してくれよ!」
「R{5,6,7}RS準拠だぞ」
「けどここは各実装で好きにしていいぞ」
「皆自分でSchemeを作るんだぞ」
Schemeで何か作ろうとしだす→「なんて面倒なんだ!CommonLispみたいに統一してくれよ!」
「R{5,6,7}RS準拠だぞ」
「けどここは各実装で好きにしていいぞ」
「皆自分でSchemeを作るんだぞ」
283デフォルトの名無しさん
2015/12/17(木) 19:15:09.86ID:WdhrFOHs Scheme は「俺自身が Scheme になる事だ」が奥義だから
284デフォルトの名無しさん
2015/12/17(木) 23:13:43.49ID:kltDf5Nv (もしもし? もしもし? ただいま留守にしております お掛けになった電話番号は)
285デフォルトの名無しさん
2015/12/18(金) 00:12:22.66ID:OqK6hc4t > 俺自身がscheme
それは違うが
それは違うが
286デフォルトの名無しさん
2015/12/18(金) 02:10:52.71ID:FhfWj/9P 真の Scheme は世界で俺だけだもの
287デフォルトの名無しさん
2015/12/18(金) 02:18:32.82ID:OqK6hc4t 「俺の母語はschemeだぞい」とかいうなら分かるんだけど。
俺がschemeってどういうことよ?もっと具体的に。
俺がschemeってどういうことよ?もっと具体的に。
288デフォルトの名無しさん
2015/12/18(金) 06:05:40.32ID:dzRG5p0J 俺がガンダムだ! 的な。
289デフォルトの名無しさん
2015/12/18(金) 11:39:18.75ID:8LE7CEy/ 今度生まれる時は側溝に生まれたい的な
290デフォルトの名無しさん
2015/12/18(金) 12:10:58.73ID:eorQTm9j マジレスするとオサレマンガの台詞
291デフォルトの名無しさん
2015/12/18(金) 21:41:51.11ID:px/TD8Yb > 俺自身がscheme
これは自分にはかなり納得がいく言い方だった。
自分はC++が主なんだけど、schemeを学んでから、その知見を取り入れて、
C++のスキルが顕著に上がったと思う。
自分の書くコードの質も、先輩の書いたコードに対する読解力も。
なんというか、schemeで考えてC++で書くようになったというか。
これは自分にはかなり納得がいく言い方だった。
自分はC++が主なんだけど、schemeを学んでから、その知見を取り入れて、
C++のスキルが顕著に上がったと思う。
自分の書くコードの質も、先輩の書いたコードに対する読解力も。
なんというか、schemeで考えてC++で書くようになったというか。
292デフォルトの名無しさん
2015/12/20(日) 20:34:16.08ID:jgTVJogO lispの入門書って何がおすすめなん?Land of Lisp?The little schemer(scheme手習い)?
293デフォルトの名無しさん
2015/12/20(日) 20:39:06.04ID:jgTVJogO >>292
(質問スレに書くべきだったけど許して)
(質問スレに書くべきだったけど許して)
294デフォルトの名無しさん
2015/12/20(日) 21:58:56.19ID:l3TBRkh9 Realm of Racketの翻訳って誰かやってんのかな?shiroさん?
295デフォルトの名無しさん
2015/12/20(日) 22:10:47.02ID:/efUAUTJ296デフォルトの名無しさん
2015/12/20(日) 22:36:57.89ID:jgTVJogO >>295
ありがとうございます
ありがとうございます
297デフォルトの名無しさん
2015/12/20(日) 22:38:45.09ID:AMk4fv31 >>292
プログラミングGauche
プログラミングGauche
298デフォルトの名無しさん
2015/12/21(月) 02:08:17.88ID:4Mx5VRPH >>292
前者は読んでておもしろい、後者はまじめに勉強にはなる
お金あるならどっちも読むと良いよ
あとは上の方に書かれてるけどソースコードはとっても勉強になるけどこれは結構しんどいと思うな(割と時間かかるから)。
前者は読んでておもしろい、後者はまじめに勉強にはなる
お金あるならどっちも読むと良いよ
あとは上の方に書かれてるけどソースコードはとっても勉強になるけどこれは結構しんどいと思うな(割と時間かかるから)。
299はちみつ餃子 ◆8X2XSCHEME
2015/12/21(月) 04:18:41.62ID:hvoGiEsW 基本的な考え方くらいはおさえとかないとソースから意図を読むのは難しいと思うよ。
300デフォルトの名無しさん
2015/12/21(月) 06:40:36.36ID:aas71e/k301デフォルトの名無しさん
2015/12/21(月) 23:04:52.99ID:yR7SLlOg ttp://www.amazon.co.jp/dp/B018KXY55Y/
「LISPでわかる!プログラミング・自由に生きるための英語学習法」
何この…何これ?
kindleでサンプル見たんだけど、これで理解できる初学者いるの?
「LISPでわかる!プログラミング・自由に生きるための英語学習法」
何この…何これ?
kindleでサンプル見たんだけど、これで理解できる初学者いるの?
302デフォルトの名無しさん
2015/12/22(火) 00:34:26.45ID:qJHZYnmU 一人称が予な著者らしい
https://twitter.com/tadachika_j
https://twitter.com/tadachika_j
303デフォルトの名無しさん
2015/12/22(火) 04:34:23.25ID:3g+tKjgA 個人出版のデジタル本で1200円は高いな。
50円なら買ったかもしれないのに。
50円なら買ったかもしれないのに。
304デフォルトの名無しさん
2015/12/22(火) 16:23:19.45ID:FIUTNb/j >>301
Kindle出版のオナニー書籍にしか見えないんだけど内容どうだった?(prime会員だからタダでよめるんだけどなんか触るのイヤな感じ)
Kindle出版のオナニー書籍にしか見えないんだけど内容どうだった?(prime会員だからタダでよめるんだけどなんか触るのイヤな感じ)
305デフォルトの名無しさん
2015/12/23(水) 14:03:22.77ID:f3OkJGUt miniKanrenの日本語解説本
誰も書かないなら個人出版で出しちゃうぞ
誰も書かないなら個人出版で出しちゃうぞ
306デフォルトの名無しさん
2015/12/23(水) 14:48:16.43ID:7PvFiWtw307デフォルトの名無しさん
2015/12/27(日) 21:55:10.69ID:3xQA5Ryh 自分もサンプル版を読んでみたけど、言語の解説という雰囲気ではなく、自分の勉強した内容を箇条書きっぽく書いてあるように感じた。
サンプルは最初の方しか読めないから、LISPそのものの説明のところだけしか読めてないけど、後半の応用部分は面白くなる可能性はあるかもしれないな。
英語学習法の部分については、
http://primitive-lisp.blog.so-net.ne.jp
独学でこのくらい書けるようになるのであればスゴイと思うし、ブログを日本から発信するのには十分かと。
でもネイティブの人はカタコトのように感じるレベル。
サンプルは最初の方しか読めないから、LISPそのものの説明のところだけしか読めてないけど、後半の応用部分は面白くなる可能性はあるかもしれないな。
英語学習法の部分については、
http://primitive-lisp.blog.so-net.ne.jp
独学でこのくらい書けるようになるのであればスゴイと思うし、ブログを日本から発信するのには十分かと。
でもネイティブの人はカタコトのように感じるレベル。
308307
2015/12/27(日) 21:56:57.03ID:3xQA5Ryh 英語学習法の部分はサンプルに入ってないので、自分テキトーなことを言ってるぜ!?
309デフォルトの名無しさん
2015/12/28(月) 08:21:49.27ID:7tFHoB70 Lispの別スレ出来てる
310デフォルトの名無しさん
2015/12/28(月) 09:49:46.17ID:1a7EtF6d キチガイコテスレじゃん
311デフォルトの名無しさん
2015/12/31(木) 23:31:36.96ID:qS77pLNQ Deep Learningの人達はpythonフレームワークを乱立させてるけどlispのマクロ下位互換マクロ作ってるだけなのにいつ気がつくんだろ。lisp使えばフレームワークとかそもそも必要ないのに
312デフォルトの名無しさん
2016/01/01(金) 03:49:37.78ID:xJBQ4MUG フレームワークを乱立させやすい言語は流行る
Lispもそうだった
Lispもそうだった
313デフォルトの名無しさん
2016/01/01(金) 16:20:50.48ID:0qf9SqH8 え、あ、うん
314デフォルトの名無しさん
2016/01/04(月) 02:33:01.83ID:cqU/6Lnz Theanoとかlispで書き直したらかなりスッキリするのに
ごちゃごちゃしすぎ
ごちゃごちゃしすぎ
315デフォルトの名無しさん
2016/01/04(月) 17:11:28.45ID:Bo8UyxL4 他人の書いたpythonコードを解析しないといけなくなって
「めんどくさい
何でLispで書かないんだ
解析させられる俺の身にもなれ
Lispなら長さが半分以下の読みやすいコードになるのに」
という感情がとても高まってきている
「めんどくさい
何でLispで書かないんだ
解析させられる俺の身にもなれ
Lispなら長さが半分以下の読みやすいコードになるのに」
という感情がとても高まってきている
316デフォルトの名無しさん
2016/01/05(火) 12:25:36.29ID:o0yppUdN お前が書いたlispのコードの方がもっとひどいんだがw
317デフォルトの名無しさん
2016/01/06(水) 02:03:24.51ID:DSMnLqrW windows内蔵言語のvbscriptでschemeモドキを作ろうと目論んでる
つってもちゃんとやるのはマクロと末尾再帰だけでね
variant型使ったリスト処理がどんだけ遅くなるか見ものだ
つってもちゃんとやるのはマクロと末尾再帰だけでね
variant型使ったリスト処理がどんだけ遅くなるか見ものだ
318デフォルトの名無しさん
2016/01/08(金) 22:26:33.75ID:V05Ed+eX 100Gぐらいのメモリーに入りきらないデータを扱う時にpythonではジェネレター式というのを使うけどschemeやlispではどういうふうにするの?
319はちみつ餃子 ◆8X2XSCHEME
2016/01/09(土) 00:13:08.70ID:5sGg2rIv 典型的なのはストリーム (srfi-41)
http://srfi.schemers.org/srfi-41/srfi-41.html
ジェネレータの形にする場合もある。
http://practical-scheme.net/gauche/man/?l=jp&p=gauche.generator
Gauche だと遅延シーケンスがある。
でも、これは処理系自体に組み込みじゃないと後付けでは難しいので遅延リストに依存したコードは移植性に難があるかもしれない。
http://practical-scheme.net/gauche/man/?l=jp&p=%E9%81%85%E5%BB%B6%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9
単なるバイト列やテキストであればカスタムポートも使いやすいと思う。
http://srfi.schemers.org/srfi-41/srfi-41.html
ジェネレータの形にする場合もある。
http://practical-scheme.net/gauche/man/?l=jp&p=gauche.generator
Gauche だと遅延シーケンスがある。
でも、これは処理系自体に組み込みじゃないと後付けでは難しいので遅延リストに依存したコードは移植性に難があるかもしれない。
http://practical-scheme.net/gauche/man/?l=jp&p=%E9%81%85%E5%BB%B6%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9
単なるバイト列やテキストであればカスタムポートも使いやすいと思う。
320デフォルトの名無しさん
2016/01/14(木) 11:57:12.25ID:PerBWHT+ https://github.com/dherman/c.rkt
これでC言語のプログラムを自由に加工したりできるっぽいのだけど
ドキュメントらしきものがない
誰かexample usageみたいなものどこかにないか知りませんか?
使えればかなり便利そうなんだけど
これでC言語のプログラムを自由に加工したりできるっぽいのだけど
ドキュメントらしきものがない
誰かexample usageみたいなものどこかにないか知りませんか?
使えればかなり便利そうなんだけど
321デフォルトの名無しさん
2016/01/14(木) 13:17:40.77ID:6Qr9td66 Racket はなんだか独自の世界で生きてるよね
322はちみつ餃子 ◆8X2XSCHEME
2016/01/14(木) 17:10:36.81ID:c+6p1wle323デフォルトの名無しさん
2016/01/16(土) 22:19:21.86ID:80NpOkXH Edi Weitzの新著の書評誰かplz.
324デフォルトの名無しさん
2016/01/19(火) 19:19:06.15ID:85OnXpOR325デフォルトの名無しさん
2016/01/19(火) 22:51:56.91ID:GxT4J/Gp326はちみつ餃子 ◆8X2XSCHEME
2016/01/26(火) 01:38:54.53ID:k1cf3USC327デフォルトの名無しさん
2016/03/20(日) 14:40:59.70ID:B3NGK1ug schmeme 手習いを反復してやってます
(cond ((eq? a (car lat)) ....
で eq? が真を返すときの実行文の文法がわかりません
教科書では
(cond ((eq? a (car lat))(cdr lat))
となっていますが
(cond ((eq? a (car lat))(print "abc")(cdr lat))
と真の時の従属節に関数実行のS式を追加することはOKでしょうか?
目的はデバッグのため
処理系はgauche です,プログラミングgaucheを手元に置いていますがよく読めてません
よろしくお願いいたします
(cond ((eq? a (car lat)) ....
で eq? が真を返すときの実行文の文法がわかりません
教科書では
(cond ((eq? a (car lat))(cdr lat))
となっていますが
(cond ((eq? a (car lat))(print "abc")(cdr lat))
と真の時の従属節に関数実行のS式を追加することはOKでしょうか?
目的はデバッグのため
処理系はgauche です,プログラミングgaucheを手元に置いていますがよく読めてません
よろしくお願いいたします
328デフォルトの名無しさん
2016/03/20(日) 21:20:49.05ID:8k7APoZN beginすればいいんじゃね
329デフォルトの名無しさん
2016/03/20(日) 21:41:03.51ID:B3NGK1ug >>328
if のときじゃなくて cond のときはどうでしょうか?
if のときじゃなくて cond のときはどうでしょうか?
330デフォルトの名無しさん
2016/03/21(月) 00:04:00.00ID:4m5Wnyvm >>329
condはifとbeginに置き換えられる
condをマクロとして実装してる処理系は多い
まず処理系のソースを見てごらんよ
(cond (test1 body1) (test2 body2) (else bodyn))は
(if test1 (begin body1) (if test2 (begin body2) (begin bodye)))
に一旦展開された後で項書き換えとかコンパイルとかされる
要するにcondのbody節は複文相当で最後の式の値が全体の式の値になる
構文が判らないレベルなら教科書は一旦捨てて処理系のソース読んだ方が早い
condはifとbeginに置き換えられる
condをマクロとして実装してる処理系は多い
まず処理系のソースを見てごらんよ
(cond (test1 body1) (test2 body2) (else bodyn))は
(if test1 (begin body1) (if test2 (begin body2) (begin bodye)))
に一旦展開された後で項書き換えとかコンパイルとかされる
要するにcondのbody節は複文相当で最後の式の値が全体の式の値になる
構文が判らないレベルなら教科書は一旦捨てて処理系のソース読んだ方が早い
331デフォルトの名無しさん
2016/03/21(月) 00:27:45.71ID:4m5Wnyvm ちなみにschemeはマクロを除いて基本構文は5つしか必要ない
define lambda set! if beginだったかな?
でも厳密にはquote関係も数に入れると10個ぐらいかもしれない
それ以外は全て上の5構文を組み合わせたマクロとして定義できる
つまり上の5構文だけマスターしとけばよい
例えばletがマクロなら(let((var value)) 〜)は((lambda(var) 〜)value)
のように意味を全く違えずに置き換えられる
残りのマクロも同様に基本構文への展開形を連想できるようになれば
schemeの基本はマスターしたと思ってよい
ただし肝心のschemeのマクロの定義は手段が沢山あってカオスなので
schemeマクロの闇については自分で調べて下さい
gaucheなら大きく分けて2つだろうけど
define lambda set! if beginだったかな?
でも厳密にはquote関係も数に入れると10個ぐらいかもしれない
それ以外は全て上の5構文を組み合わせたマクロとして定義できる
つまり上の5構文だけマスターしとけばよい
例えばletがマクロなら(let((var value)) 〜)は((lambda(var) 〜)value)
のように意味を全く違えずに置き換えられる
残りのマクロも同様に基本構文への展開形を連想できるようになれば
schemeの基本はマスターしたと思ってよい
ただし肝心のschemeのマクロの定義は手段が沢山あってカオスなので
schemeマクロの闇については自分で調べて下さい
gaucheなら大きく分けて2つだろうけど
332はちみつ餃子 ◆8X2XSCHEME
2016/03/21(月) 02:54:24.39ID:+baaFkVo 最近の Gauche には explicit renaming マクロ変換器が入ってるよ。
333デフォルトの名無しさん
2016/03/21(月) 23:00:02.23ID:b2VQ+ga6 ノートぱちょこん買い替える非業界人なんだけど、最近話題沸騰中の
LispとSchemeにちょっと興味があって。やっぱりマックにしたほうが
幸せになれるんでせうか?それとも、今までのぱちょこんをLinixに
したほうがいいのかな?
LispとSchemeにちょっと興味があって。やっぱりマックにしたほうが
幸せになれるんでせうか?それとも、今までのぱちょこんをLinixに
したほうがいいのかな?
334デフォルトの名無しさん
2016/03/22(火) 00:06:38.20ID:RD0Fka3a 割とどうでもいい
335デフォルトの名無しさん
2016/03/22(火) 10:26:28.38ID:R/0zYJ9m マックにArchLinux入れろ
336デフォルトの名無しさん
2016/03/22(火) 13:25:51.72ID:YJW8F40f >>333
LispとSchemeで遊びたいならWindowsでもMacでも好きな方買って大丈夫
WindowsならWindowsに適したものが、MacだとUnix処理系から普通にって感じで入れられるよ。
LispとSchemeで遊びたいならWindowsでもMacでも好きな方買って大丈夫
WindowsならWindowsに適したものが、MacだとUnix処理系から普通にって感じで入れられるよ。
337デフォルトの名無しさん
2016/03/22(火) 13:35:28.39ID:dJvZYtfq 最近どこで話題沸騰中なんだ?
338デフォルトの名無しさん
2016/03/22(火) 13:36:45.17ID:dBsj80+9 Windowsでコーディングとか正気か
339デフォルトの名無しさん
2016/03/22(火) 14:50:32.81ID:mpnhn3sE Gauche で OpenGL 使うときは Windows の方がよい
340はちみつ餃子 ◆8X2XSCHEME
2016/03/22(火) 18:32:27.01ID:0IAY/SZb メモリを多めに積んだやつに VMware なり Virtual PC なりの仮想化ソフトを入れて使い分ければいいよ。
341デフォルトの名無しさん
2016/03/22(火) 20:45:35.89ID:58hJQcjT レスありがとうございます。質問者です。
やっぱりマックがいいという意見が多いみたいですね。
そろそろ新型出るという噂もあるようなので様子見て買ってみたいです。
LinuxはArchってのがいいんですかね?
昔のスラックウェアみたいなかんじなのかな。古いPCでも遊べそうですね。
やっぱりマックがいいという意見が多いみたいですね。
そろそろ新型出るという噂もあるようなので様子見て買ってみたいです。
LinuxはArchってのがいいんですかね?
昔のスラックウェアみたいなかんじなのかな。古いPCでも遊べそうですね。
342デフォルトの名無しさん
2016/03/22(火) 21:21:52.81ID:+NAfQbj2 ・・・!?
343デフォルトの名無しさん
2016/03/23(水) 01:26:34.91ID:wTacfG6W Lispで書かれた対話botか?!
344デフォルトの名無しさん
2016/03/24(木) 16:51:59.81ID:l5cXeIqY はじめてのLisp関数型プログラミング――ラムダ計算からリファクタリングまで一気にわかる (Software Design plus) 五味 弘
ていう本が出てるけど、これはISLispなの?CL?
ていう本が出てるけど、これはISLispなの?CL?
345デフォルトの名無しさん
2016/03/24(木) 17:29:50.47ID:swZqoyDh >>344に限らず本スレの皆様への質問とお願い
> これはISLispなの?CL?
そもそもISLispを主たる対象とした日本語で書かれた本(言語仕様の詳解中心でもプログラミング中心でもどちらでも可)って
(個人や大学・研究所などのWebサイトにPDFファイル等の形でアップされているとかでなく印刷され商業的に通常の書店で
購入可能な形で販売されているという意味で)出版されているのですか?
日本語でLispの本というとSchemeかCLかしか存在しない(英語圏でも状況は変わらない)と個人的には思っていたのですが?
日本語に限らず英語でも構わないのでISLispを主題とした書籍をご存知でしたら教えて下さい
> これはISLispなの?CL?
そもそもISLispを主たる対象とした日本語で書かれた本(言語仕様の詳解中心でもプログラミング中心でもどちらでも可)って
(個人や大学・研究所などのWebサイトにPDFファイル等の形でアップされているとかでなく印刷され商業的に通常の書店で
購入可能な形で販売されているという意味で)出版されているのですか?
日本語でLispの本というとSchemeかCLかしか存在しない(英語圏でも状況は変わらない)と個人的には思っていたのですが?
日本語に限らず英語でも構わないのでISLispを主題とした書籍をご存知でしたら教えて下さい
346デフォルトの名無しさん
2016/03/24(木) 18:12:32.28ID:l5cXeIqY ISLisp は、Lisp言語のISO標準であり、1997年にISO規格が制定されました。
ISLispは、業界標準となっていたCommon Lisp の言語仕様の巨大さに対して、
処理系の効率と学習・利用の容易さを向上するために, Common Lispを継承
しつつ EuLisp, Le Lisp, Scheme を参考としてコンパクトで一貫性のある
言語を目標に 開発されました。
とあるけど、そういえばISLispの本って見たことないかも。
ISLispは、業界標準となっていたCommon Lisp の言語仕様の巨大さに対して、
処理系の効率と学習・利用の容易さを向上するために, Common Lispを継承
しつつ EuLisp, Le Lisp, Scheme を参考としてコンパクトで一貫性のある
言語を目標に 開発されました。
とあるけど、そういえばISLispの本って見たことないかも。
347デフォルトの名無しさん
2016/03/24(木) 18:48:59.27ID:kQfTb2jB ISLisp、惹句はいいんだど、いかんせんまともな実装が無いのがな。
348デフォルトの名無しさん
2016/03/24(木) 23:12:30.66ID:hVZ/HIjt 著者「関数型おしえます!」(お?どれどれ)
著者「Lisp最高です!」(あ、うん)
著者「…islispデス…」(は?!なにそれ?伊豆lisp?)
ブロガーA「良著なのでコードをschemeで書きなおしました」(いいねえ)
ブロガーB「haskellでかきました」(うおおおおおおお!!!!!)
という反応になるよね。一般的には。
common lispかschemeで書き直したものをHPにアップすべきだと思う。
著者「Lisp最高です!」(あ、うん)
著者「…islispデス…」(は?!なにそれ?伊豆lisp?)
ブロガーA「良著なのでコードをschemeで書きなおしました」(いいねえ)
ブロガーB「haskellでかきました」(うおおおおおおお!!!!!)
という反応になるよね。一般的には。
common lispかschemeで書き直したものをHPにアップすべきだと思う。
349デフォルトの名無しさん
2016/03/25(金) 01:17:44.26ID:FCMJUdPN せめて伊豆用slimeぐらい用意しないと女子高生には読んでもらえないと思うんだ
350デフォルトの名無しさん
2016/03/25(金) 01:47:25.19ID:U5kXnQYj はじめてのLisp関数型プログラミング、昨日買ったばかりなんだけど
ハズレ感が半端ない
ハズレ感が半端ない
351デフォルトの名無しさん
2016/03/25(金) 03:50:58.11ID:Ah1QRPII で、ISLispなんですか?
352デフォルトの名無しさん
2016/03/25(金) 15:57:20.68ID:NttqmT06 ISLisp でggrと「ISLISPを使うべきでないたった1つの理由」がトップに並ぶ哀しさよ
353デフォルトの名無しさん
2016/03/27(日) 18:34:21.16ID:0WFKXpdM サンプルプログラムダウンロードしてみればわかるのでは。
354デフォルトの名無しさん
2016/03/27(日) 18:46:04.64ID:0WFKXpdM ちなみに本の最初の方ではclisp導入してた。
355デフォルトの名無しさん
2016/03/27(日) 18:57:11.14ID:0WFKXpdM 最近は、RHがclojureでうまく整理して、関数型含めてjsに広まる概念もあったりする。
逆の流れでいうとtransducerをhaskellで説明しようとしたけどちょっと足りない話。
https://reddit.com/r/haskell/comments/2cv6l4/clojures_transducers_are_perverse_lenses/
いまだとshapeless使えば静的な型検査通る可変な型扱うコレクションつくれるらしいので、上のやつみたいなのも着実に減っててるとは思う。
https://github.com/mandubian/scaledn
結局のところC#などにもそうやって取り込まれてるんじゃないかなと。
react(.js)もphpのテンプレートエンジンの置き換えからだそうで。
逆の流れでいうとtransducerをhaskellで説明しようとしたけどちょっと足りない話。
https://reddit.com/r/haskell/comments/2cv6l4/clojures_transducers_are_perverse_lenses/
いまだとshapeless使えば静的な型検査通る可変な型扱うコレクションつくれるらしいので、上のやつみたいなのも着実に減っててるとは思う。
https://github.com/mandubian/scaledn
結局のところC#などにもそうやって取り込まれてるんじゃないかなと。
react(.js)もphpのテンプレートエンジンの置き換えからだそうで。
356デフォルトの名無しさん
2016/03/27(日) 20:51:20.75ID:0fEHBexO clojure が lisp方言として紹介されてると違和感がある
357デフォルトの名無しさん
2016/03/27(日) 21:15:00.46ID:/EOuwLtH >>356
すまぬが理由がわからないのでkwsk解説を求む
すまぬが理由がわからないのでkwsk解説を求む
358デフォルトの名無しさん
2016/03/27(日) 21:24:01.32ID:0fEHBexO >>357
・特に [ ] のあたりの文法が違うのでLispの資産を移行できないから
・Lisp の ( ) の対応に慣れた人には、罠のようにはりめくらされた文法不一致があるから
・S式だけで構成できないから
・再帰末尾最適化に制限があるから
・特に [ ] のあたりの文法が違うのでLispの資産を移行できないから
・Lisp の ( ) の対応に慣れた人には、罠のようにはりめくらされた文法不一致があるから
・S式だけで構成できないから
・再帰末尾最適化に制限があるから
359デフォルトの名無しさん
2016/03/27(日) 21:47:19.72ID:/EOuwLtH360デフォルトの名無しさん
2016/03/30(水) 01:19:52.13ID:4Lxy3Poc361デフォルトの名無しさん
2016/03/30(水) 11:18:07.37ID:7zl3Df3d > ISLisp でggrと「ISLISPを使うべきでないたった1つの理由」がトップに並ぶ哀しさよ
これ根本的に間違えてんね.ユーザーいないし訂正する人もいないからこのページが消滅するとよいね
これ根本的に間違えてんね.ユーザーいないし訂正する人もいないからこのページが消滅するとよいね
362デフォルトの名無しさん
2016/03/30(水) 23:06:00.56ID:7AHXAhDb 算法表現論ゲット
読みやすそうで少し安心
読みやすそうで少し安心
363デフォルトの名無しさん
2016/04/01(金) 19:48:09.65ID:3RzF36/0364デフォルトの名無しさん
2016/04/01(金) 23:04:20.67ID:cY7z571b > 「実行時情報」が使えないということは,つまり,自分で定義した関数によるマクロの展開は行えない,ということです.
ココ。つまりこのページの主張全部
ココ。つまりこのページの主張全部
365デフォルトの名無しさん
2016/04/01(金) 23:32:51.04ID:TfQnAKLt 自分で定義した関数ってコンパイル時情報だよな?
366はちみつ餃子 ◆8X2XSCHEME
2016/04/02(土) 04:27:14.45ID:4LcO4yg1 仕様から関連しそうな箇所を抜き出してみた。
> 4.8 定義演算子
> 定義形式によって定義される名前は、最上位有効範囲全体で使うことができるが、
> ISLISP テキスト単位における実行準備された最上位形式は、左から右に順に実行される。
> (略)
> (defun function-name lambdaform*) → <symbol>
>
> defun 形式は、 function-name を、関数名前空間の識別子として定義する。 function-name は、 (lambda
> lambda-list form*) と等価な関数オブジェクトに束縛される。
> 8. マクロ
> (略)
> マクロは、実行準備時に展開される。 いかなる実行時情報も使えない。使用可能な操作は、単純なデー
> タ構造の生成及び処理に制限される。すなわち、(端末への入出力のような) 環境への副作用、(記号の属
> 性リストの変更のような)外部的にアクセスできるデータ構造への副作用、及びマクロ形式自身への副作用
> を起こす操作は禁止する。
「4.6 評価モデル」も関連するけど長くなるので要約。
・ まず実行準備される
・ 実行準備が完了してから実行される
・ 実行準備完了時点でマクロ展開は終わっている
・ 実行準備のための処理は処理系依存
断言できるほどはっきりしてないけど、関数の定義名はマクロ展開時にも見えてて、
関数名と関数オブジェクトを結びつけるのは「実行」だと解釈するのが妥当だと思う。
マクロ定義中にユーザー定義関数を使えないとする解釈を私も支持する。
ただ、全体を通して見ると副作用のない (プログラマが定義した関数を含む) 関数なら使えると想定しているっぽい雰囲気
はあるような気がする。
> 4.8 定義演算子
> 定義形式によって定義される名前は、最上位有効範囲全体で使うことができるが、
> ISLISP テキスト単位における実行準備された最上位形式は、左から右に順に実行される。
> (略)
> (defun function-name lambdaform*) → <symbol>
>
> defun 形式は、 function-name を、関数名前空間の識別子として定義する。 function-name は、 (lambda
> lambda-list form*) と等価な関数オブジェクトに束縛される。
> 8. マクロ
> (略)
> マクロは、実行準備時に展開される。 いかなる実行時情報も使えない。使用可能な操作は、単純なデー
> タ構造の生成及び処理に制限される。すなわち、(端末への入出力のような) 環境への副作用、(記号の属
> 性リストの変更のような)外部的にアクセスできるデータ構造への副作用、及びマクロ形式自身への副作用
> を起こす操作は禁止する。
「4.6 評価モデル」も関連するけど長くなるので要約。
・ まず実行準備される
・ 実行準備が完了してから実行される
・ 実行準備完了時点でマクロ展開は終わっている
・ 実行準備のための処理は処理系依存
断言できるほどはっきりしてないけど、関数の定義名はマクロ展開時にも見えてて、
関数名と関数オブジェクトを結びつけるのは「実行」だと解釈するのが妥当だと思う。
マクロ定義中にユーザー定義関数を使えないとする解釈を私も支持する。
ただ、全体を通して見ると副作用のない (プログラマが定義した関数を含む) 関数なら使えると想定しているっぽい雰囲気
はあるような気がする。
367363
2016/04/02(土) 07:29:47.03ID:A2SWmCys >>364,365,366
みなさん情報ありがとう。
ISLISPの日本語の仕様書はどこかなと思ったら、ここにあった。
http://www.jisc.go.jp/app/pager?id=1759608
ダウンロードしての閲覧禁止って。変な制限かけてるなぁ。
みなさん情報ありがとう。
ISLISPの日本語の仕様書はどこかなと思ったら、ここにあった。
http://www.jisc.go.jp/app/pager?id=1759608
ダウンロードしての閲覧禁止って。変な制限かけてるなぁ。
368はちみつ餃子 ◆8X2XSCHEME
2016/04/02(土) 12:56:38.38ID:4LcO4yg1 >>367
その URL では見れないよ。
URL 中の番号はあなたがアクセスしたときのセッション番号。
文書に固有の番号ではないので、パームリンクとして使えない。
ダウンロード禁止なだけじゃなく、たぶんサーチンエンジンのクロールも避けてるんだと思う。
その URL では見れないよ。
URL 中の番号はあなたがアクセスしたときのセッション番号。
文書に固有の番号ではないので、パームリンクとして使えない。
ダウンロード禁止なだけじゃなく、たぶんサーチンエンジンのクロールも避けてるんだと思う。
369デフォルトの名無しさん
2016/04/02(土) 13:43:35.05ID:5+CR+tn7 表示中オフラインにするとpdf中のjsに怒られたような記憶がある
370デフォルトの名無しさん
2016/04/02(土) 15:42:26.21ID:qu6I3qRA 普及させる気ないんだろうね
371デフォルトの名無しさん
2016/04/02(土) 15:51:19.10ID:5+CR+tn7 買ってもらってるから、不公平って話だと思われる。
紙も実費で配れる財源あるといいんだけどね。
isoは販売になってるけど、他団体と共同でたまに公開されてるのがある。
草稿は公開してるところもある。
紙も実費で配れる財源あるといいんだけどね。
isoは販売になってるけど、他団体と共同でたまに公開されてるのがある。
草稿は公開してるところもある。
372デフォルトの名無しさん
2016/04/02(土) 15:59:10.41ID:5+CR+tn7 ここで公開してたやつも草稿であって、ってリンク切れしてるのな。
http://www.open-std.org/JTC1/SC22/WG16/
http://www.islisp.com/jp/ISLisp-spec-jp.html
http://www.open-std.org/JTC1/SC22/WG16/
http://www.islisp.com/jp/ISLisp-spec-jp.html
373デフォルトの名無しさん
2016/04/02(土) 16:12:01.04ID:5+CR+tn7 isoやansiよりはjisの方がweb公開進んでるのだけど、
ecmaならecmascript(js)やclr(.net)みたいに公開されるのか。
ecmaならecmascript(js)やclr(.net)みたいに公開されるのか。
374はちみつ餃子 ◆8X2XSCHEME
2016/04/02(土) 17:41:26.10ID:4LcO4yg1 日本の法律だと JIS 規格に著作権が認められるかどうかははっきりしない。
総合的には認められないとする説の方が有力らしいんだが、
ISO は規格の著作権を主張してるからそれに加盟してる JISC も倣うしかなくて、
間をとって閲覧だけは無料という曖昧なところでぼやかしてるらしい。
総合的には認められないとする説の方が有力らしいんだが、
ISO は規格の著作権を主張してるからそれに加盟してる JISC も倣うしかなくて、
間をとって閲覧だけは無料という曖昧なところでぼやかしてるらしい。
375デフォルトの名無しさん
2016/04/02(土) 18:45:29.01ID:8BHbSdoO 工業規格は事実上の業界標準を後追いで規格化したのがほとんどだから、著作権どころか特許が生きてるのが混じってるので注意が必要
376デフォルトの名無しさん
2016/04/02(土) 23:14:35.48ID:1yEjd1gy > 366
> 断言できるほどはっきりしてないけど、関数の定義名はマクロ展開時にも見えてて、関数名と関数オブジェクトを結びつけるのは「実行」だと解釈するのが妥当だと思う。
入手できたISLISP Working Draft 23.0をベースにして述べるが,その理屈だと備え付けの関数も展開には使えないように思える.
備え付け関数もユーザ定義の関数もpreparation for executionの間に実行可能という記述はない.
不可能という記述もない.(定義はしないとある)
仮にユーザ定義の関数は使えないとしよう.
ローカル関数 (flet labels)が,defmacro 内で使えないようには見えないのでこれで対処できる.
また,マクロは使用場所に先行して定義があることが必須とあるということは,ユーザ定義のマクロは使えるように見えるので,補助関数の所を補助マクロとするのも良いだろう.
CommonLispでもマクロ展開の補助でユーザー定義関数の利用は必須ではないし,利用するには評価フェイズを合せなくちゃならない問題がある.(ISLISPはこれを回避したのかもしれない)
これをもって「ISLISPを使うべきでない」とするのは誇張が過ぎるし,真に受ける者が出るとしたら害悪だろう.
> 断言できるほどはっきりしてないけど、関数の定義名はマクロ展開時にも見えてて、関数名と関数オブジェクトを結びつけるのは「実行」だと解釈するのが妥当だと思う。
入手できたISLISP Working Draft 23.0をベースにして述べるが,その理屈だと備え付けの関数も展開には使えないように思える.
備え付け関数もユーザ定義の関数もpreparation for executionの間に実行可能という記述はない.
不可能という記述もない.(定義はしないとある)
仮にユーザ定義の関数は使えないとしよう.
ローカル関数 (flet labels)が,defmacro 内で使えないようには見えないのでこれで対処できる.
また,マクロは使用場所に先行して定義があることが必須とあるということは,ユーザ定義のマクロは使えるように見えるので,補助関数の所を補助マクロとするのも良いだろう.
CommonLispでもマクロ展開の補助でユーザー定義関数の利用は必須ではないし,利用するには評価フェイズを合せなくちゃならない問題がある.(ISLISPはこれを回避したのかもしれない)
これをもって「ISLISPを使うべきでない」とするのは誇張が過ぎるし,真に受ける者が出るとしたら害悪だろう.
377デフォルトの名無しさん
2016/04/03(日) 00:12:06.32ID:TLDHNLo8 そのページの害悪よりも、isLispの素晴らしさが伝わるようなページが
検索トップに来ないことの方がずっと問題だと思うけど
検索トップに来ないことの方がずっと問題だと思うけど
378はちみつ餃子 ◆8X2XSCHEME
2016/04/03(日) 01:50:33.42ID:KHszJMdl >>376
「実行準備」「実行」の繰り返しがどういう単位なのかっていう、フェイズの分離の仕方の問題だよな。
ひとつの式ごとなのかプログラム全体にわたってなのかでも解釈が違ってくる。
まあ最大限に安全な方向に見積もって未定義だと解釈しても、
それで ISLISP の有用性が全部失われるわけではないということには賛成できる。
あの記事はよくある誇張した煽り記事だろ。 センセーショナルなタイトルをつけてるだけで大したこと言ってない。
しょうもない記事が上位にきてしまう程度に ISLISP に関する記事が少ないってだけ。
「実行準備」「実行」の繰り返しがどういう単位なのかっていう、フェイズの分離の仕方の問題だよな。
ひとつの式ごとなのかプログラム全体にわたってなのかでも解釈が違ってくる。
まあ最大限に安全な方向に見積もって未定義だと解釈しても、
それで ISLISP の有用性が全部失われるわけではないということには賛成できる。
あの記事はよくある誇張した煽り記事だろ。 センセーショナルなタイトルをつけてるだけで大したこと言ってない。
しょうもない記事が上位にきてしまう程度に ISLISP に関する記事が少ないってだけ。
379デフォルトの名無しさん
2016/04/05(火) 19:32:30.73ID:wN+QNOe5 ISLispを普及させるために必要な10のこと
・ISLispBoxを無償提供する
・ISLisp Hyperspecを無償提供する
・SICPをISLispで書き換える
・On ISLisp、Little ISLisper、Land of ISLispを出す
・ISLisp for Dummies、すごいISLisp楽しく学ぼう!も
・WhyのISLisp感動的ガイドを公開する
・ISLispBoxを無償提供する
・ISLisp Hyperspecを無償提供する
・SICPをISLispで書き換える
・On ISLisp、Little ISLisper、Land of ISLispを出す
・ISLisp for Dummies、すごいISLisp楽しく学ぼう!も
・WhyのISLisp感動的ガイドを公開する
380デフォルトの名無しさん
2016/04/05(火) 23:12:23.26ID:XIj7GX7+ 他の実装へのトランスレータがあれば普及させる必要はない
381デフォルトの名無しさん
2016/04/07(木) 01:17:53.66ID:y6T+G0tp God Wrote in Lisp (The Eternal Flame)
http://www.catonmat.net/blog/musical-geek-friday-god-wrote-in-lisp-eternal-flame/
http://www.catonmat.net/blog/musical-geek-friday-god-wrote-in-lisp-eternal-flame/
382デフォルトの名無しさん
2016/04/07(木) 02:51:00.20ID:J/4BCUlz >Lispを普及させるために必要なこと
括弧が少ない言語の方が好まれる傾向にある
よって括弧が一切存在しないLispが誕生すれば爆発的に普及するだろう
括弧が少ない言語の方が好まれる傾向にある
よって括弧が一切存在しないLispが誕生すれば爆発的に普及するだろう
383デフォルトの名無しさん
2016/04/07(木) 03:03:03.39ID:69hNyYMv 今年のscheme workshopは日本
いつもwebdbfと重なって行けなかったが今年は行けそう
いつもwebdbfと重なって行けなかったが今年は行けそう
384デフォルトの名無しさん
2016/04/07(木) 13:28:18.97ID:bXWnnDCw 言語で使う括弧の量と、括弧打つのが面倒な場面の数ってあんま関係ないよね。
括弧使う言語を書いてるときに面倒なのは、今書いた式を引数にして別の関数を更に適用しようかとかなったときに、
後に閉じ括弧つけてカーソル前に戻して関数名書いて括弧つけて、ってやるときがほとんどなんだけど、
例: foo(x,y)_ → bar(_foo(x,y)) # "_"はそのときのカーソルの位置
Emacsなら一発で飛べる分、むしろLispの方が楽なときがある。
そういう意味だとOCamlの foo x y _ → foo x y |> bar_ は便利だった。
括弧使う言語を書いてるときに面倒なのは、今書いた式を引数にして別の関数を更に適用しようかとかなったときに、
後に閉じ括弧つけてカーソル前に戻して関数名書いて括弧つけて、ってやるときがほとんどなんだけど、
例: foo(x,y)_ → bar(_foo(x,y)) # "_"はそのときのカーソルの位置
Emacsなら一発で飛べる分、むしろLispの方が楽なときがある。
そういう意味だとOCamlの foo x y _ → foo x y |> bar_ は便利だった。
385デフォルトの名無しさん
2016/04/09(土) 00:31:51.25ID:V5jcD4gz Lispが普及しないのはEmacsで開発するのが当たり前ってところでしょ?それじゃ新規は増えないよ。
386デフォルトの名無しさん
2016/04/09(土) 01:09:17.67ID:K2fjpu1X それはいいんだよ
CLやscheme, Racketに比べてISLISPが普及してないのはもったいないよね
という話
CLやscheme, Racketに比べてISLISPが普及してないのはもったいないよね
という話
387デフォルトの名無しさん
2016/04/09(土) 07:59:30.45ID:vy7ZgTpp >>385
F#はVisual Studioだけど普及してないし
F#はVisual Studioだけど普及してないし
388デフォルトの名無しさん
2016/04/09(土) 12:25:09.55ID:RLrf2DHR >>387
F#は好きな言語ではあるが、C#と比べるとVSの動作が重くてしんどいよ。
型推論が遅いのか構文解析が面倒なのか、自動でエラー箇所表示させると凄く反応が悪くなる。
FParsecとか関数型言語ならではの便利ライブラリ使うとより顕著に。
ISLispはロクな実装無いし真面目に使っている人がいないから、どこが便利でどこに課題があるかも分からんのがね。
F#は好きな言語ではあるが、C#と比べるとVSの動作が重くてしんどいよ。
型推論が遅いのか構文解析が面倒なのか、自動でエラー箇所表示させると凄く反応が悪くなる。
FParsecとか関数型言語ならではの便利ライブラリ使うとより顕著に。
ISLispはロクな実装無いし真面目に使っている人がいないから、どこが便利でどこに課題があるかも分からんのがね。
389デフォルトの名無しさん
2016/04/10(日) 00:55:16.70ID:o+jF8W/p >>387
なら開発環境と言語の両方に魅力がないとダメってことじゃない?
なら開発環境と言語の両方に魅力がないとダメってことじゃない?
390デフォルトの名無しさん
2016/04/10(日) 01:04:07.52ID:FW5ih/4i smalltalkは普及してないけど、objective-cは普及した
つまり、Lispを普及するには中間言語をcにして、、、
つまり、Lispを普及するには中間言語をcにして、、、
391デフォルトの名無しさん
2016/04/10(日) 01:05:20.48ID:FW5ih/4i そういえばsqueakがレイヤごとに言語変えるとかどっかでチラと読んだような気がする
392デフォルトの名無しさん
2016/04/10(日) 09:59:42.62ID:OHXqjM6F >>390
Objective-Cは絶滅危惧種だったがジョブズのおかげで生き延びた
Objective-Cは絶滅危惧種だったがジョブズのおかげで生き延びた
393デフォルトの名無しさん
2016/04/10(日) 13:13:21.92ID:FW5ih/4i 最も愛されているプログラミング言語や技術
1. Rust(79.1%)
2. Swift(72.1%)
3. F#(70.7%)
4. Scala(69.4%)
5. Go(68.7%)
http://news.mynavi.jp/news/2016/04/07/062/
Most Loved Programming Languages Of 2016 ? Rust, Swift, F#, Scala, Go
http://fossbytes.com/loved-programming-languages-rust-swift-go/
だそうです
1. Rust(79.1%)
2. Swift(72.1%)
3. F#(70.7%)
4. Scala(69.4%)
5. Go(68.7%)
http://news.mynavi.jp/news/2016/04/07/062/
Most Loved Programming Languages Of 2016 ? Rust, Swift, F#, Scala, Go
http://fossbytes.com/loved-programming-languages-rust-swift-go/
だそうです
394デフォルトの名無しさん
2016/04/10(日) 14:19:08.33ID:OHXqjM6F >>393
愛人にしても本妻には決してしたくない言語だね
愛人にしても本妻には決してしたくない言語だね
395デフォルトの名無しさん
2016/04/10(日) 15:37:29.95ID:1G8jL9C/ Rustは好き。C/C++が引き受ける低レベルな領域に型システムの安全性と利便性を突っ込んでみたっていう発想は良い。
けど、コンパイル時間がコード量から予測しづらい(イテレータやジェネリクスを使ってると特に)のと、
莫大なライブラリを資産に持つC/C++と比べたときの実用性の差を考えると、
潤沢な計算資源があって、比較的優秀な人材が揃えられるところ向け。
Schemeのような、スタンドプレーの生産性を莫大に高める言語じゃあないと思う。
けど、コンパイル時間がコード量から予測しづらい(イテレータやジェネリクスを使ってると特に)のと、
莫大なライブラリを資産に持つC/C++と比べたときの実用性の差を考えると、
潤沢な計算資源があって、比較的優秀な人材が揃えられるところ向け。
Schemeのような、スタンドプレーの生産性を莫大に高める言語じゃあないと思う。
396デフォルトの名無しさん
2016/04/10(日) 16:24:09.38ID:GJqGP9+Q 俺もRust好きだな、ただObjective-Cみたいに言語のはらわたまで触れる(smalltalk由来の部分ね)緩さをもった言語も大好きなんだよな
あとはClojureが好き、これはWebアプリ書いてるとき限定だけど。
LispスレなのにLisp系がClojureとかでスマヌ
あとはClojureが好き、これはWebアプリ書いてるとき限定だけど。
LispスレなのにLisp系がClojureとかでスマヌ
397デフォルトの名無しさん
2016/04/10(日) 19:11:20.69ID:bGdugtOr Lisp系言語のネックは言語実装じゃなくて実行環境だと思う
398デフォルトの名無しさん
2016/04/10(日) 20:22:50.36ID:OHXqjM6F >>397
マルチプラットフォームでコンパイラで実行バイナリも吐けるし何が問題?
マルチプラットフォームでコンパイラで実行バイナリも吐けるし何が問題?
399デフォルトの名無しさん
2016/04/10(日) 20:44:51.47ID:bGdugtOr >>398
「Common Lisp なら問題なく安定して高速な実行バイナリを吐ける」 という前提が必要かと
「Common Lisp なら問題なく安定して高速な実行バイナリを吐ける」 という前提が必要かと
400デフォルトの名無しさん
2016/04/10(日) 21:07:38.87ID:fTRAmtFw マルチプラットフォームとかより.NET Frameworkとか使えるかが問題
401デフォルトの名無しさん
2016/04/10(日) 21:42:33.45ID:hia67FmN Biglooは高速なんじゃないの?
402デフォルトの名無しさん
2016/04/11(月) 19:30:23.23ID:B6eduLpk Hyper Specが日本語に翻訳されたら増えるかもね。
日本語の情報が少なすぎだよ。
日本語の情報が少なすぎだよ。
403デフォルトの名無しさん
2016/04/12(火) 07:35:10.05ID:cHC5205s Racketからpython使うだいぶ楽になったけど、逆はどうすればいいんだ?
404デフォルトの名無しさん
2016/04/15(金) 16:27:17.39ID:SDnTU4FS Deep Learningライブラリkeras
がニューラルネットワークのグラフ処理と数式処理を組み合わせた
ちょっと気の利いた自動処理をやってくれてたんだけど,バグだらけで
pyrhonで数式処理やるの無茶だしこんなものだろうと思ってたら
最新版で気の利いたグラフ処理を全部削除してきた
数式処理をLisp以外でやるのは,やっぱり無理だったんだな
がニューラルネットワークのグラフ処理と数式処理を組み合わせた
ちょっと気の利いた自動処理をやってくれてたんだけど,バグだらけで
pyrhonで数式処理やるの無茶だしこんなものだろうと思ってたら
最新版で気の利いたグラフ処理を全部削除してきた
数式処理をLisp以外でやるのは,やっぱり無理だったんだな
405デフォルトの名無しさん
2016/04/15(金) 17:44:56.79ID:h+7uFu1K sympy ないからね〜♪
406デフォルトの名無しさん
2016/04/15(金) 18:27:07.12ID:SDnTU4FS SymPyはテンソル処理できないし
数式を評価して数値にしないで式のまま扱うには
どうあってもマクロの機能が必須
数式を評価して数値にしないで式のまま扱うには
どうあってもマクロの機能が必須
407デフォルトの名無しさん
2016/04/15(金) 18:29:44.90ID:SDnTU4FS もうちょっと具体的に言うと
x_iのiも数値じゃなくて数式になってるような処理がmaxima以外じゃできないんだよ
x_iのiも数値じゃなくて数式になってるような処理がmaxima以外じゃできないんだよ
408デフォルトの名無しさん
2016/04/16(土) 09:53:49.06ID:dMPS3Rkb ややスレ違いで申し訳ないのですが、
Common Lispで記述されてるMaximaのWindows版バイナリの
GCLやSBCL版がDEPの対象からから外さないと動かないのって、
多分fasl絡みだと思うのですけど、これってどうしようもないのでしょうか?
Common Lispで記述されてるMaximaのWindows版バイナリの
GCLやSBCL版がDEPの対象からから外さないと動かないのって、
多分fasl絡みだと思うのですけど、これってどうしようもないのでしょうか?
409408
2016/04/16(土) 09:55:12.62ID:dMPS3Rkb をを専ブラじゃなくってIEで書き込めたぞ
410デフォルトの名無しさん
2016/04/16(土) 22:21:58.39ID:jF3WTL87 windows10のubuntuサブシステムってguile動くのかな?
411デフォルトの名無しさん
2016/04/17(日) 12:42:24.64ID:OFPJm6rS ubuntu subsystemはterminal関連やプロセス情報周りまだ調節してるみたいなので、起動で使ってるととまるかも。
cygwinと違いlinuxのバイナリがwindowsのシステムコールに変換してそのまま動くらしいが、プロセスfork周りとか安定するのかな。
docker for windowsでも結構いろいろ出来るけど、
こちらはファイル連携の効率が鬼門?
cygwinと違いlinuxのバイナリがwindowsのシステムコールに変換してそのまま動くらしいが、プロセスfork周りとか安定するのかな。
docker for windowsでも結構いろいろ出来るけど、
こちらはファイル連携の効率が鬼門?
412デフォルトの名無しさん
2016/04/18(月) 00:23:19.09ID:7XwxtGPN schemeでSDL使ってなんかやってみたいのだが
guileでもgaucheでもうまく使えるようになってくれん・・・(´・ω・`)
週末おわったからまた来週までおあずけ・・・
guileでもgaucheでもうまく使えるようになってくれん・・・(´・ω・`)
週末おわったからまた来週までおあずけ・・・
413デフォルトの名無しさん
2016/04/24(日) 20:26:59.87ID:0x0aJXRe415デフォルトの名無しさん
2016/04/25(月) 02:32:42.65ID:i2M++PuM 著作権法の保護対象は、思想や感情などを創作的に表現したものだから、規格書が該当する可能性は低いんだよね。
執筆者の思想や感情に染まった創作的な規格書とかアレだし。
執筆者の思想や感情に染まった創作的な規格書とかアレだし。
416デフォルトの名無しさん
2016/04/25(月) 02:51:04.57ID:UQm4t1FS 規格化されたから安心して使えるよね、ってのが長所だろうに
なぜ規格書を半クローズドにするのか全然意味が分かんないw
パンピーから見て「馬鹿なんじゃねえの?」ぐらいある
なぜ規格書を半クローズドにするのか全然意味が分かんないw
パンピーから見て「馬鹿なんじゃねえの?」ぐらいある
417はちみつ餃子 ◆8X2XSCHEME
2016/04/25(月) 03:49:21.76ID:H1EfbN1H Wikipedia にもそのあたりの経緯は書かれてる。
https://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC%E5%B7%A5%E6%A5%AD%E6%A8%99%E6%BA%96%E8%AA%BF%E6%9F%BB%E4%BC%9A
公官庁が作ってるとは限らない (つまり原案が民間からの提案による) というのが著作権が保護される根拠になってるな。
でも、規格票やハンドブックの売り上げは規格団体の活動資金であって (原案の) 著作者に還元されてるわけでもないみたいなので、
その点でも説得力に欠ける気がする。
https://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC%E5%B7%A5%E6%A5%AD%E6%A8%99%E6%BA%96%E8%AA%BF%E6%9F%BB%E4%BC%9A
公官庁が作ってるとは限らない (つまり原案が民間からの提案による) というのが著作権が保護される根拠になってるな。
でも、規格票やハンドブックの売り上げは規格団体の活動資金であって (原案の) 著作者に還元されてるわけでもないみたいなので、
その点でも説得力に欠ける気がする。
418デフォルトの名無しさん
2016/04/25(月) 10:21:16.35ID:J5O1W2lq 誰かが法廷で争って白黒付けん限りはどうにもならん
419デフォルトの名無しさん
2016/04/25(月) 18:12:09.23ID:NhSdIii9 >>417
それは権利が移譲されてるだけ
それは権利が移譲されてるだけ
420デフォルトの名無しさん
2016/04/25(月) 18:33:02.98ID:RM5Zqug+ 権利守るためには普及しなくてもいいや、ってことか
421はちみつ餃子 ◆8X2XSCHEME
2016/04/25(月) 18:47:45.03ID:H1EfbN1H422デフォルトの名無しさん
2016/04/25(月) 21:57:50.21ID:RsNFjZ9o 問題は特許の方だったりする
規格化されてる技術でも、民間企業の特許権が放棄・委譲されてない場合があるから注意ね
規格化されてる技術でも、民間企業の特許権が放棄・委譲されてない場合があるから注意ね
423デフォルトの名無しさん
2016/04/27(水) 01:17:14.13ID:0mhH1Qow いつのまにか Chez がオープンソース化されとるんやけど。
https://github.com/cisco/ChezScheme
https://github.com/cisco/ChezScheme
424デフォルトの名無しさん
2016/04/27(水) 09:36:40.00ID:NqgLzB8V ライセンスは Apache License 2.0 か
425デフォルトの名無しさん
2016/05/01(日) 12:07:59.87ID:tKi6j9CT 匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw
The Covenant Project
概要
Covenantは、純粋P2Pのファイル共有ソフトです
目的
インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します
特徴
Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)
接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
7
BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw
The Covenant Project
概要
Covenantは、純粋P2Pのファイル共有ソフトです
目的
インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します
特徴
Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)
接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
7
426デフォルトの名無しさん
2016/05/17(火) 17:05:48.70ID:YgbAgXws427デフォルトの名無しさん
2016/06/17(金) 14:09:15.00ID:aKyWkGS/428デフォルトの名無しさん
2016/06/19(日) 15:31:25.37ID:ZDqZVbmO Scheme workshopに間に合わなかった論文を投稿できる国際会議って他にないものでしょうか?
429デフォルトの名無しさん
2016/06/19(日) 19:41:59.96ID:TTlCeyJj elispで"で囲まれる文字列をエディター上で複数行にわたって一行の
文字列を作るにはどうやりますか?
文字列を作るにはどうやりますか?
430デフォルトの名無しさん
2016/06/20(月) 00:32:31.05ID:UyWTAm1z431デフォルトの名無しさん
2016/06/20(月) 03:54:27.98ID:1sGgDOGd >>428
ACMのプログラム言語系国際会議だとここらへんに
http://www.sigplan.org/Conferences/
https://en.wikipedia.org/wiki/SIGPLAN
Scheme workshopはICFPと併設か
http://conf.researchr.org/home/icfp-2016
http://scheme2016.snow-fort.org/
Submission deadlineJune 24th, 2016
似た時期にやってるSPLASHと併設はアブストラクト提出があるみたいで締め切りがはやそう?
http://www.sigplan.org/Conferences/SPLASH/
POPLが1月、PLDIが6月みたいだけど、この時期は各種言語系の併設少ない
European Lisp SymposiumもACMと共同みたい?だけど
来年は4-6月ぐらいなのかな?
http://www.european-lisp-symposium.org/
そして、ILSの開催はよくわからない
ACMのプログラム言語系国際会議だとここらへんに
http://www.sigplan.org/Conferences/
https://en.wikipedia.org/wiki/SIGPLAN
Scheme workshopはICFPと併設か
http://conf.researchr.org/home/icfp-2016
http://scheme2016.snow-fort.org/
Submission deadlineJune 24th, 2016
似た時期にやってるSPLASHと併設はアブストラクト提出があるみたいで締め切りがはやそう?
http://www.sigplan.org/Conferences/SPLASH/
POPLが1月、PLDIが6月みたいだけど、この時期は各種言語系の併設少ない
European Lisp SymposiumもACMと共同みたい?だけど
来年は4-6月ぐらいなのかな?
http://www.european-lisp-symposium.org/
そして、ILSの開催はよくわからない
432デフォルトの名無しさん
2016/06/20(月) 09:52:51.85ID:WTi3RfiH >>430
ということです
ということです
433デフォルトの名無しさん
2016/06/20(月) 10:19:02.98ID:UyWTAm1z 例えばリージョンを指定して
(replace-regexp "\n" "" nil (region-beginning) (region-end))
とするとか。
(replace-regexp "\n" "" nil (region-beginning) (region-end))
とするとか。
434デフォルトの名無しさん
2016/06/20(月) 10:31:53.16ID:zNtNJydN こういう改行を自動的にオミットしてくれるraw文字リテラルとか言語によってはあるよね。
435デフォルトの名無しさん
2016/06/20(月) 17:28:02.84ID:3ZWHStpW バックスラッシュで改行をエスケープしたらできました
ありがとうございます
ありがとうございます
436デフォルトの名無しさん
2016/06/22(水) 09:00:57.86ID:y1M9DB0/ Racketのメモリ使用効率が最近、劇的向上したと聞いたがソースが見つからない
437はちみつ餃子 ◆8X2XSCHEME
2016/06/22(水) 09:59:37.32ID:es+zuR1i 適当なコードをプロファイラ付きで動かしてみれば自分で確かめるのも簡単にできそうに思うが
438デフォルトの名無しさん
2016/06/24(金) 15:03:54.34ID:kFtEs5yG scheme workshop のホームページが落ちてる
439デフォルトの名無しさん
2016/06/24(金) 19:38:06.30ID:WmRGQvXX scheme on you!
440デフォルトの名無しさん
2016/07/11(月) 05:29:45.06ID:VKBZ9FDE python のdoctestっぽいのが
コメント領域
#|
...
|#
で囲まれた範囲に書かれている
https://github.com/JeffBezanson/femtolisp/blob/master/examples/bq.scm
こういうテストの記述方法使えるscheme処理系って他にないものでしょうか
コメント領域
#|
...
|#
で囲まれた範囲に書かれている
https://github.com/JeffBezanson/femtolisp/blob/master/examples/bq.scm
こういうテストの記述方法使えるscheme処理系って他にないものでしょうか
441はちみつ餃子 ◆8X2XSCHEME
2016/07/11(月) 13:22:30.31ID:lXJnj28H >>440
doctest ではないけど、同じファイルにテストを書ける方法がある。
SRFI-22 で、 main 手続きがあるとそこをエントリーポイントにする機能があるんだが、
Gauche では -m オプションでモジュール名を指定すると
そのモジュール内にある main (通常は実行されることはない) を実行できる。
ライブラリとして書いたものをスクリプトとしても実行できる仕組みなんだけど、
実際のところそういう使い方は普通はしないので main にテストを書いておくという使い方も出来る。
あるいは、 -F オプションの有無で cond-expand を使って分岐してテスト部分を走らせるという方法もある。
doctest ではないけど、同じファイルにテストを書ける方法がある。
SRFI-22 で、 main 手続きがあるとそこをエントリーポイントにする機能があるんだが、
Gauche では -m オプションでモジュール名を指定すると
そのモジュール内にある main (通常は実行されることはない) を実行できる。
ライブラリとして書いたものをスクリプトとしても実行できる仕組みなんだけど、
実際のところそういう使い方は普通はしないので main にテストを書いておくという使い方も出来る。
あるいは、 -F オプションの有無で cond-expand を使って分岐してテスト部分を走らせるという方法もある。
442デフォルトの名無しさん
2016/07/11(月) 13:30:48.11ID:vMXg/Dlp Clojureだと関数定義にmeta情報としてtestを登録できるけど
Schemeのマクロでtest呼び出し可能なdefine-with-testみたいなの作れないものなの?(あたしゃSchemeいぢった事ないのでわからん)
Schemeのマクロでtest呼び出し可能なdefine-with-testみたいなの作れないものなの?(あたしゃSchemeいぢった事ないのでわからん)
444デフォルトの名無しさん
2016/07/21(木) 08:53:46.11ID:w8JCXqYb http://ecraven.github.io/r7rs-benchmarks/benchmark.html
Chez が圧倒的なんだが、何故か string のテストだけ突出して順位低いな。
Chez が圧倒的なんだが、何故か string のテストだけ突出して順位低いな。
445デフォルトの名無しさん
2016/07/21(木) 18:52:01.52ID:dtsOUE7n 文字列の取出しや結合を繰り返すベンチだな。
Chez の実装をおおざっぱに見てみたら、文字列はただの配列らしい。
string-append も新しくアロケーションしてコピーするだけ。
https://github.com/cisco/ChezScheme/blob/fe172bfdfbf2f606db611013e7689d6a2b117d5e/s/5_4.ss#L33
文字列が rope ならこの種類のベンチは高速になるはずなんだけど、
それはそれで string-ref などが少し遅くなるという欠点もある。
R6RS は string-ref や string-set! が定数時間と要求してるのでそっちを優先したのかも。
(要求といっても `should` はその処理系でコストが大きかったり他との兼ね合いで難しいようなら無視してよい緩い要求。)
あと、 Chez のこういった基本的な手続きは Chez 自身によってコンパイルはされるが、
C で書かれている場合と比べると遅くなると思う。
C で書かれているライブラリを呼出したら、呼出されている間は C の速度ってことだからな。
それらと比較して多少遅い程度で戦えてるならかなり強いんじゃね。
他の実装がどうなってるか知らんけど。
Chez の実装をおおざっぱに見てみたら、文字列はただの配列らしい。
string-append も新しくアロケーションしてコピーするだけ。
https://github.com/cisco/ChezScheme/blob/fe172bfdfbf2f606db611013e7689d6a2b117d5e/s/5_4.ss#L33
文字列が rope ならこの種類のベンチは高速になるはずなんだけど、
それはそれで string-ref などが少し遅くなるという欠点もある。
R6RS は string-ref や string-set! が定数時間と要求してるのでそっちを優先したのかも。
(要求といっても `should` はその処理系でコストが大きかったり他との兼ね合いで難しいようなら無視してよい緩い要求。)
あと、 Chez のこういった基本的な手続きは Chez 自身によってコンパイルはされるが、
C で書かれている場合と比べると遅くなると思う。
C で書かれているライブラリを呼出したら、呼出されている間は C の速度ってことだからな。
それらと比較して多少遅い程度で戦えてるならかなり強いんじゃね。
他の実装がどうなってるか知らんけど。
446デフォルトの名無しさん
2016/08/10(水) 14:38:28.91ID:gLMRd7tQ >>434
どういうraw文字リテラル?
どういうraw文字リテラル?
447デフォルトの名無しさん
2016/08/10(水) 15:57:23.41ID:xNwBTsOU448はちみつ餃子 ◆8X2XSCHEME
2016/08/12(金) 02:03:20.00ID:r3pIqi6x Gauche 0.9.5 のリリースが近いみたいだよ
449デフォルトの名無しさん
2016/08/12(金) 02:04:26.52ID:iSmX+r7l まだメンテとかしてたのか…
450デフォルトの名無しさん
2016/08/12(金) 09:58:06.23ID:YdMh7QBO バージョン1にならないうちにプロジェクトが消滅しそう
451デフォルトの名無しさん
2016/08/12(金) 12:09:41.03ID:IkcCQ8j3 中の人が存命な限り続くだろう
本人が使ってるんだし
本人が使ってるんだし
452はちみつ餃子 ◆8X2XSCHEME
2016/08/13(土) 00:53:10.41ID:zk6Wqji8 リリースの間隔は長いけど、かなりの頻度でコミットはされてるよ。
453デフォルトの名無しさん
2016/08/22(月) 19:03:07.53ID:oW9zLe2W Gaucheはschemeである限りschemeの1処理系にしかすぎない
schemeのノロノロした規定の縛りに従っていくのもアホらしいと感じているだろう
.NETに対応して誰もを唸らせるLispやSchemeという分類を超えた新たなLISP族が誕生してもいいんじゃないっか
schemeのノロノロした規定の縛りに従っていくのもアホらしいと感じているだろう
.NETに対応して誰もを唸らせるLispやSchemeという分類を超えた新たなLISP族が誕生してもいいんじゃないっか
454デフォルトの名無しさん
2016/08/22(月) 19:06:35.37ID:oW9zLe2W powershelがマルチプラットフォーム&オープンソース化して化けたしここらで標準で使えるpowerLispっぽい何かが欲しいとこだに
455はちみつ餃子 ◆8X2XSCHEME
2016/08/23(火) 12:58:56.94ID:2DFoQv2G JVM にとっての Clojure みたいな?
特定の VM に縛られる方が特定の言語仕様に縛られるよりあほらしくない?
.NET の世界でのスタンダードな LISP 系言語があったらいいなぁというのはわかるけど、
.NET なライブラリを呼び出すだけなら適当なバインディングを作れば Gauche からだって出来るので、
Scheme の仕様が足かせということはないと思う。
特定の VM に縛られる方が特定の言語仕様に縛られるよりあほらしくない?
.NET の世界でのスタンダードな LISP 系言語があったらいいなぁというのはわかるけど、
.NET なライブラリを呼び出すだけなら適当なバインディングを作れば Gauche からだって出来るので、
Scheme の仕様が足かせということはないと思う。
456デフォルトの名無しさん
2016/08/23(火) 19:12:17.79ID:UTRMGA4h ttps://github.com/clojure/clojure-clr
clojureは.net版もあるね,JVM版とバージョンは一緒だけど
clojureでよく使われているプロジェクトはjavaライブラリのjarに依存してるのも多いからどうなんだろ?
clojureは.net版もあるね,JVM版とバージョンは一緒だけど
clojureでよく使われているプロジェクトはjavaライブラリのjarに依存してるのも多いからどうなんだろ?
457はちみつ餃子 ◆8X2XSCHEME
2016/08/24(水) 15:03:29.26ID:nZ9rDf/L >>453 について意見した >>455 にもうちょっと意見を付け足し
どちらを軸にするかという問題だから、
Java の世界を軸にすれば厳密に Scheme の仕様に従おうとするといまいちなところは出てくるだろうし、
Scheme の仕様を軸にすれば Java (JVM) のデザインがクソザコに思えたりもするだろう。
Scheme からでも Java やら dotNET の機能は呼び出せるが、
単に呼び出せるというのと全体として違和感なく統合されているというのは別物なので、
dotNET ユーザにとっては dotNET の世界に合わせた LISP が欲しいというのは納得のいく意見だと思う。
でもそこで Scheme を引き合いに出されると違和感あるわ。
Gauche は別に dotNET を想定してデザインしたわけじゃないしハナから Scheme 処理系なんだから
軸足は Scheme にあるわけで dotNET 的に制約に感じられても当たり前の話。
勝手な評価軸で「アホらしい」なんてのはそれこそアホらしい。
どちらを軸にするかという問題だから、
Java の世界を軸にすれば厳密に Scheme の仕様に従おうとするといまいちなところは出てくるだろうし、
Scheme の仕様を軸にすれば Java (JVM) のデザインがクソザコに思えたりもするだろう。
Scheme からでも Java やら dotNET の機能は呼び出せるが、
単に呼び出せるというのと全体として違和感なく統合されているというのは別物なので、
dotNET ユーザにとっては dotNET の世界に合わせた LISP が欲しいというのは納得のいく意見だと思う。
でもそこで Scheme を引き合いに出されると違和感あるわ。
Gauche は別に dotNET を想定してデザインしたわけじゃないしハナから Scheme 処理系なんだから
軸足は Scheme にあるわけで dotNET 的に制約に感じられても当たり前の話。
勝手な評価軸で「アホらしい」なんてのはそれこそアホらしい。
458デフォルトの名無しさん
2016/08/24(水) 18:47:43.67ID:urM54ZXn .netはc#,f#に集約されているので、S式使った組み込みDSL向けか、replなどのユーティリティー系しか用途がない気はする。
最近はnotebook形式のツールが増えてきたので、そっちも限られてきた気はするが。
最近はnotebook形式のツールが増えてきたので、そっちも限られてきた気はするが。
459デフォルトの名無しさん
2016/08/24(水) 18:56:20.06ID:urM54ZXn .netはDLRが出た時に.net言語の実装増えたけど、利用者少ないし、ほとんどがメンテできてないんじゃないかな
JVMだと使える処理系としてkawa、abclもメンテされてるはず。
それとリッチ・ヒッキーは.netでscheme実装やってみたけど、意図的にclojureからjvmに移行したという記憶が。
clojureは組み込みデータ型がJVMに寄ってるので、cljsもclojureclrも組み込みのデータ型で苦労してるし、clrは特にサードパーティーのライブラリが対応してなくて苦労してる。
ただ、ニュートラルにするとshenとかFantomみたいにあんまり他の言語と相互利用できなくなる。
clrは、unity使えるけどスマホで使えないし、WPF対応させたりしてるけどクロス環境では使えないみたいな話も。
JVMは末尾再帰辛いけどindyやgraalvm+truffleみたいにネタが増えてて実装オタク向けの新しい題材が増えてるし、他のVMでも.netよりもerlangのvmや、llvmあたりの方がまだ活発なイメージがある。
JVMだと使える処理系としてkawa、abclもメンテされてるはず。
それとリッチ・ヒッキーは.netでscheme実装やってみたけど、意図的にclojureからjvmに移行したという記憶が。
clojureは組み込みデータ型がJVMに寄ってるので、cljsもclojureclrも組み込みのデータ型で苦労してるし、clrは特にサードパーティーのライブラリが対応してなくて苦労してる。
ただ、ニュートラルにするとshenとかFantomみたいにあんまり他の言語と相互利用できなくなる。
clrは、unity使えるけどスマホで使えないし、WPF対応させたりしてるけどクロス環境では使えないみたいな話も。
JVMは末尾再帰辛いけどindyやgraalvm+truffleみたいにネタが増えてて実装オタク向けの新しい題材が増えてるし、他のVMでも.netよりもerlangのvmや、llvmあたりの方がまだ活発なイメージがある。
460デフォルトの名無しさん
2016/08/24(水) 22:03:15.08ID:kzFjQi4C >>459
> clojureは組み込みデータ型がJVMに寄ってるので、cljsもclojureclrも組み込みのデータ型で苦労してるし、clrは特にサードパーティーのライブラリが対応してなくて苦労してる。
なんでそういう勘違いしてるのか気になるな
clojureの組み込みリテラルは数値、シンボル,キーワード、文字列、キャラクタ、list、vector、dictionary(map)とsetでCLRでも問題無い奴しか無いよ
> clrは、unity使えるけどスマホで使えないし、WPF対応させたりしてるけどクロス環境では使えないみたいな話も。
スマホはiOSが実行時評価禁止してるからunity上でのclojure.clrは制限があるのは事実だけど、これも誤解が入っていると思うぞ
> JVMは末尾再帰辛いけどindyやgraalvm+truffleみたいにネタが増えてて実装オタク向けの新しい題材が増えてるし、他のVMでも.netよりもerlangのvmや、llvmあたりの方がまだ活発なイメージがある。
JVMは末尾再帰を完全に保証できないからclojureのrecurが生まれたのだけど、順序間違ってない?
> clojureは組み込みデータ型がJVMに寄ってるので、cljsもclojureclrも組み込みのデータ型で苦労してるし、clrは特にサードパーティーのライブラリが対応してなくて苦労してる。
なんでそういう勘違いしてるのか気になるな
clojureの組み込みリテラルは数値、シンボル,キーワード、文字列、キャラクタ、list、vector、dictionary(map)とsetでCLRでも問題無い奴しか無いよ
> clrは、unity使えるけどスマホで使えないし、WPF対応させたりしてるけどクロス環境では使えないみたいな話も。
スマホはiOSが実行時評価禁止してるからunity上でのclojure.clrは制限があるのは事実だけど、これも誤解が入っていると思うぞ
> JVMは末尾再帰辛いけどindyやgraalvm+truffleみたいにネタが増えてて実装オタク向けの新しい題材が増えてるし、他のVMでも.netよりもerlangのvmや、llvmあたりの方がまだ活発なイメージがある。
JVMは末尾再帰を完全に保証できないからclojureのrecurが生まれたのだけど、順序間違ってない?
461デフォルトの名無しさん
2016/08/25(木) 03:01:28.74ID:EcGIN1F9 フォローありがとう。
unity+clojureclrってiosで動くようになったのか。
javaの規格では末尾再帰最適化はないけど、
ibmのj9 vmでは、末尾再帰最適化してくれる。
unity+clojureclrってiosで動くようになったのか。
javaの規格では末尾再帰最適化はないけど、
ibmのj9 vmでは、末尾再帰最適化してくれる。
462デフォルトの名無しさん
2016/09/12(月) 17:44:10.20ID:qDbI1d2i S式はいつまで日陰なのか
なんでXMLは普及したのか
XMLの前身のHTMLはなぜS式ではなかったのか
無茶苦茶汚くなるスクリプト埋め込みやCSSとかをなぜ苦労してまで使うのか
そんなにS式が嫌か
なんでXMLは普及したのか
XMLの前身のHTMLはなぜS式ではなかったのか
無茶苦茶汚くなるスクリプト埋め込みやCSSとかをなぜ苦労してまで使うのか
そんなにS式が嫌か
463デフォルトの名無しさん
2016/09/12(月) 18:18:05.53ID:q3qEXh1t 手習いの推薦図書で興味を惹かれたんだけど
物まね鳥きちんと読むと、どうなるの?
Lispをやるのにどんなご利益があるの?
物まね鳥きちんと読むと、どうなるの?
Lispをやるのにどんなご利益があるの?
464デフォルトの名無しさん
2016/10/08(土) 11:21:36.68ID:fiaM9vLl >そんなにS式が嫌か
はい
はい
465デフォルトの名無しさん
2016/10/08(土) 12:09:44.18ID:1yrGmOsT 括弧の対応わかんなくてインデントで対処したら
だったらインデントあれば括弧いらなくね?ってなって
いまでは立派なHaskeller
だったらインデントあれば括弧いらなくね?ってなって
いまでは立派なHaskeller
466デフォルトの名無しさん
2016/10/08(土) 17:17:37.57ID:4LO02OW+ ごめんなさい、殺さないで
467デフォルトの名無しさん
2016/10/08(土) 20:59:11.69ID:MxYncUTD にわかHaskellerだけど立派ではないだろ盛るのもいいかげんにしろ
468はちみつ餃子 ◆8X2XSCHEME
2016/10/08(土) 21:05:09.85ID:vq0777oC Gauche 0.9.5 出たよー
469デフォルトの名無しさん
2016/10/09(日) 01:16:51.64ID:0XqPv4tB いつまで0.9彷徨ってんだよ
そんなハードル高く設定して何になる
そんなハードル高く設定して何になる
470デフォルトの名無しさん
2016/10/10(月) 23:42:14.48ID:goEL863s 今のバージョンを何と呼ぼうと手に入る機能は変わらないのに、バカなの?
471はちみつ餃子 ◆8X2XSCHEME
2016/10/13(木) 14:55:07.45ID:j1zwT3+2 ナンバーが 1 未満だと未完成という印象になっちゃうのかな?
バージョンナンバーの振り方はそれぞれのプロジェクトでのポリシーで決める話。
Gauche の場合はこういうマイルストーンが設定されてる。
http://practical-scheme.net/gauche/devinfo-j.html
たぶん作者が考える一通りの機能がこれだけということではあるんだろうけど、
バージョン 0.9.5 は 0.9.5 という完成品だし、 1 を過ぎたからってそれで終わりってわけでもない。
所詮は一区切りの目安。
バージョンナンバーの振り方はそれぞれのプロジェクトでのポリシーで決める話。
Gauche の場合はこういうマイルストーンが設定されてる。
http://practical-scheme.net/gauche/devinfo-j.html
たぶん作者が考える一通りの機能がこれだけということではあるんだろうけど、
バージョン 0.9.5 は 0.9.5 という完成品だし、 1 を過ぎたからってそれで終わりってわけでもない。
所詮は一区切りの目安。
472デフォルトの名無しさん
2016/10/13(木) 19:48:53.96ID:PkuNke6K セマンティックバージョニングみたいなのがあるし、最近だと1.0を出さないのは個人で開発してるとおおいのかな?
昔はtexみたく収束していく系やってる人は多かったけど、やっぱり個人かね。
昔はtexみたく収束していく系やってる人は多かったけど、やっぱり個人かね。
473デフォルトの名無しさん
2016/10/14(金) 01:22:40.11ID:XWvLcjKQ というかそのドット別に小数点じゃないし・・・
混同するのは間違いないのでいっそコロンやセミコロンで区切ったほうが理解しやすいかもしれない
混同するのは間違いないのでいっそコロンやセミコロンで区切ったほうが理解しやすいかもしれない
474デフォルトの名無しさん
2016/10/14(金) 10:16:22.13ID:vLfiDK4O いや、本来は小数点だったよ
「0.9の次だけどまだ未完成だから0.10にしたよー」とかやらかしたから信用を失っただけで
「0.9の次だけどまだ未完成だから0.10にしたよー」とかやらかしたから信用を失っただけで
475デフォルトの名無しさん
2016/10/14(金) 18:32:55.43ID:7nOZHdhP >>474
具体的なソフト名挙げろや。普通 0.91 とかに行くだろ。
具体的なソフト名挙げろや。普通 0.91 とかに行くだろ。
476デフォルトの名無しさん
2016/10/14(金) 19:07:47.56ID:zN4aic2C 社内業務ソフトですらバージョン番号が0.xなのってざらだと思うのだけどなぁ
1.0ってほぼこれで完璧的な意味で付ける会社もあるだろうし
(売り物のくせにVer 3の倍数から完璧の会社もあるけど:老舗のOS屋さんとか)
なお、1.0以降になるとちょっと仕様が変わっただけでメジャーバージョンが上がる会社もあるけど(猫科の動物の名前付ける所とか:Ver 9までクソだったような気もするけど)
ようするにバージョン番号って作者が自由に付ける物じゃないの?
1.0ってほぼこれで完璧的な意味で付ける会社もあるだろうし
(売り物のくせにVer 3の倍数から完璧の会社もあるけど:老舗のOS屋さんとか)
なお、1.0以降になるとちょっと仕様が変わっただけでメジャーバージョンが上がる会社もあるけど(猫科の動物の名前付ける所とか:Ver 9までクソだったような気もするけど)
ようするにバージョン番号って作者が自由に付ける物じゃないの?
477はちみつ餃子 ◆8X2XSCHEME
2016/10/14(金) 19:53:07.72ID:njZqyYby >>476
自由でいいけど、ひとつのソフトは一貫した (わかりやすい) ルールを持っておいてほしくはあるね。
自由でいいけど、ひとつのソフトは一貫した (わかりやすい) ルールを持っておいてほしくはあるね。
478デフォルトの名無しさん
2016/10/14(金) 21:35:46.95ID:5nO9NwFR まあ linux もいきなり 3.x になったり,よく分からない理由で 4.x になったり
479デフォルトの名無しさん
2016/10/14(金) 21:53:32.26ID:SkqOUpcH Windowsも10になったけど中身は8なんだろ?
480デフォルトの名無しさん
2016/10/15(土) 10:14:21.43ID:C9liqmNs 0-originでバージョン付けたっていいじゃない。
481デフォルトの名無しさん
2016/10/15(土) 21:27:25.53ID:bOlsxR9R 0.x.yは劇的な変更があっても泣くなよ、という意味合いだと思っている
個人的にはセマンティックバージョニングを付けてもらえるとありがたい
1.x.yなら、機能追加でxを1つ増やして、バグ修正でyを1つ増やすってやつ
0.a.bは開発途中だから後方互換性は無くてもいいので、開発者が試行錯誤しているうちは1未満だとはっきり分かる
firefoxやchromeの馬鹿みたいなバージョン上げはマーケティングの意味合いが強くて好きになれない
個人的にはセマンティックバージョニングを付けてもらえるとありがたい
1.x.yなら、機能追加でxを1つ増やして、バグ修正でyを1つ増やすってやつ
0.a.bは開発途中だから後方互換性は無くてもいいので、開発者が試行錯誤しているうちは1未満だとはっきり分かる
firefoxやchromeの馬鹿みたいなバージョン上げはマーケティングの意味合いが強くて好きになれない
482デフォルトの名無しさん
2016/10/15(土) 22:15:44.10ID:pvROaeUb つーても実際非互換変更頻繁に入るから厳格に管理する意味ないだろ
483はちみつ餃子 ◆8X2XSCHEME
2016/10/16(日) 02:21:56.19ID:5wsvLL7T 仕様バグの修正なんかだと、バグ修正でもあるし、非互換な変更でもある。
ライブラリのバージョンにセマンティックバージョニングを採用した場合、
パッチバージョンの変更があったときにそのライブラリを使うアプリケーションが本当に正しく動くのかは
厳密にいえばライブラリの個別のバージョンを確認しないとわからんだろ。
あまりあてにならない。
ライブラリにバグがあってもそのバグの挙動に依存しているアプリケーションだってありうるわけで。
目安としてセマンティックバージョニングを導入するのは賛成だけど、厳密にしきれない部分はどうしてもあるわな。
そこらへんは柔軟に対処するしかしゃあねぇべ。
ライブラリのバージョンにセマンティックバージョニングを採用した場合、
パッチバージョンの変更があったときにそのライブラリを使うアプリケーションが本当に正しく動くのかは
厳密にいえばライブラリの個別のバージョンを確認しないとわからんだろ。
あまりあてにならない。
ライブラリにバグがあってもそのバグの挙動に依存しているアプリケーションだってありうるわけで。
目安としてセマンティックバージョニングを導入するのは賛成だけど、厳密にしきれない部分はどうしてもあるわな。
そこらへんは柔軟に対処するしかしゃあねぇべ。
484デフォルトの名無しさん
2016/10/16(日) 09:37:20.54ID:PjXU2mUU >>482はJSブラウザエンジンの話な
何にしても各言語なりの界隈の慣習に則ればいい
何にしても各言語なりの界隈の慣習に則ればいい
485デフォルトの名無しさん
2016/10/16(日) 18:47:56.29ID:dK/+e+o+486デフォルトの名無しさん
2016/10/17(月) 06:02:40.67ID:IeaGZ3RQ そういうことにしちゃっただけで、実質8.xx(6.xx)みたいなもんでしょ
487デフォルトの名無しさん
2016/11/15(火) 14:34:16.46ID:rex6X+v0 http://lipn.univ-paris13.fr/~bennani/CSRank.html
コンピュータ関連国際会議ランキングをlispで検索すると
European Lisp Workshop
しかなかった
コンピュータ関連国際会議ランキングをlispで検索すると
European Lisp Workshop
しかなかった
488デフォルトの名無しさん
2016/11/15(火) 22:07:24.81ID:Ei/g+r4v https://en.m.wikipedia.org/wiki/International_Conference_on_Functional_Programming
時代の流れにより96年にFPCAとLFPがICFPに置き換えられた。
時代の流れにより96年にFPCAとLFPがICFPに置き換えられた。
489デフォルトの名無しさん
2016/12/07(水) 03:48:27.70ID:tATsD5IS490デフォルトの名無しさん
2016/12/07(水) 10:57:02.71ID:IYOLLYww 何か革新的な話題無いの?
491デフォルトの名無しさん
2016/12/08(木) 08:26:21.07ID:v+J3OHGS Anything.el再起動と革新的話題では?
492デフォルトの名無しさん
2016/12/15(木) 23:40:28.38ID:Z/98FfuD >>462
つ WebAssembly
つ WebAssembly
493デフォルトの名無しさん
2017/01/25(水) 16:59:16.79ID:IDNrNCFj494デフォルトの名無しさん
2017/01/25(水) 17:18:28.01ID:IDNrNCFj ところで R7RS-Large は Red Edition (データ構造に関する部分) がワーキンググループの Wiki に上がってる。
http://trac.sacrideo.us/wg/wiki/RedEdition
ほぼ SRFI から名前を変えてそのまま導入する形になる模様。
今のところ Sagittarius が積極的にサポートしている。
http://compassoftime.blogspot.jp/2017/01/r7rs-large.html
Larceny もライブラリの名前を除いてサポートできているとのこと。
http://trac.sacrideo.us/wg/wiki/RedEdition
ほぼ SRFI から名前を変えてそのまま導入する形になる模様。
今のところ Sagittarius が積極的にサポートしている。
http://compassoftime.blogspot.jp/2017/01/r7rs-large.html
Larceny もライブラリの名前を除いてサポートできているとのこと。
495デフォルトの名無しさん
2017/02/12(日) 07:48:00.04ID:fljd0HzI 並列処理で高速化できるlispってないの?
GPU使えるのはハーランだけ?
GPU使えるのはハーランだけ?
496デフォルトの名無しさん
2017/02/13(月) 18:51:16.49ID:tGnu7zYw497デフォルトの名無しさん
2017/02/13(月) 19:49:20.99ID:19NXxZ/v これはclojureの資料だけど、いまのところfloatをSSE2に投げるみたいな、なんでもGPUに投げるみたいな仕組みはないんじゃないかな。
http://dragan.rocks/talks/EuroClojure2016/clojure-is-not-afraid-of-the-gpu.html
http://dragan.rocks/talks/EuroClojure2016/clojure-is-not-afraid-of-the-gpu.html
498SCHEME餃子 ◆8X2XSCHEME
2017/02/13(月) 20:41:00.93ID:B8yZNpnE ある程度大きな単位でならバインディング作って投げてしまえばいいんだけど、
ちまちまやると境界を超える部分のオーバーヘッドで逆効果になったりするので、
本格的にやろうとすると処理系自体がサポートする必要はあると思う。
ちまちまやると境界を超える部分のオーバーヘッドで逆効果になったりするので、
本格的にやろうとすると処理系自体がサポートする必要はあると思う。
499デフォルトの名無しさん
2017/02/17(金) 09:12:11.58ID:SQwgU5dB Racketのプログラムを並列化して高速化したい。ハーランに書き直すのが1番手間かからずに高速化できるのだろうか
500デフォルトの名無しさん
2017/02/23(木) 05:43:04.17ID:hf6cZ/5o501デフォルトの名無しさん
2017/03/04(土) 17:46:48.41ID:ASS1Dwl9 『scheme手習い』読み始めた
この本自体はめっちゃ面白いけど実際に自分のPCでschemeを走らせる方法が全く分からないのはどうすれば
この本自体はめっちゃ面白いけど実際に自分のPCでschemeを走らせる方法が全く分からないのはどうすれば
>>501
goche を入れればよい
goche を入れればよい
503デフォルトの名無しさん
2017/03/04(土) 18:14:56.86ID:ASS1Dwl9504デフォルトの名無しさん
2017/03/04(土) 19:28:05.44ID:cw8QUsOc プログラミングGaucheはそろそろ次版が欲しい
505デフォルトの名無しさん
2017/03/05(日) 09:40:39.32ID:ZY1iiKPn506デフォルトの名無しさん
2017/03/05(日) 15:16:43.40ID:g3CQlQFl507デフォルトの名無しさん
2017/03/05(日) 18:35:17.08ID:PeNyQ7CN >>506
オッケー
オッケー
508SCHEME餃子 ◆8X2XSCHEME
2017/03/06(月) 19:02:32.45ID:4f//mV7K 個人的にはそろそろ R7RS (の処理系) を前提にしてもいいんじゃないかと思ってるが、
総合的な開発環境の便利さとしては Racket が優勝だわな。
少なくとも初心者にすすめられるものとしては。
総合的な開発環境の便利さとしては Racket が優勝だわな。
少なくとも初心者にすすめられるものとしては。
509デフォルトの名無しさん
2017/03/07(火) 15:34:16.05ID:d/UktTsb >>508
> 個人的にはそろそろ R7RS (の処理系) を前提にしてもいいんじゃないかと思ってるが、
R7RSはsmallの範囲は言語仕様書のドラフトが提出されたというのを何かで見た覚えがあるが
R6RSで巨大化した範囲に対応largeの部分の仕様書はドラフトでも出たのか?
あれがまとまるとは思えんのだが
それに処理系側もR7RSへの対処は結局はsmallだけへの対応で終わる…R6RSが処理系屋からほとんど無視されたように…のでは、と
個人的には予想している
そしてその予想が正しいならば、R5RS対応の処理系を使う前提で十分な気がする
(R7RSで言語仕様をsmall/largeの2階層モデルにした意図が、Come back! R5RS! Good bye R6RS! X-p にあるのは明らかだからね)
> 個人的にはそろそろ R7RS (の処理系) を前提にしてもいいんじゃないかと思ってるが、
R7RSはsmallの範囲は言語仕様書のドラフトが提出されたというのを何かで見た覚えがあるが
R6RSで巨大化した範囲に対応largeの部分の仕様書はドラフトでも出たのか?
あれがまとまるとは思えんのだが
それに処理系側もR7RSへの対処は結局はsmallだけへの対応で終わる…R6RSが処理系屋からほとんど無視されたように…のでは、と
個人的には予想している
そしてその予想が正しいならば、R5RS対応の処理系を使う前提で十分な気がする
(R7RSで言語仕様をsmall/largeの2階層モデルにした意図が、Come back! R5RS! Good bye R6RS! X-p にあるのは明らかだからね)
510はつみつ餃子 ◆8X2XSCHEME
2017/03/07(火) 15:59:23.09ID:Jusdeq18 >>509
Large の状況については >>494 の通り。
全部の議論が終わるのはまだかなり先のことになるだろうし、
処理系の対応がどうなるかはまだなんとも言えないところはあるのは確かだと思う。
でも、 R7RS Small については R5RS を少し拡張するにとどまったからこそ、
その程度の小さな差を導入することをためらわなくていいんじゃないかという意図だった。
R5RS でも十分といえば十分なのかもしれないけど
特にライブラリなんかは結局のところ R5RS 処理系でもそれぞれの処理系ごとに機構を持ってたりするし、
SRFI を使ったりするときに統一的な書き方ができた方が教える方もやりやすいよ。
Large の状況については >>494 の通り。
全部の議論が終わるのはまだかなり先のことになるだろうし、
処理系の対応がどうなるかはまだなんとも言えないところはあるのは確かだと思う。
でも、 R7RS Small については R5RS を少し拡張するにとどまったからこそ、
その程度の小さな差を導入することをためらわなくていいんじゃないかという意図だった。
R5RS でも十分といえば十分なのかもしれないけど
特にライブラリなんかは結局のところ R5RS 処理系でもそれぞれの処理系ごとに機構を持ってたりするし、
SRFI を使ったりするときに統一的な書き方ができた方が教える方もやりやすいよ。
511デフォルトの名無しさん
2017/03/07(火) 16:36:42.01ID:d/UktTsb512デフォルトの名無しさん
2017/03/27(月) 00:34:43.57ID:vvNcurYK ここはスレチかもしれんがGo言語の勉強兼ねてR7RS片手にScheme処理系組んでみようとしてるけどトークナイザ書くの面倒すぎて心折れそう、お前らどうやってコード書くモチベ維持してるの?
513デフォルトの名無しさん
2017/03/27(月) 11:59:36.16ID:rJ5GwHyl schemeレベルで面倒つったら他の演算子入りの言語じゃどうなるんだ
514デフォルトの名無しさん
2017/03/27(月) 12:19:08.00ID:wLrtvEW7 トークナイザなら特に変わらん
515はつみつ餃子 ◆8X2XSCHEME
2017/03/27(月) 13:04:02.91ID:X8O8C+77 >>512
最初から完全である必要はないよ。
数値を整数だけにして文字列や識別子のエスケープも全部省略くらいのものから始めたらいいと思う。
限定的にでも動くものが目の前にあればモチベーションを維持しやすい。
最初から完全である必要はないよ。
数値を整数だけにして文字列や識別子のエスケープも全部省略くらいのものから始めたらいいと思う。
限定的にでも動くものが目の前にあればモチベーションを維持しやすい。
516デフォルトの名無しさん
2017/03/27(月) 16:27:52.97ID:do2TA6Gp >>515
なるほど、とりあえず簡単なとこからやるか
なるほど、とりあえず簡単なとこからやるか
517デフォルトの名無しさん
2017/04/02(日) 12:22:30.38ID:aBxOBDdQ 通常のletのように使うだけでgensym済みのlet文を生成するマクロ用コードを作ったのですが、このような挙動をする関数名を教えてください。
(let ((foo (gensym))) `(let ((,foo ,x)) ...)
が
(my-let* ((foo x)) ...)
と書ける感じです。再発明でなく役立つのであればここにCC0で貼りたいです。
(let ((foo (gensym))) `(let ((,foo ,x)) ...)
が
(my-let* ((foo x)) ...)
と書ける感じです。再発明でなく役立つのであればここにCC0で貼りたいです。
518デフォルトの名無しさん
2017/04/02(日) 12:34:36.86ID:3lfrxhSb On Lisp に with-gensyms っていうマクロが載ってるけど、
それとは違う?
それとは違う?
519デフォルトの名無しさん
2017/04/02(日) 12:49:44.85ID:aBxOBDdQ with-gensymsではたぶんこうなると思います。
(with-gensyms (foo) `(let ((,foo ,x)) ...))
(with-gensyms (foo) `(let ((,foo ,x)) ...))
520デフォルトの名無しさん
2017/04/02(日) 13:06:11.52ID:aBxOBDdQ 突然死しないうちにとりあえず貼りますね。
アカウントは消すのでいいものであればbase64で書き残します。
ttps://gist.github.com/lla/f9244aefb7eee18db4cd
アカウントは消すのでいいものであればbase64で書き残します。
ttps://gist.github.com/lla/f9244aefb7eee18db4cd
521デフォルトの名無しさん
2017/04/02(日) 19:23:02.31ID:28FWzFad レキシカルスコープのletやlet*でgensym必要なの?
使い道が良く判らない
使い道が良く判らない
522デフォルトの名無しさん
2017/04/03(月) 10:05:01.53ID:+t4V64u5 こういう時に要ると思うのですが...。要りませんか?
ttp://www.sampou.org/scheme/t-y-scheme/t-y-scheme-Z-H-10.html#node_sec_8.2
ttp://www.sampou.org/scheme/t-y-scheme/t-y-scheme-Z-H-10.html#node_sec_8.2
523デフォルトの名無しさん
2017/04/03(月) 15:23:03.92ID:dRI+3qaq 要るよ
524デフォルトの名無しさん
2017/04/03(月) 21:22:49.93ID:e3RabMtG `((lambda (foo) ...) ,x)と展開すりゃ要らないんじゃないの
525デフォルトの名無しさん
2017/04/03(月) 21:45:51.66ID:hrRYx8PC schemeでは衛生マクロを使うので不要だと思います。
commonlispでも仕様が中途半端なので不要だと思います。
そのまま書くのと手間が変わらないですし。
commonlispでも仕様が中途半端なので不要だと思います。
そのまま書くのと手間が変わらないですし。
526デフォルトの名無しさん
2017/04/04(火) 12:16:18.07ID:ugpuQ2R8 バカにマクロは無理だと何度
527デフォルトの名無しさん
2017/04/04(火) 16:11:24.87ID:L5RxkvgF528デフォルトの名無しさん
2017/04/04(火) 16:15:12.41ID:BUhgl6Ma そもそもgensymがなんで必要なのかを理解しているのかという
530デフォルトの名無しさん
2017/04/04(火) 22:10:42.70ID:QobCLqKi >>527 once-only っていう定番マクロしらないの?
(defmacro square (x) (my-let* ((g x)) `(* ,g ,g)))
(defmacro square (x) (once-only (x) `(* ,x ,x)))
それは中途半端なonce-onlyの再発明なんよ
(defmacro square (x) (my-let* ((g x)) `(* ,g ,g)))
(defmacro square (x) (once-only (x) `(* ,x ,x)))
それは中途半端なonce-onlyの再発明なんよ
531デフォルトの名無しさん
2017/04/05(水) 11:30:15.85ID:must9X5J and や orって短絡評価な気がして>>527はもやもやする
それと副作用のある式を同一式に並べるのは未定義だった気がする
それと副作用のある式を同一式に並べるのは未定義だった気がする
532デフォルトの名無しさん
2017/04/05(水) 11:40:21.51ID:0wF5qf+D >>530
素敵です! ありがとうございます! これが探し求めていたものです。より良いものがあることを願っていました。
素敵です! ありがとうございます! これが探し求めていたものです。より良いものがあることを願っていました。
533デフォルトの名無しさん
2017/04/05(水) 11:59:09.52ID:FrHqCsnx >>531
確か評価順が未定義なだけ。
確か評価順が未定義なだけ。
534デフォルトの名無しさん
2017/04/05(水) 12:49:06.15ID:must9X5J ((a b c) d)の評価順序は
a b cの順序は決まってなくて(a b c)の後にdが評価されるのだけは保証されている。で合ってるよね?
もちろんマクロや特殊形式の引数は除外だけど>>527の展開結果は(a b c)と同じことになってる
さらに(or a b c)ならaがtrueの時点で評価打ち切りでb cは評価されない(短絡評価)
(or a b c)がマクロなら以下のように展開されないといけない
((lambda(x k) (if x x (k))) a (lambda() ((lambda(x k) (if x x (k))) b (lambda() c))))
a b cの順序は決まってなくて(a b c)の後にdが評価されるのだけは保証されている。で合ってるよね?
もちろんマクロや特殊形式の引数は除外だけど>>527の展開結果は(a b c)と同じことになってる
さらに(or a b c)ならaがtrueの時点で評価打ち切りでb cは評価されない(短絡評価)
(or a b c)がマクロなら以下のように展開されないといけない
((lambda(x k) (if x x (k))) a (lambda() ((lambda(x k) (if x x (k))) b (lambda() c))))
535デフォルトの名無しさん
2017/04/05(水) 12:51:42.98ID:must9X5J >a b cの順序は決まってなくて(a b c)の後にdが評価されるのだけは保証されている。で合ってるよね?
これ合ってないわ。評価されるからそれを見越して>>534の最後のように遅延評価を入れとくって話
もういいです。
これ合ってないわ。評価されるからそれを見越して>>534の最後のように遅延評価を入れとくって話
もういいです。
536デフォルトの名無しさん
2017/04/05(水) 12:59:10.45ID:must9X5J 評価されるから、じゃなくて評価の順序が決まってないから
それを見越して無引数lambdaを1つ挟む必要があるだった。
それを見越して無引数lambdaを1つ挟む必要があるだった。
537デフォルトの名無しさん
2017/04/05(水) 13:01:01.45ID:must9X5J 気持ち悪いからまとめると、
((a b c) d)のa b c dの評価順序は何も決まってないから気をつけてねって事。
((a b c) d)のa b c dの評価順序は何も決まってないから気をつけてねって事。
538デフォルトの名無しさん
2017/04/05(水) 15:11:50.69ID:I9ofuKtd 最初の要素を最初に評価しないとマクロかどうか分からないかと思ってたが、その前の段階でマクロかどうかを判断することができるらしいんで、仕様では決まってないのか
((begin (display "1st\n") +) (begin (display "2nd\n") 2) (begin (display "3rd\n") 3))
をchezとgaucheで評価したら
2nd
3rd
1st
5
って順番だった。guileやchickenだと
1st
2nd
3rd
5
って順番になる。
((begin (display "1st\n") +) (begin (display "2nd\n") 2) (begin (display "3rd\n") 3))
をchezとgaucheで評価したら
2nd
3rd
1st
5
って順番だった。guileやchickenだと
1st
2nd
3rd
5
って順番になる。
539はつみつ餃子 ◆8X2XSCHEME
2017/04/05(水) 16:19:09.69ID:Paj3QjV7 最適化や諸々の都合で、同じ処理系でも順序が変わることはあるので、
単純な事例だけでは処理系の性質を推し量ることは出来ない。
単純な事例だけでは処理系の性質を推し量ることは出来ない。
540デフォルトの名無しさん
2017/04/05(水) 17:06:07.45ID:0wF5qf+D (define-macro (my-once-only1 x . body)
(let1 tmp (gensym)
`(glet1 ,tmp ,x
(let1 ,x ,tmp ,@body) )))
(use srfi-1)
(define-macro (my-once-only vars . body)
(let ((names (map (lambda (_) (gensym)) vars)) )
`(glet* ,(zip names vars)
(let ,(zip vars names) ,@body)
) ))
念願のものが作れました…。これで心残りはありません。
(let1 tmp (gensym)
`(glet1 ,tmp ,x
(let1 ,x ,tmp ,@body) )))
(use srfi-1)
(define-macro (my-once-only vars . body)
(let ((names (map (lambda (_) (gensym)) vars)) )
`(glet* ,(zip names vars)
(let ,(zip vars names) ,@body)
) ))
念願のものが作れました…。これで心残りはありません。
541はつみつ餃子 ◆8X2XSCHEME
2017/04/05(水) 20:28:07.58ID:Paj3QjV7 Scheme でやるなら syntax-rules でやったほうが楽だと思うが。
542デフォルトの名無しさん
2017/04/06(木) 03:23:23.24ID:A4tBLGW+543デフォルトの名無しさん
2017/04/06(木) 07:25:30.75ID:/2aNxn9F544デフォルトの名無しさん
2017/04/06(木) 16:32:44.68ID:R/lK+iME やっとリスト処理に慣れてgensymであーだこーだしてる人にsyntax-rulesは敷居高いと思う
545デフォルトの名無しさん
2017/04/06(木) 16:36:20.16ID:sOUw0TpV syntax-rulesはR7RS眺めてもよくわからんかった
546デフォルトの名無しさん
2017/04/06(木) 18:46:00.39ID:b3KdhuXf むしろSchemeから学ぶとマクロ入門にはsyntax-rulesしか書いてなくてdefine-macro&gensym触る機会が無かった
547はつみつ餃子 ◆8X2XSCHEME
2017/04/06(木) 21:09:32.30ID:HwCzkOKu 伝統的マクロの方が動作モデルを想像しやすくはあるかもね。
548デフォルトの名無しさん
2017/04/13(木) 05:14:19.83ID:x8ZfQnJg Racketは死んだ
549デフォルトの名無しさん
2017/04/13(木) 16:03:04.54ID:RXvGitp8 >>546
> むしろSchemeから学ぶとマクロ入門にはsyntax-rulesしか書いてなくてdefine-macro&gensym触る機会が無かった
>>547
> 伝統的マクロの方が動作モデルを想像しやすくはあるかもね。
Schemeの場合、何でもありのマクロを排除して意味や動作を形式的に定義でき、
展開結果の正しさ(変数が展開したとたんに突然バインドされたりしない等)を保証できる範囲に留めたいという発想が
根底にあるからね
だからsyntax-rulesなどSchemeでの「マクロ」はあくまでも構文の拡張(カスタマイズ)のためなんだよね
つまり字句レベルを勝手に弄らせるとどんなトラブルでも起こし得るから勝手に弄らせたくたくない、
プログラマがお好みの構文を既存構文を使って定義して追加したいというならそれは許してあげよう
(例えばCみたいにwhile文…ループ条件の判定が最初に行われる構文…がある言語にrepeat〜until文を追加したいなら
許してあげように相当)というのがSchemeの基本的なスタンス
つまり、Schemeの場合はソースレベル(テキストレベルと言っても良い)で好き勝手な操作を許す本来のマクロ
(ソースコードレベルのメタプログラミング手段)でなくて、抽象構文レベルでの変換規則を定義し使用する範囲だけに
限定しているんだと考えれば良いと個人的には思ってるけどね
だから(メタ)プログラムの動きで理解するタイプの人(プログラマには多い、特に優秀な人ほど)にとっては
古典的なマクロのほうが却って理解しやすく、逆に理屈が好きで系統的に理解したがる(代わりにプログラムの腕は
さほどでないのが多い)人間にはSchemeの構文拡張のほうが理解しやすくそちらを好む人が多い
もっともsyntax-rulesとかを提案して実現した向うの連中はプログラミングの腕力も上級者以上ばかりだけどね
(でも殆どの凡人は、プログラミングの腕か理屈かの高々どちらかしか得意でない、まあだからこそ凡人なわけでして
どっちも両立できちゃったらGuy Steele, Jr.みたいになれちゃうよね)
> むしろSchemeから学ぶとマクロ入門にはsyntax-rulesしか書いてなくてdefine-macro&gensym触る機会が無かった
>>547
> 伝統的マクロの方が動作モデルを想像しやすくはあるかもね。
Schemeの場合、何でもありのマクロを排除して意味や動作を形式的に定義でき、
展開結果の正しさ(変数が展開したとたんに突然バインドされたりしない等)を保証できる範囲に留めたいという発想が
根底にあるからね
だからsyntax-rulesなどSchemeでの「マクロ」はあくまでも構文の拡張(カスタマイズ)のためなんだよね
つまり字句レベルを勝手に弄らせるとどんなトラブルでも起こし得るから勝手に弄らせたくたくない、
プログラマがお好みの構文を既存構文を使って定義して追加したいというならそれは許してあげよう
(例えばCみたいにwhile文…ループ条件の判定が最初に行われる構文…がある言語にrepeat〜until文を追加したいなら
許してあげように相当)というのがSchemeの基本的なスタンス
つまり、Schemeの場合はソースレベル(テキストレベルと言っても良い)で好き勝手な操作を許す本来のマクロ
(ソースコードレベルのメタプログラミング手段)でなくて、抽象構文レベルでの変換規則を定義し使用する範囲だけに
限定しているんだと考えれば良いと個人的には思ってるけどね
だから(メタ)プログラムの動きで理解するタイプの人(プログラマには多い、特に優秀な人ほど)にとっては
古典的なマクロのほうが却って理解しやすく、逆に理屈が好きで系統的に理解したがる(代わりにプログラムの腕は
さほどでないのが多い)人間にはSchemeの構文拡張のほうが理解しやすくそちらを好む人が多い
もっともsyntax-rulesとかを提案して実現した向うの連中はプログラミングの腕力も上級者以上ばかりだけどね
(でも殆どの凡人は、プログラミングの腕か理屈かの高々どちらかしか得意でない、まあだからこそ凡人なわけでして
どっちも両立できちゃったらGuy Steele, Jr.みたいになれちゃうよね)
550デフォルトの名無しさん
2017/04/13(木) 16:37:53.95ID:UOOoC4Ge syntax-rulesの動きがよくわからなくて理解できなかったけど古典的マクロなら単純で理解しやすかったな、準クォート使えば面倒でもなかったし(プログラムの腕はだめです)
551デフォルトの名無しさん
2017/04/13(木) 21:50:42.52ID:KIw0CyXw >>549 あくまでも構文の拡張のため
他のlispでもそうでしょ.具体的にそれ以外の他になにがある?
他のlispでもそうでしょ.具体的にそれ以外の他になにがある?
552デフォルトの名無しさん
2017/04/14(金) 01:29:59.73ID:ktX2OX7O >>551
他のLispに限らずマクロは構文の拡張と言えるほどの系統的な代物にはなってないでしょ
だからマクロを展開した途端にグローバルだったはずの変数が束縛されてローカルな変数に化けたりする(変数のキャプチャね)
つまり通常のマクロは(必要に応じて実行時と同じ計算も許して)ソーステキストという文字列データを処理しているだけ
それに対してsyntax-rulesなどに代表されるSchemeのは抽象構文上での操作とすることでテキストという文字でなく構文の句構造のレベルで扱い
変数のキャプチャなどを起こさないように保証するわけだ
ソースコードを文字データとして処理するのか句構造として処理するのかでは考え方も保証できる正しさや展開の安全性も全く違う
他のLispに限らずマクロは構文の拡張と言えるほどの系統的な代物にはなってないでしょ
だからマクロを展開した途端にグローバルだったはずの変数が束縛されてローカルな変数に化けたりする(変数のキャプチャね)
つまり通常のマクロは(必要に応じて実行時と同じ計算も許して)ソーステキストという文字列データを処理しているだけ
それに対してsyntax-rulesなどに代表されるSchemeのは抽象構文上での操作とすることでテキストという文字でなく構文の句構造のレベルで扱い
変数のキャプチャなどを起こさないように保証するわけだ
ソースコードを文字データとして処理するのか句構造として処理するのかでは考え方も保証できる正しさや展開の安全性も全く違う
553デフォルトの名無しさん
2017/04/14(金) 02:55:56.83ID:f5XItAeI554デフォルトの名無しさん
2017/04/14(金) 03:00:40.04ID:obKv6Nr0 Common lispにschemeのmatchマクロを移植したのないのでしょうか?
555デフォルトの名無しさん
2017/04/14(金) 07:39:01.84ID:a6xDhPFv さあ、わかんなくなってきました。
とにかくsyntax-rulesの方が高級で、実装がめんどくさくて、低機能で、とりあえずほとんどの用はたりる。
とにかくsyntax-rulesの方が高級で、実装がめんどくさくて、低機能で、とりあえずほとんどの用はたりる。
556デフォルトの名無しさん
2017/04/14(金) 20:02:05.16ID:E0l2Apap そのめんどくさいの一点だけでLISP系にsyntax-を導入する価値は微妙
パターンマッチだからLISPじゃなくていいわけよね
syntax-rule/caseを日本語で詳細解説した本とかWebページってない?
パターンマッチだからLISPじゃなくていいわけよね
syntax-rule/caseを日本語で詳細解説した本とかWebページってない?
557デフォルトの名無しさん
2017/04/14(金) 20:06:23.95ID:E0l2Apap なんだっけsyntax-rule/caseの他にもう2つぐらい別種があるんだよね
重複しないシンボル名の管理の観点では手間は同じだけど概念的にはより簡単な感じだったと思う
重複しないシンボル名の管理の観点では手間は同じだけど概念的にはより簡単な感じだったと思う
558デフォルトの名無しさん
2017/04/15(土) 09:36:50.92ID:MGc4G7Yt case は削除されなかった?他の2つも結局どうなったんだか
559はつみつ餃子 ◆8X2XSCHEME
2017/04/15(土) 11:21:48.74ID:7hkWD0i5 >>556
> そのめんどくさいの一点だけでLISP系にsyntax-を導入する価値は微妙
一概には言えない。
たとえば letrec のようなものをマクロで書こうとするとフォームを分解したり
衛生的にしたりする処理はいずれにしても必要なことで、
それを自動的にやってくれる syntax-rules だと簡単に書ける。
syntax-rules や syntax-case は言語のプリミティブな機能としては高級すぎるのは確かで、
これは低水準の部分でどのパラダイムを採用するかで意見が一致しなかった末の妥協案として
いきなり高級な機能を持ち込んだ結果。
参考: http://blog.practical-scheme.net/shiro?20100425-scheme-macro
実際の処理系では explicit renaming や syntactic closure を基礎に据えてその上に
syntax-rules や syntax-case のインターフェイスを実装している場合もよくある。
> そのめんどくさいの一点だけでLISP系にsyntax-を導入する価値は微妙
一概には言えない。
たとえば letrec のようなものをマクロで書こうとするとフォームを分解したり
衛生的にしたりする処理はいずれにしても必要なことで、
それを自動的にやってくれる syntax-rules だと簡単に書ける。
syntax-rules や syntax-case は言語のプリミティブな機能としては高級すぎるのは確かで、
これは低水準の部分でどのパラダイムを採用するかで意見が一致しなかった末の妥協案として
いきなり高級な機能を持ち込んだ結果。
参考: http://blog.practical-scheme.net/shiro?20100425-scheme-macro
実際の処理系では explicit renaming や syntactic closure を基礎に据えてその上に
syntax-rules や syntax-case のインターフェイスを実装している場合もよくある。
560デフォルトの名無しさん
2017/04/15(土) 15:50:40.85ID:HoujqO6s schemeだとread macroの定義ってどないなっとるん?
自分common lispとバージョンが上がるといつ消えるか解らないclojureのしか知らんのだけど。
自分common lispとバージョンが上がるといつ消えるか解らないclojureのしか知らんのだけど。
561はつみつ餃子 ◆8X2XSCHEME
2017/04/15(土) 16:38:57.94ID:7hkWD0i5 >>560
リードマクロについては Scheme の仕様には含まれないし SRFI にもないし、デファクトスタンダードといえるものもない。
処理系が独自にやっている場合はあるけど。
私見だが、 Common Lisp に比べて Scheme はモジュール化を強く意識していると思う。
R6RS でフェイズの制御について一応の考え方が確立したものの、
リーダの適用範囲をうまく制御するにはまた別の軸を持ち込む必要があるので厄介なのだと思う。
リードマクロについては Scheme の仕様には含まれないし SRFI にもないし、デファクトスタンダードといえるものもない。
処理系が独自にやっている場合はあるけど。
私見だが、 Common Lisp に比べて Scheme はモジュール化を強く意識していると思う。
R6RS でフェイズの制御について一応の考え方が確立したものの、
リーダの適用範囲をうまく制御するにはまた別の軸を持ち込む必要があるので厄介なのだと思う。
562デフォルトの名無しさん
2017/04/15(土) 18:36:19.85ID:HoujqO6s563デフォルトの名無しさん
2017/04/15(土) 19:13:45.64ID:zbZeczCO Racket はどうや?
564デフォルトの名無しさん
2017/04/15(土) 19:35:50.51ID:6k6YVb1i schemeのリードマクロってCL踏襲じゃまずい理由でもあるの?
健全とか関係なくね?
健全とか関係なくね?
566デフォルトの名無しさん
2017/05/20(土) 21:49:25.89ID:hZyWUkTA Lispの論文で英語表現とか定理の書き方みたいので参考になる論文ってどこらへんみればいいでしょう
567デフォルトの名無しさん
2017/05/20(土) 21:54:10.22ID:1QdXRE7A >>566
定理はともかく英語表現はRnRSの原本読んどけばいいんじゃないかな
後はこんなのとか
http://repository.readscheme.org/ftp/papers/ai-lab-pubs/AIM-353.pdf
wikipediaのScheme系の記事の参照元を読み漁るといいと思う
定理はともかく英語表現はRnRSの原本読んどけばいいんじゃないかな
後はこんなのとか
http://repository.readscheme.org/ftp/papers/ai-lab-pubs/AIM-353.pdf
wikipediaのScheme系の記事の参照元を読み漁るといいと思う
568デフォルトの名無しさん
2017/05/22(月) 19:02:01.63ID:qyIfdaRr RnRS は仕様書っぽい言い回しだけど論文と同じかなぁ、論文読む方に賛成
569デフォルトの名無しさん
2017/05/24(水) 08:06:22.98ID:HxetDgQ4 >>564
リードテーブルの状態によってプログラムの意味が変わってしまうのは不健全さを嫌うScheme的にはだめでしょ
リードテーブルの状態によってプログラムの意味が変わってしまうのは不健全さを嫌うScheme的にはだめでしょ
570デフォルトの名無しさん
2017/05/24(水) 15:27:40.12ID:jXaLafTB >>569 の主観なのかそれとも論文にまとまってたりするのか.
racket#!langはどうなる.
racket#!langはどうなる.
571デフォルトの名無しさん
2017/05/25(木) 19:06:27.53ID:XPkyG+P/ >>570
そもそもRacketはScheme的にだめでしょ
そもそもRacketはScheme的にだめでしょ
572デフォルトの名無しさん
2017/05/25(木) 21:07:52.50ID:1hi1bgKK わかったおまえの主観ってことな.あんがと.
573デフォルトの名無しさん
2017/05/26(金) 16:53:05.43ID:NdkbHKTg Chez Schemeの日本語ドキュメントないの〜?
574はつみつ餃子 ◆8X2XSCHEME
2017/05/27(土) 18:03:08.42ID:O+COb9Mx ない。
575デフォルトの名無しさん
2017/05/28(日) 00:02:44.20ID:k20WIr1s ちぇっ
576はつみつ餃子 ◆8X2XSCHEME
2017/05/28(日) 17:36:39.82ID:KnUhHSDN Chez Scheme について具体的に知りたいことがあればここで質問すれば簡単な回答くらいはつくかも?
577デフォルトの名無しさん
2017/05/30(火) 00:45:37.72ID:Dd0ZuLcv 最近のlisp webフレームワークで良いのって何でしょうか
578デフォルトの名無しさん
2017/05/30(火) 00:48:16.84ID:kWERrntF Kahuaなら知ってるが更新されてないっぽいし使ったことないからよくわからん
579はつみつ餃子 ◆8X2XSCHEME
2017/05/30(火) 02:45:46.19ID:Gds8xcWJ580デフォルトの名無しさん
2017/06/11(日) 12:44:37.67ID:QmG4H1RB 逆転ポインタなつい
ttp://qiita.com/kingshine/items/d74576886c067737ad18
ttp://qiita.com/kingshine/items/d74576886c067737ad18
581デフォルトの名無しさん
2017/06/22(木) 00:41:06.63ID:qjVInUD2 Common lispのnilとfalse区別しないの気持ち悪いけど
Schemeでまともな処理系もう残ってない感じして
Common Lisp に移住するしかない
Schemeでまともな処理系もう残ってない感じして
Common Lisp に移住するしかない
582デフォルトの名無しさん
2017/06/22(木) 00:49:51.73ID:GIlOn6Gc 何をもってまともと言うのか、Gauche使ってるけど普通に安定してるぞ
583はつみつ餃子 ◆8X2XSCHEME
2017/06/24(土) 01:00:13.24ID:Ma6ZsMvR584デフォルトの名無しさん
2017/06/29(木) 18:45:47.85ID:cCrWWcTS Scheme のこと好き? 忌む?
585デフォルトの名無しさん
2017/06/29(木) 22:55:19.10ID:S64gSu9X 忌マラン
587デフォルトの名無しさん
2017/07/02(日) 03:01:49.46ID:27xX9ykc 最速の処理系ってどれ?
588デフォルトの名無しさん
2017/07/02(日) 11:09:04.91ID:b45oz2aB Chez >>444
589デフォルトの名無しさん
2017/07/02(日) 17:50:09.29ID:27xX9ykc 最高の処理系ってどれ?
590デフォルトの名無しさん
2017/07/02(日) 17:58:15.58ID:WUsDB0eH 自作の処理系が最高、性能使い勝手を抜きにすれば
591デフォルトの名無しさん
2017/07/02(日) 20:22:47.00ID:27xX9ykc さぁ、行こう
592デフォルトの名無しさん
2017/07/02(日) 22:56:38.27ID:+DSvk7sR picrin使ってたのにgitのtipがビルド通らん…巻き戻すしか
594デフォルトの名無しさん
2017/07/04(火) 01:39:10.46ID:0P9ajF4y 速いに越したことはないなら一番速いやつを選ぶじゃん
595デフォルトの名無しさん
2017/07/04(火) 13:19:59.34ID:0P9ajF4y >>592
picrin のどういうところが好き?
picrin のどういうところが好き?
597デフォルトの名無しさん
2017/07/07(金) 01:47:32.06ID:2HLO6jqr 実際のところSchemeでどんなプログラム書いてる?
具体的に晒せるものがある人いる?
具体的に晒せるものがある人いる?
598デフォルトの名無しさん
2017/07/07(金) 11:18:37.71ID:jxDw4Nqu 晒せないが、S式で書いたテンプレートからHTMLに変換してた
CSSで過去の技術となったが
あとはC++に組み込みスクリプト
CSSで過去の技術となったが
あとはC++に組み込みスクリプト
599デフォルトの名無しさん
2017/07/07(金) 20:03:34.22ID:2HLO6jqr あれー、この話題ってあまり盛り上がらない?
600デフォルトの名無しさん
2017/07/07(金) 21:13:04.41ID:jTA32Qmi >>594
schemeと俺を比べたら俺が遅いからあんまり意味無いんだよトホホ
schemeと俺を比べたら俺が遅いからあんまり意味無いんだよトホホ
601デフォルトの名無しさん
2017/07/07(金) 21:29:14.88ID:tdv0VtnU >>599
そもそも盛り上ってないこのスレを盛り上げるにはお前が身を削ってネタ投下するしかないだろ
そもそも盛り上ってないこのスレを盛り上げるにはお前が身を削ってネタ投下するしかないだろ
602デフォルトの名無しさん
2017/07/07(金) 22:43:58.99ID:YCPzMAB4 biwascheme http://www.biwascheme.org/ はページ上にREPLあるから遊べるかも
603デフォルトの名無しさん
2017/07/08(土) 09:17:29.55ID:fLNNHfj0604デフォルトの名無しさん
2017/07/08(土) 15:03:13.50ID:NjwxgcfF picrin のコア機能では unicode サポートなしで、後付けは可能なようにするという方針も提示されている
ので、コアだけのスピードで評価するのもアンフェアな気がする。
https://twitter.com/___yuni/status/504240324831477760
ので、コアだけのスピードで評価するのもアンフェアな気がする。
https://twitter.com/___yuni/status/504240324831477760
605デフォルトの名無しさん
2017/07/20(木) 23:50:26.23ID:ZZEUd8Cf AIの分野はもう完全にPythonに譲ったの?
606はちみつ餃子 ◆8X2XSCHEME
2017/07/21(金) 02:42:10.26ID:2BokDUmp Python ってプログラマでない人にも使いやすいデザインなんだとさ。
数学屋や物理屋もプログラムを書くことはあるけど、専門家じゃないからな。
言語に関わってばかりはいられん。
綺麗な抽象化とか考えずに愚直に書いて動くってのはそれはそれで良い言語なんだよ。
VB とかな。
AI の核になるライブラリが出そろってきていろんな応用をする段階になると
Python の方が色んな人に使ってもらえるという意味で良いんじゃないか?
それに今の AI ってのは記号処理するのに柔軟なデータ構造が必要って感じじゃないだろ。
計算量を投入しまくって結果を出す機械学習とかじゃん。
広い意味では AI つってもやってることは違うよ。
数学屋や物理屋もプログラムを書くことはあるけど、専門家じゃないからな。
言語に関わってばかりはいられん。
綺麗な抽象化とか考えずに愚直に書いて動くってのはそれはそれで良い言語なんだよ。
VB とかな。
AI の核になるライブラリが出そろってきていろんな応用をする段階になると
Python の方が色んな人に使ってもらえるという意味で良いんじゃないか?
それに今の AI ってのは記号処理するのに柔軟なデータ構造が必要って感じじゃないだろ。
計算量を投入しまくって結果を出す機械学習とかじゃん。
広い意味では AI つってもやってることは違うよ。
607デフォルトの名無しさん
2017/07/28(金) 00:10:04.60ID:Hpt0wAEo Schemeが本当に美しさと強さを両立させようと思うんなら
速さを二の次にして仮想機械の仕様も標準に入れてしまえばよかった
Smalltalk-80のVMは美しかったが
RnRSのdenotational semanticsの記述はCOBOLのコードみたいで正直読みたくない
速さを二の次にして仮想機械の仕様も標準に入れてしまえばよかった
Smalltalk-80のVMは美しかったが
RnRSのdenotational semanticsの記述はCOBOLのコードみたいで正直読みたくない
608はちみつ餃子 ◆8X2XSCHEME
2017/07/28(金) 20:26:39.53ID:hXOq69kK Scheme の仕様ってのは業務マニュアルみたいなもんだよ。
たとえば「誰にハンコをもらえば進めていいのか?」みたいな手順は組織の秩序としてやらなきゃならないことだから
個人の創造性で決めれることじゃないし、仮にそれぞれの場面で最高の才能を発揮して根回ししたところで
正事の成果が良いものになるわけじゃない。
どうでもいいことはマニュアル通りにやってもっと大したことに力を入れようってのが業務マニュアルだろ。
逆に言えば創造の余地がある部分は決めつけてしまいたくないんだ。
たとえば「誰にハンコをもらえば進めていいのか?」みたいな手順は組織の秩序としてやらなきゃならないことだから
個人の創造性で決めれることじゃないし、仮にそれぞれの場面で最高の才能を発揮して根回ししたところで
正事の成果が良いものになるわけじゃない。
どうでもいいことはマニュアル通りにやってもっと大したことに力を入れようってのが業務マニュアルだろ。
逆に言えば創造の余地がある部分は決めつけてしまいたくないんだ。
609デフォルトの名無しさん
2017/07/29(土) 16:28:59.88ID:hKWXJ4tB lispworks 32bitを使ってて、fliを使ってwindowsのdllから関数を呼ぼうとするのだけど、
一部の関数だけがunresolved symbolだと言われて呼び出せない。
dll exported functipn viewerとかでみてみると、
ちゃんと関数を確認できるのに。
何でかわかる人いる?
おいどん、初心者やからわけわかめなのよ。
とりあえず、cffiでもできないかどうかと、ほかの処理系ではどうかを試そうとは思うのだけど、
なんか知ってる人いたら助けてー
一部の関数だけがunresolved symbolだと言われて呼び出せない。
dll exported functipn viewerとかでみてみると、
ちゃんと関数を確認できるのに。
何でかわかる人いる?
おいどん、初心者やからわけわかめなのよ。
とりあえず、cffiでもできないかどうかと、ほかの処理系ではどうかを試そうとは思うのだけど、
なんか知ってる人いたら助けてー
610はちみつ餃子 ◆8X2XSCHEME
2017/07/29(土) 17:59:53.12ID:HavpCAcr611デフォルトの名無しさん
2017/07/30(日) 08:44:30.09ID:b5TorD0f >>610
windowsのdllってのは適切な言い方じゃなかったかも。
具体的には、趣味で下記のライブラリをlispworks上で使いたいと思っているんです。
ttp://www.astro.com/swisseph/swephinfo_e.htm
ttp://www.astro.com/ftp/swisseph/
ここのsweph.zipにWindows 32bit用のdllがあるのですが(swedll32.dll)、
lispworksのfliを使って呼び出そうとすと、呼び出せる関数と呼び出せないのがあるんです。
ただ、私、lispもcもwindowsプログラミングも素人なので、何が問題なのかもよくわかってません。
後ほど、呼び出せる、呼び出せない関数の例や、その定義等含め書いてみます。
なにかアドバイスありましたらいただけますと幸いです。
windowsのdllってのは適切な言い方じゃなかったかも。
具体的には、趣味で下記のライブラリをlispworks上で使いたいと思っているんです。
ttp://www.astro.com/swisseph/swephinfo_e.htm
ttp://www.astro.com/ftp/swisseph/
ここのsweph.zipにWindows 32bit用のdllがあるのですが(swedll32.dll)、
lispworksのfliを使って呼び出そうとすと、呼び出せる関数と呼び出せないのがあるんです。
ただ、私、lispもcもwindowsプログラミングも素人なので、何が問題なのかもよくわかってません。
後ほど、呼び出せる、呼び出せない関数の例や、その定義等含め書いてみます。
なにかアドバイスありましたらいただけますと幸いです。
612デフォルトの名無しさん
2017/07/30(日) 09:04:35.78ID:b5TorD0f 609です。
うまくいく例とダメな例を挙げてみます。おそらく皆さんは全く興味のないライブラリだと思うので、質問するのも恐縮ですが。
問題なく呼び出せる例:
CL-USER 1 > (fli:register-module "swedll32.dll")
"swedll32.dll"
CL-USER 2 > (fli:define-foreign-function (swe_julday "_swe_julday@24" :source) ((year :int) (month :int) (day :int) (hour :double) (gregflag :int)) :result-type :double)
SWE_JULDAY
CL-USER 3 > (swe_julday 2001 1 1 0d0 1)
2451910.5D0
CL-USER 4 > (fli:define-foreign-function (swe_calc_ut "_swe_calc_ut@24" :source)
??? ((tjd_et :double) (ipl :int) (iflag :long) (xx (:reference-return (:c-array :double 6))) (serr? (:reference-return (:ef-mb-string :limit 256))) ) :result-type :int :lambda-list (tjd_et ipl iflag &aux? xx? serr))
SWE_CALC_UT
CL-USER 5 > (swe_calc_ut (swe_julday 2001 1 1 0d0 1) 0 0)
4
#<Foreign-Array :DOUBLE (6): addr #x02189F08>
"SwissEph file 'sepl_18.se1' not found in PATH '\\sweph\\ephe\\'
using Moshier eph.; "
うまくいく例とダメな例を挙げてみます。おそらく皆さんは全く興味のないライブラリだと思うので、質問するのも恐縮ですが。
問題なく呼び出せる例:
CL-USER 1 > (fli:register-module "swedll32.dll")
"swedll32.dll"
CL-USER 2 > (fli:define-foreign-function (swe_julday "_swe_julday@24" :source) ((year :int) (month :int) (day :int) (hour :double) (gregflag :int)) :result-type :double)
SWE_JULDAY
CL-USER 3 > (swe_julday 2001 1 1 0d0 1)
2451910.5D0
CL-USER 4 > (fli:define-foreign-function (swe_calc_ut "_swe_calc_ut@24" :source)
??? ((tjd_et :double) (ipl :int) (iflag :long) (xx (:reference-return (:c-array :double 6))) (serr? (:reference-return (:ef-mb-string :limit 256))) ) :result-type :int :lambda-list (tjd_et ipl iflag &aux? xx? serr))
SWE_CALC_UT
CL-USER 5 > (swe_calc_ut (swe_julday 2001 1 1 0d0 1) 0 0)
4
#<Foreign-Array :DOUBLE (6): addr #x02189F08>
"SwissEph file 'sepl_18.se1' not found in PATH '\\sweph\\ephe\\'
using Moshier eph.; "
613デフォルトの名無しさん
2017/07/30(日) 09:08:14.26ID:b5TorD0f 今度はダメな例です。
CL-USER 6 > (fli:define-foreign-function (swe_version "_swe_version@4" :source) ((sver (:reference-return (:ef-mb-string :limit 256)))) :result-type :pointer :lambda-list (&aux sver))
SWE_VERSION
CL-USER 7 > (swe_version)
Error: Foreign function SWE_VERSION trying to call to unresolved external function "_swe_version@4".
? 1 (abort) Return to level 0.
? 2 Return to top loop level 0.
Type :b for backtrace or :c <option number> to proceed.
Type :bug-form "<subject>" for a bug report template or :? for other options.
CL-USER 8 : 1 > :c 1
CL-USER 9 >
一応、自分なりに調べてソースファイルからdefファイル使ってコンパイルしなおしたりもしたのですが、
やはりだめでした。もっとも素人なので意図していることができているかどうかも怪しいのですが。。。
もし何かアドバイスありましたらお願いします。
CL-USER 6 > (fli:define-foreign-function (swe_version "_swe_version@4" :source) ((sver (:reference-return (:ef-mb-string :limit 256)))) :result-type :pointer :lambda-list (&aux sver))
SWE_VERSION
CL-USER 7 > (swe_version)
Error: Foreign function SWE_VERSION trying to call to unresolved external function "_swe_version@4".
? 1 (abort) Return to level 0.
? 2 Return to top loop level 0.
Type :b for backtrace or :c <option number> to proceed.
Type :bug-form "<subject>" for a bug report template or :? for other options.
CL-USER 8 : 1 > :c 1
CL-USER 9 >
一応、自分なりに調べてソースファイルからdefファイル使ってコンパイルしなおしたりもしたのですが、
やはりだめでした。もっとも素人なので意図していることができているかどうかも怪しいのですが。。。
もし何かアドバイスありましたらお願いします。
614デフォルトの名無しさん
2017/07/30(日) 09:13:00.89ID:b5TorD0f 612訂正
誤:
>CL-USER 4 > (fli:define-foreign-function (swe_calc_ut "_swe_calc_ut@24" :source)
>??? ((tjd_et :double) (ipl :int) (iflag :long) (xx (:reference-return (:c-array :double 6))) (serr? (:reference-return (:ef-mb-string :limit 256))) ) :result-type :int :lambda-list (tjd_et ipl iflag &aux? xx? serr))
>SWE_CALC_UT
不要な?がはいっちゃいました。
正:
CL-USER 4 > (fli:define-foreign-function (swe_calc_ut "_swe_calc_ut@24" :source)
((tjd_et :double) (ipl :int) (iflag :long) (xx (:reference-return (:c-array :double 6))) (serr (:reference-return (:ef-mb-string :limit 256))) ) :result-type :int :lambda-list (tjd_et ipl iflag &aux xx serr))
SWE_CALC_UT
誤:
>CL-USER 4 > (fli:define-foreign-function (swe_calc_ut "_swe_calc_ut@24" :source)
>??? ((tjd_et :double) (ipl :int) (iflag :long) (xx (:reference-return (:c-array :double 6))) (serr? (:reference-return (:ef-mb-string :limit 256))) ) :result-type :int :lambda-list (tjd_et ipl iflag &aux? xx? serr))
>SWE_CALC_UT
不要な?がはいっちゃいました。
正:
CL-USER 4 > (fli:define-foreign-function (swe_calc_ut "_swe_calc_ut@24" :source)
((tjd_et :double) (ipl :int) (iflag :long) (xx (:reference-return (:c-array :double 6))) (serr (:reference-return (:ef-mb-string :limit 256))) ) :result-type :int :lambda-list (tjd_et ipl iflag &aux xx serr))
SWE_CALC_UT
615609
2017/07/31(月) 10:20:59.29ID:EZDN6PLf >>609です。自己解決しました。
defファイルを使ってソースファイルからコンパイルしなおしたら
問題なく呼び出せるようになりました。汗
これまでも何度かVisual Studioからコンパイルを試していて、
dllは問題なく作成されるものの、一部呼び出せない関数があり、問題は解決しませんでした。
しかし、今回コマンドラインからコンパイル、リンクすると、なぜかうまくいきました。
結局、何が問題だったのかはわからないのですが、
とりあえず利用で来るようになりましたので、ご報告です。
お騒がせしました。。
defファイルを使ってソースファイルからコンパイルしなおしたら
問題なく呼び出せるようになりました。汗
これまでも何度かVisual Studioからコンパイルを試していて、
dllは問題なく作成されるものの、一部呼び出せない関数があり、問題は解決しませんでした。
しかし、今回コマンドラインからコンパイル、リンクすると、なぜかうまくいきました。
結局、何が問題だったのかはわからないのですが、
とりあえず利用で来るようになりましたので、ご報告です。
お騒がせしました。。
616はちみつ餃子 ◆8X2XSCHEME
2017/08/01(火) 09:56:40.30ID:J7NYj7Ga そうか。
617デフォルトの名無しさん
2017/08/28(月) 03:07:48.29ID:yPLR2tUq ISLISP界隈が復興の予感?
618デフォルトの名無しさん
2017/08/28(月) 03:15:50.71ID:kGHEcESE そういやピンボールゲームSchemeの人、ピンボールも放置してるし死んだのかと思ったら
Twitter社に入ってたんだよな。
Twitter社に入ってたんだよな。
619デフォルトの名無しさん
2017/08/28(月) 03:20:33.69ID:yPLR2tUq ひげぽんも Twitter じゃなかったっけ?
620デフォルトの名無しさん
2017/08/29(火) 20:51:39.28ID:Y/wjG5sQ621デフォルトの名無しさん
2017/08/29(火) 20:55:16.07ID:Y/wjG5sQ622デフォルトの名無しさん
2017/09/07(木) 01:47:05.53ID:AKY3iHcG そもそも本質的にLISPはAIとは関係がないぞ。
未だにAI=LISPなどと言っている輩はだめだと最近まで言われていたのにな。
Pythonだってライブラリがあるかないかというだけの理由であって
AIはスクリプト言語とは無関係だから。みんな誤解している。
AI言われる以前からPythonはあっただろ(w
未だにAI=LISPなどと言っている輩はだめだと最近まで言われていたのにな。
Pythonだってライブラリがあるかないかというだけの理由であって
AIはスクリプト言語とは無関係だから。みんな誤解している。
AI言われる以前からPythonはあっただろ(w
623はちみつ餃子 ◆8X2XSCHEME
2017/09/07(木) 02:14:26.65ID:NXMu3fYO マッカーシが AI 研究者だったこともあって、
実際に AI 研究に使われたのと、
その流れで AI 分野での利用実績は有るけど、
言語仕様的に特別 AI に向いてるってことはない。
ただ、当時のプログラミング言語っていうと Fortran とかの時代だから、
それで柔軟なデータ構造を必要とする記号処理をするのはつらかっただろうし、
その中で選ぶなら LISP は圧倒的に AI 研究に向いてたとは思う。
実際に AI 研究に使われたのと、
その流れで AI 分野での利用実績は有るけど、
言語仕様的に特別 AI に向いてるってことはない。
ただ、当時のプログラミング言語っていうと Fortran とかの時代だから、
それで柔軟なデータ構造を必要とする記号処理をするのはつらかっただろうし、
その中で選ぶなら LISP は圧倒的に AI 研究に向いてたとは思う。
624デフォルトの名無しさん
2017/09/07(木) 02:35:26.47ID:M6E7ckGa625はちみつ餃子 ◆8X2XSCHEME
2017/09/07(木) 03:56:27.96ID:NXMu3fYO626デフォルトの名無しさん
2017/09/07(木) 07:27:53.90ID:MB/dyp5b 書籍や情報が多い少ないだけでも、向いてる向いてないと言われるだろう
627はちみつ餃子 ◆8X2XSCHEME
2017/09/08(金) 23:54:19.15ID:lqryTDOd AI 分野であろうとなかろうと言語の盛衰があったっていう単純な話かもね。
628デフォルトの名無しさん
2017/09/09(土) 03:28:25.99ID:eNKTWyDH そのAIってのが曲者で、単なる構文解析やエキスパートシステムじゃん。
それは単なる文字処理と機械のモノマネでAIじゃないですよ。
上の人も書いているけど、今だからスクリプト言語がある。当時はそれがなかったから
LISPが応用分野の開発の道具として開発され選択されたというだけ。
世界初の難解言語であるが、関数型のLISPはAIとは本質的に関係はないですから。
Prologも関数型のように基本となる仕組みが手続き型と違うのであってそれが評価されるのであり
本質的にはAIとは関係が無い。
それは単なる文字処理と機械のモノマネでAIじゃないですよ。
上の人も書いているけど、今だからスクリプト言語がある。当時はそれがなかったから
LISPが応用分野の開発の道具として開発され選択されたというだけ。
世界初の難解言語であるが、関数型のLISPはAIとは本質的に関係はないですから。
Prologも関数型のように基本となる仕組みが手続き型と違うのであってそれが評価されるのであり
本質的にはAIとは関係が無い。
629デフォルトの名無しさん
2017/09/09(土) 03:39:21.13ID:eNKTWyDH LISPに限らず定義が曖昧なAIなどという話を持ち出すことがいかにデタラメで間違いであるかに気付くべき。
AIという呼称で、いかにLISPが誤解され続けて来たのかを問題視するべき。
失敗事例も多く、何十年も前から存在している技術なのに今更AIなど言うのもおかしい訳。
AIという呼称で、いかにLISPが誤解され続けて来たのかを問題視するべき。
失敗事例も多く、何十年も前から存在している技術なのに今更AIなど言うのもおかしい訳。
630デフォルトの名無しさん
2017/09/09(土) 04:37:12.43ID:xayv+DKK631デフォルトの名無しさん
2017/09/10(日) 03:24:08.29ID:kGuGeUHg MITの人工知能研=Lisperの巣というイメージはもう古いのかな
632デフォルトの名無しさん
2017/09/10(日) 03:26:45.50ID:kGuGeUHg あとシグマの時代だったか、テレビで日本人のAI研究者が
マクロが使えるから人工知能に向いてる的なコメントしてた記憶が
マクロが使えるから人工知能に向いてる的なコメントしてた記憶が
633デフォルトの名無しさん
2017/09/10(日) 03:41:36.36ID:H+JqMwrJ 今のAI開発に言語の自己プログラミング能力なんて求められてないでしょ
634はちみつ餃子 ◆8X2XSCHEME
2017/09/10(日) 09:31:14.90ID:qZQYMxNn せやな。
635デフォルトの名無しさん
2017/09/17(日) 00:54:38.57ID:9qhyBgwy うん・・・
636デフォルトの名無しさん
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が生まれた時代と今とでは全く違うと
いうだけの話
今のAIとLISPが生み出された時代のAIとは全く違うからねえ
今のAIは本質的にはパラメータの最適化だよ
ところが当時のAIは記号処理(数式処理…つまり数式のままの微分や不定積分とか…だって
70年代初頭頃まではAIのテーマだったんだから)が中心で、その記号処理がAIに求められた時代に
科学技術計算向けのFORTRANやALGOLあるいは事務計算向けのCOBOLといった本質的には数値計算しか
できない言語しかない時代に、ATOMの概念を持ち込んで更にリストの任意の入れ子のデータ構造によって
記号のプログラム上での直接的な表現とそれら多数の記号から成る複雑な構造(特に言語の構造として
Chomskyの主張した句構造)の処理をサクサクと書けるLISPは当時の人々の眼には画期的に映ったのは
容易に想像がつく
要するに「AI」という言葉の表す内容とその研究の推進に必要な技術がLISPが生まれた時代と今とでは全く違うと
いうだけの話
637はちみつ餃子 ◆8X2XSCHEME
2017/09/17(日) 16:05:25.82ID:jnHDU3kL AI って言葉が広すぎるってのもあるけど、
LISP ってのも初期と今じゃやっぱり違うやで。
LISP ってのも初期と今じゃやっぱり違うやで。
638デフォルトの名無しさん
2017/09/17(日) 16:57:41.95ID:L5f6sFpW 最初のLisp処理系がつくられたのと同じころには
「今のAI」のもとになるものも考案されていたらしい
https://ja.wikipedia.org/wiki/%E3%83%91%E3%83%BC%E3%82%BB%E3%83%97%E3%83%88%E3%83%AD%E3%83%B3
「今のAI」のもとになるものも考案されていたらしい
https://ja.wikipedia.org/wiki/%E3%83%91%E3%83%BC%E3%82%BB%E3%83%97%E3%83%88%E3%83%AD%E3%83%B3
639デフォルトの名無しさん
2017/09/18(月) 09:29:59.24ID:ftdwLT63 AIの意味自体はほとんど変わってないやろ。研究すすんでちょっと内容が豊かになって、訳のわからなさがふえて、短期目標がいろいろ設定されて、研究予算獲得やもの売るための宣伝文句としてのAIのイメージがかわってきただけ。
今も昔もLispでAIやるのは楽しい(と思ってる人がいる)というとこだけが変わらん。
今も昔もLispでAIやるのは楽しい(と思ってる人がいる)というとこだけが変わらん。
640デフォルトの名無しさん
2017/09/18(月) 18:56:00.44ID:TQdkd7p/641デフォルトの名無しさん
2017/09/18(月) 19:03:01.72ID:TQdkd7p/ 海外でやっている人工知能の対話実験は、単に人工無能の二台並べて会話させているだけでしょ。
それのどこが先進的で時代先取りのAIなんですかね?
>>638のような話はニューラルネットといって昔からあったし今更な話題でしょ。
画像認識なら別にニューラルネット使わなくともあるでしょ。
グラフのフィッティング実演見せてこれがAIですという場面見るとシラけるのですよね。
そんなものは昔からフィッテングアルゴリズムあるし、AI違うでしょ。
それのどこが先進的で時代先取りのAIなんですかね?
>>638のような話はニューラルネットといって昔からあったし今更な話題でしょ。
画像認識なら別にニューラルネット使わなくともあるでしょ。
グラフのフィッティング実演見せてこれがAIですという場面見るとシラけるのですよね。
そんなものは昔からフィッテングアルゴリズムあるし、AI違うでしょ。
642デフォルトの名無しさん
2017/09/18(月) 22:15:48.12ID:FKyHuAgC 人工知能って言いながら実体は
昔からあるアルゴリズムだったり
人工無能だったりするのはそうなんだが
たんにハードルあげて
こんなのくだらないって
こき下ろすのも簡単
既存のアルゴリズムでも
実際に少しでも精度を上げるのは
すごい大変だし大事なことだよ
昔からあるアルゴリズムだったり
人工無能だったりするのはそうなんだが
たんにハードルあげて
こんなのくだらないって
こき下ろすのも簡単
既存のアルゴリズムでも
実際に少しでも精度を上げるのは
すごい大変だし大事なことだよ
643はちみつ餃子 ◆8X2XSCHEME
2017/09/18(月) 23:51:55.61ID:XIi6lubs644デフォルトの名無しさん
2017/09/19(火) 04:56:21.91ID:ibgnMHfJ645デフォルトの名無しさん
2017/09/20(水) 00:16:09.10ID:6JOaC60s mccarthyは 1959 年から programs with common sense っていってる。
おまえらこれの意味わかった上でAIがどうのこうのっていってるの?
歴史云々するならちゃんと原典も読めよ糞が
おまえらこれの意味わかった上でAIがどうのこうのっていってるの?
歴史云々するならちゃんと原典も読めよ糞が
646デフォルトの名無しさん
2017/09/20(水) 14:26:01.70ID:wBwC2XoS いちいち汚い言葉を吐かないと死んじゃう病かね
647デフォルトの名無しさん
2017/09/26(火) 05:00:29.06ID:/zEF5028 渋谷Lispとかの勉強会、以前は誰でも発表できたはずなのに
今は有名人以外はお断りになったの?
今は有名人以外はお断りになったの?
648デフォルトの名無しさん
2017/09/26(火) 11:41:22.87ID:89uFYcmE んなこたーない。
手を上げる人がいないだけ。
手を上げる人がいないだけ。
649デフォルトの名無しさん
2017/09/26(火) 16:22:53.75ID:w3seKs+r Lisperなんてマニアックな奴が多いから
相当な知識がないと発表できないだろ
相当な知識がないと発表できないだろ
650デフォルトの名無しさん
2017/09/26(火) 18:31:26.23ID:89uFYcmE 聴衆のレベルが高いことがわかっている場所でアホなことは言いたくないだろうし、
そういうところで気後れしやすい素地はあるのかもしれんなぁ。
わかってる人には今更すぎることでも知りたい人はいると思んだが。
レベルが高すぎると思うんならそうでもない人向けの勉強会を開催してもいいんですよ。
そういうところで気後れしやすい素地はあるのかもしれんなぁ。
わかってる人には今更すぎることでも知りたい人はいると思んだが。
レベルが高すぎると思うんならそうでもない人向けの勉強会を開催してもいいんですよ。
651デフォルトの名無しさん
2017/09/26(火) 23:32:07.45ID:qx6kfgqA652デフォルトの名無しさん
2017/09/29(金) 22:04:35.58ID:7WUGaaf4 初歩的な質問いいっすか?
ドット(.)とかカンマ(,)を標準入力で文字列として受け取るにはどうすればいい?
readじゃ無理ですよね?
ドット(.)とかカンマ(,)を標準入力で文字列として受け取るにはどうすればいい?
readじゃ無理ですよね?
653デフォルトの名無しさん
2017/09/29(金) 22:17:39.42ID:gFAcDDEz (read-line) じゃダメなの?
654デフォルトの名無しさん
2017/09/29(金) 22:31:22.67ID:7WUGaaf4 ボードゲームの盤面を表したような、空白で区切られた複数文字を受け取ることを想定してたんですが、read-lineで受け取ってsplitとかするのが無難ですかね
655はちみつ餃子 ◆8X2XSCHEME
2017/09/30(土) 00:49:43.71ID:H54Xn+Px 空白で区切られているのにカンマやピリオドも出てくるの?
656はちみつ餃子 ◆8X2XSCHEME
2017/09/30(土) 01:07:33.44ID:H54Xn+Px セミコロンやカンマで区切られた文字の中に空白が入っていることもある形式って意味かな?
657デフォルトの名無しさん
2017/10/05(木) 20:50:00.34ID:AqPJkEp2 >>647
むしろshibuya.lispは事前審査も何もないし、入門してみた的な内容でも全然大丈夫だと思うぞ。LTでもいいし。
発表登録も単にconnpassのページのコメント欄で表明するだけだし。
むしろshibuya.lispは事前審査も何もないし、入門してみた的な内容でも全然大丈夫だと思うぞ。LTでもいいし。
発表登録も単にconnpassのページのコメント欄で表明するだけだし。
658デフォルトの名無しさん
2017/10/21(土) 03:53:57.39ID:uavAERV8 記号処理ってC言語で言ったらどういう処理のことですか?
659デフォルトの名無しさん
2017/10/21(土) 04:02:05.88ID:W+SO0xqJ 記号処理は文字列処理のうち
人工知能の分野に関係する処理
たとえば機械翻訳とか
人工知能の分野に関係する処理
たとえば機械翻訳とか
660デフォルトの名無しさん
2017/10/21(土) 04:12:27.39ID:uavAERV8 コンパイラの字句解析、構文解析みない処理といことですかね。
Lispはそういうのが得意なんですか? まだ関数型言語の実装イメージがよくわかりません。
Lispはそういうのが得意なんですか? まだ関数型言語の実装イメージがよくわかりません。
661デフォルトの名無しさん
2017/10/21(土) 05:24:19.82ID:W+SO0xqJ そういうコンパイラなどの言語処理系も記号処理と言える
Lispは言語処理系の実装が得意
Lispは言語処理系の実装が得意
662デフォルトの名無しさん
2017/10/21(土) 10:32:12.07ID:034024q/ LISP言語の設計は人工知能とはまったく関係がない。
機械翻訳は翻訳であって人工知能ではないが、LISPの記号処理の使用例でもない。
コンパイラはコンパイラ技術であって記号処理ではない。Cで書かれた処理系は幾らでもある。
だからといってCが記号処理得意なんですか?違うでしょ?
LISPはコンパイラ処理が得意という訳ではない。LISP製コンパイラを見たことがない。
機械翻訳は翻訳であって人工知能ではないが、LISPの記号処理の使用例でもない。
コンパイラはコンパイラ技術であって記号処理ではない。Cで書かれた処理系は幾らでもある。
だからといってCが記号処理得意なんですか?違うでしょ?
LISPはコンパイラ処理が得意という訳ではない。LISP製コンパイラを見たことがない。
663デフォルトの名無しさん
2017/10/21(土) 10:41:25.43ID:034024q/ LISPだからといって何でもAIと結び付けて考えるのが間違い。
コンパイラはAIですか?->違います。LISPはAIツールですか->違います。
これははっきりしてる。だから90-2000年代になってLISP==AIという認識が間違いだよねという
コミュニティの認識があった。今再びAIと叫ばれ、LISPに対する誤解が再生産されている。
全てをAIと表現して記号処理もAIとしてしまうと、コンピュータサイエンスも何も無い。
AIというバズワードこそが詐欺的だということです。
コンパイラはAIですか?->違います。LISPはAIツールですか->違います。
これははっきりしてる。だから90-2000年代になってLISP==AIという認識が間違いだよねという
コミュニティの認識があった。今再びAIと叫ばれ、LISPに対する誤解が再生産されている。
全てをAIと表現して記号処理もAIとしてしまうと、コンピュータサイエンスも何も無い。
AIというバズワードこそが詐欺的だということです。
664デフォルトの名無しさん
2017/10/21(土) 17:13:02.11ID:W+SO0xqJ665デフォルトの名無しさん
2017/10/21(土) 20:35:39.15ID:IeS87Wa8 Common Lispはネイティブコードへのコンパイルも仕様に入ってなかったっけ?
666デフォルトの名無しさん
2017/10/21(土) 23:25:46.70ID:Jvo46k7o Lispで書かれたコンパイラ、、、そう言えば20年くらい前だったか Zeta C ってのがあったなぁ
667デフォルトの名無しさん
2017/10/22(日) 03:22:44.39ID:GA495a0M668はちみつ餃子 ◆8X2XSCHEME
2017/10/25(水) 04:34:02.39ID:krW9epRr 記号処理は記号を処理することだよ。
数値演算ではなく、たとえば数式みたいなものをいじってなんやかんや。
というのでなんとなくコンパイラ技術とも関係があるというのがわかると思う。
AI (人工知能) は人の知能を真似ようとするもの。
かつては (数値計算ではなく) 数式の変形をするのは機械には出来ない人間的なことだったから、
それをやるのは人工知能というカテゴリだった。
やり方がある程度確立した今では知能もクソもない、普通の数式処理じゃんって話になるから人工知能だとは思われない。
人工知能という言葉が指す具体的な技術の範囲は時代によって変わることになる。
LISP が直接的に得意としているのは名前が示す通りにリスト操作でしかないよ。
それが記号操作に便利だったし、記号操作はかつては人工知能の重要トピックだったって話。
数値演算ではなく、たとえば数式みたいなものをいじってなんやかんや。
というのでなんとなくコンパイラ技術とも関係があるというのがわかると思う。
AI (人工知能) は人の知能を真似ようとするもの。
かつては (数値計算ではなく) 数式の変形をするのは機械には出来ない人間的なことだったから、
それをやるのは人工知能というカテゴリだった。
やり方がある程度確立した今では知能もクソもない、普通の数式処理じゃんって話になるから人工知能だとは思われない。
人工知能という言葉が指す具体的な技術の範囲は時代によって変わることになる。
LISP が直接的に得意としているのは名前が示す通りにリスト操作でしかないよ。
それが記号操作に便利だったし、記号操作はかつては人工知能の重要トピックだったって話。
669デフォルトの名無しさん
2017/10/27(金) 06:29:52.81ID:EP/R3fy9 今時の言語にはリスト用のライブラリは揃ってる。
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 ライブラリがあるのと言語に組み込まれてるのは違うよな
674デフォルトの名無しさん
2017/11/01(水) 17:46:03.98ID:uc9oDMT0 あのさ、俺小学生なんだけど、HaskellとLispどっちが強いの?
おっさん、おばさん教えてよ。
おっさん、おばさん教えてよ。
675デフォルトの名無しさん
2017/11/01(水) 20:03:18.94ID:kGHIjG82 Lispがさいつよだよ
https://www.youtube.com/watch?v=HM1Zb3xmvMc
https://www.youtube.com/watch?v=HM1Zb3xmvMc
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/
https://s.news.mynavi.jp/news/2017/11/02/073/
678デフォルトの名無しさん
2017/11/02(木) 22:19:50.36ID:pq+UNRec679デフォルトの名無しさん
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:TvjmwwI2683デフォルトの名無しさん
2017/11/05(日) 10:33:24.70ID:mZtOvkfq684デフォルトの名無しさん
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教えられる教師が居ないと言うのに
MITでもScheme教えられる教師が居ないと言うのに
688はちみつ餃子 ◆8X2XSCHEME
2017/11/05(日) 20:49:37.28ID:YJZSL4EI 汎用言語じゃね? 特別に何かに特化しているわけじゃないと思うが。
レイモンドは「悟り体験のため」って言ってるけど、
グレアムはそんなこと言わずに使えばいいじゃないのという立場で莫大な収入を得ているので、
使いたいように使えよ〜
レイモンドは「悟り体験のため」って言ってるけど、
グレアムはそんなこと言わずに使えばいいじゃないのという立場で莫大な収入を得ているので、
使いたいように使えよ〜
689デフォルトの名無しさん
2017/11/05(日) 21:17:49.08ID:mZtOvkfq690はちみつ餃子 ◆8X2XSCHEME
2017/11/05(日) 21:45:40.46ID:YJZSL4EI 教える人がいないからってわけじゃないよ。
Sussman 自身もまだ現役だし。
Sussman が語った内容の日本語訳がここにある。
https://cpplover.blogspot.jp/2016/05/mitsicp.html
Sussman 自身もまだ現役だし。
Sussman が語った内容の日本語訳がここにある。
https://cpplover.blogspot.jp/2016/05/mitsicp.html
691デフォルトの名無しさん
2017/11/05(日) 22:20:09.73ID:mZtOvkfq692デフォルトの名無しさん
2017/11/05(日) 22:40:01.62ID:/ZsuHin0 主にC++な自分にとって、Lispはmodern C++が目指す最先端なんだけど、
Lispの人たちゃもうどっかに行っちゃってるのかね。
Lispの人たちゃもうどっかに行っちゃってるのかね。
693はちみつ餃子 ◆8X2XSCHEME
2017/11/05(日) 23:33:09.26ID:YJZSL4EI >>691
要約すると「総合的に考えて Scheme は入門講義ではベストではなくなった」って話で、
MIT での教育・研究全てから LISP が排除されたって話ではない (大幅に縮小はしてるかもしれない) ので、
Scheme が手頃な場面では Scheme だって使うだろうし、
時代の変化とそれに合わせた適材適所っていう当たり前の話なんだよね。
要約すると「総合的に考えて Scheme は入門講義ではベストではなくなった」って話で、
MIT での教育・研究全てから LISP が排除されたって話ではない (大幅に縮小はしてるかもしれない) ので、
Scheme が手頃な場面では Scheme だって使うだろうし、
時代の変化とそれに合わせた適材適所っていう当たり前の話なんだよね。
694デフォルトの名無しさん
2017/11/06(月) 00:08:40.80ID:PhKwOpTs ジョエル「なんてこった(略)」
695デフォルトの名無しさん
2017/11/06(月) 10:15:26.67ID:2nM3KO37696はちみつ餃子 ◆8X2XSCHEME
2017/11/06(月) 13:11:38.24ID:MXn0CmOw >>695
言語を変更するにあたってサスマン自身も主導者のひとりであるように書かれてる。
モチベーションがないならむしろそのまま続けるんじゃね?
だいたい LISP と言ってもフルセットの Common Lisp を隅々まで使おうってんじゃないんだ。
SICP で使ってるのは R4RS 時代の Scheme だぞ。
MIT の教員レベルならどうということのないものだろ。
言語を変更するにあたってサスマン自身も主導者のひとりであるように書かれてる。
モチベーションがないならむしろそのまま続けるんじゃね?
だいたい LISP と言ってもフルセットの Common Lisp を隅々まで使おうってんじゃないんだ。
SICP で使ってるのは R4RS 時代の Scheme だぞ。
MIT の教員レベルならどうということのないものだろ。
697デフォルトの名無しさん
2017/11/06(月) 13:29:54.84ID:2nM3KO37698はちみつ餃子 ◆8X2XSCHEME
2017/11/06(月) 13:49:14.12ID:MXn0CmOw >>697
「今のエンジニアリングに求められるエンジニアを育てる」ということにモチベーションがあったから、
「それに合ってないカリキュラム (SICP) で指導する」というモチベーションが低下したんだよ。
「今のエンジニアリングに求められるエンジニアを育てる」ということにモチベーションがあったから、
「それに合ってないカリキュラム (SICP) で指導する」というモチベーションが低下したんだよ。
699デフォルトの名無しさん
2017/11/06(月) 14:01:54.98ID:2nM3KO37700はちみつ餃子 ◆8X2XSCHEME
2017/11/06(月) 14:15:36.85ID:MXn0CmOw701デフォルトの名無しさん
2017/11/06(月) 14:21:32.49ID:2nM3KO37703デフォルトの名無しさん
2017/11/06(月) 18:54:46.53ID:PQEgu7bY アメリカの大学は1〜2年生の時に適正ない奴をふるい落とすんだよ
ジョエルがJavaスクールのなんたらで書いているように
ジョエルが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
省略子は ... ではなく *** になってるのと、ハイジニック性は再現されてないことに注意。
マクロ展開器としてだけでなく、パターンマッチ関数を直接使うことも出来る。
部分的に syntax-rules を再現したようなライブラリはこういうのがあるよ。
http://www.ccs.neu.edu/home/dorai/mbe/mbe-lsp.html
省略子は ... ではなく *** になってるのと、ハイジニック性は再現されてないことに注意。
マクロ展開器としてだけでなく、パターンマッチ関数を直接使うことも出来る。
708デフォルトの名無しさん
2017/11/13(月) 22:16:51.52ID:MQxQ6x/7709デフォルトの名無しさん
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)に連続した数字を割り当てるにはどうすればいいでしょう?
オセロとかチェスの座標(SQ_A1, SQ_B1, ... , SQ_G8, SQ_H8)に連続した数字を割り当てるにはどうすればいいでしょう?
717はちみつ餃子 ◆8X2XSCHEME
2017/11/23(木) 01:55:46.48ID:fj1LdTry へー、そんな制限があったのか。
まあそんな多値を使うのはアレであることには違いないのでしょうがないといえばしょうがない。
識別子に連続した数値を割り当てるにはマクロが必要だが Scheme 的には R6RS を仮定するか処理系の拡張を使う必要がある。
Gauche を使う前提でいいの?
まあそんな多値を使うのはアレであることには違いないのでしょうがないといえばしょうがない。
識別子に連続した数値を割り当てるにはマクロが必要だが 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)))
と同じぐらい簡単な他の表現をぜひ知りたいです
でも
(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)
なんかイマイチすっきりしないなー。
もっといい方法ありそうだと思うんだけど。
(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行程度の綺麗に書かれてるコードを探してるんですが
せいぜい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プログラミングと何の関係があるの?
マクロの有無(内部でマクロ書けるってのは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:TkWaDQHt731デフォルトの名無しさん
2017/12/09(土) 04:21:58.35ID:ziJNlv0p732デフォルトの名無しさん
2017/12/09(土) 14:26:11.92ID:4MbXeuoC 80年台に腐るほど論文が書かれてるから勝手に探して読んでよ
集大成的なのは人工知能学会から出ている「人工知能ハンドブック」とか、まあ探せばいくらでもある
AI=ディープラーニング前提で話をしてんのかね
集大成的なのは人工知能学会から出ている「人工知能ハンドブック」とか、まあ探せばいくらでもある
AI=ディープラーニング前提で話をしてんのかね
733デフォルトの名無しさん
2017/12/09(土) 16:18:47.50ID:pGblBOWb パズルを解かせるのも人工知能!!!
734デフォルトの名無しさん
2017/12/09(土) 18:12:35.14ID:KFfYNPXO >>732
1980年代の人工知能の研究成果で現在でも役に立ってるのあるのか?
1980年代の人工知能の研究成果で現在でも役に立ってるのあるのか?
735デフォルトの名無しさん
2017/12/10(日) 02:54:54.81ID:BWtpHFrw736デフォルトの名無しさん
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
LISPのマクロってたいしたことないよ。それがLISPの本質でもないし。
ただインタプリタでC風にマクロが書けるというだけで。
マクロはマクロなんで、LISP内部で置き換えするだけで本質的なコード処理はしてないし。
それ(マクロ)が記号処理の本質ではないし。
何ならCのマクロ使って記号処理しましたって公開してみ。笑われるだけだから。
LISPの世界はこの程度の話すら理解できてないから誤解されているといっている訳。
だいたい最近までOpenSourceでScheme処理系開発してた連中が居たけれども、
彼らがAIと言った事はただの一つもないよ(w
741デフォルトの名無しさん
2017/12/13(水) 20:00:39.22ID:yTQPqafe おいらも735に賛成。
エキスパートシステムは失敗と無駄そのもの。第五世代も。
現実には民間企業ではMSエクセルが経営支援機能を果たしている。
表計算がAIより機能を果たしている皮肉。
エキスパートシステムは失敗と無駄そのもの。第五世代も。
現実には民間企業ではMSエクセルが経営支援機能を果たしている。
表計算がAIより機能を果たしている皮肉。
742デフォルトの名無しさん
2017/12/13(水) 22:45:23.21ID:0KXAmUZF いやマクロ使わなかったら
Lisp使う意味ほとんどないだろ
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使ったクライアントサーバシステムをクラウドなんて言い出すのと同じ。
既存のTCP/IP使ったクライアントサーバシステムをクラウドなんて言い出すのと同じ。
746デフォルトの名無しさん
2017/12/15(金) 04:45:54.58ID:KHNYpOof みんなschemeで何作ってるの?
これから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#のコルーチンが中でどう動いてるの、とか
本当に勉強になった
人に説明できるようになって仕事に役立ったよ
しかし、おかげで継続が理解できて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変換から入るのが早道かも。
プログラミング言語の抽象度しか知らないならCPS変換から入るのが早道かも。
756はちみつ餃子 ◆8X2XSCHEME
2017/12/17(日) 01:22:25.09ID:vupC7usA 私も CPS で考えるのが早道だと思う。
CPS で考えた時に表出する環境の受渡しを普段の Scheme では暗黙にやってる感じ。
CPS で考えた時に表出する環境の受渡しを普段の Scheme では暗黙にやってる感じ。
757デフォルトの名無しさん
2017/12/17(日) 12:04:50.86ID:eoJ80v7u 俺はコールスタックからだったが
>CPS
こういう捉えかたもあるんだね
知らなかった、ありがとう!
>CPS
こういう捉えかたもあるんだね
知らなかった、ありがとう!
758デフォルトの名無しさん
2017/12/17(日) 13:44:07.44ID:qZUcJPEk759デフォルトの名無しさん
2017/12/17(日) 14:47:33.87ID:/lXwOr1A 関数の戻り値が渡る先を操作できるだけじゃん。
トップレベルの特異性には注意だけど。
トップレベルの特異性には注意だけど。
760デフォルトの名無しさん
2017/12/18(月) 06:11:49.84ID:RkLzSeZU c++で継続はライブラリ使うだけで良いみたいだけど
C言語では継続はマシン語いじらないと実現出来ないの?
C言語では継続はマシン語いじらないと実現出来ないの?
761デフォルトの名無しさん
2017/12/18(月) 06:17:47.07ID:qvbmzFlP ロングジャンプが継続
762デフォルトの名無しさん
2017/12/18(月) 15:55:48.42ID:uwunIJyp >>760
C++ではライブラリで継続が使えるってどういうこと?
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
今のところはまだ提案があるだけで標準に入ったわけではない。
継続を表現するライブラリっつっても、
そのライブラリの中身は何がしかアーキテクチャ依存になるだろうけどな。
このあたりの話かな。
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/ciCMNl767デフォルトの名無しさん
2017/12/20(水) 05:00:04.59ID:a6n0mn8s Exaリーディングのすゝめ
https://www.slideshare.net/ShinichiMakino1/exa-84358376
👆これええな
schemeでも読んだら勉強になる、程よい大きさのコードないものか
https://www.slideshare.net/ShinichiMakino1/exa-84358376
👆これええな
schemeでも読んだら勉強になる、程よい大きさのコードないものか
768デフォルトの名無しさん
2017/12/23(土) 21:49:26.76ID:YzWkPP/t schemeについてのことではなくてelispについてなんですが、同じかもしれないと
おもってお尋ねします。コードを書いた実行をして、(コードを読み込んで)
そのあとその実行して読み込ませたものをclearして、(書いているコードはそのまま
なんですが、読み込んだという事実をclearしたい)それで別のコードを下に書いて
その下に書いたものだけを実行するという風にしたいのですが、そういうclearする
ことは可能でしょうか?どのようにするのでしょうか?
おもってお尋ねします。コードを書いた実行をして、(コードを読み込んで)
そのあとその実行して読み込ませたものをclearして、(書いているコードはそのまま
なんですが、読み込んだという事実をclearしたい)それで別のコードを下に書いて
その下に書いたものだけを実行するという風にしたいのですが、そういうclearする
ことは可能でしょうか?どのようにするのでしょうか?
769デフォルトの名無しさん
2017/12/23(土) 23:20:52.51ID:BI9Rd4SH >>767
3imp
3imp
770デフォルトの名無しさん
2017/12/23(土) 23:28:54.90ID:YzWkPP/t 768の質問を取り消します。後日に尋ねるかもしれませんがその時には
よろしくお願いします
よろしくお願いします
771デフォルトの名無しさん
2017/12/23(土) 23:54:12.88ID:3ZTUAfyp >>769
schemeってみんなインタプリタとかコンパイラの実装ばっかですね
schemeの勉強でもmapやappendを実装しましょうみたいなのばっかやし
まあguiもwebもゲームも低レイヤーも出来ないとなれば仕方ないんかな
schemeってみんなインタプリタとかコンパイラの実装ばっかですね
schemeの勉強でもmapやappendを実装しましょうみたいなのばっかやし
まあguiもwebもゲームも低レイヤーも出来ないとなれば仕方ないんかな
772デフォルトの名無しさん
2017/12/24(日) 01:13:04.67ID:Za7OGTTm 皆さんclassとかrecordとか使うんですか?
773はちみつ餃子 ◆8X2XSCHEME
2017/12/24(日) 04:11:25.21ID:j1+IHmNs >>771
あまり話題に上がらないけど GTK バインディングとかウェブフレームワークとかは有る。
FFI を使えばどんなライブラリでも使えるのでとりたてて分野が限定されているということは無い。
メモリ管理とか、Scheme として自然に使えるようにする面倒くささはあるので、
それを整備したものってのは最終的には物量の問題だと思う。
Chicken には Eggs が、 Racket には Planet というモジュール管理システムがあって公式リポジトリに登録されているライブラリの量もまあまあ多いので、
そのあたりから興味があるものを探してみたらいいんじゃない?
あまり話題に上がらないけど GTK バインディングとかウェブフレームワークとかは有る。
FFI を使えばどんなライブラリでも使えるのでとりたてて分野が限定されているということは無い。
メモリ管理とか、Scheme として自然に使えるようにする面倒くささはあるので、
それを整備したものってのは最終的には物量の問題だと思う。
Chicken には Eggs が、 Racket には Planet というモジュール管理システムがあって公式リポジトリに登録されているライブラリの量もまあまあ多いので、
そのあたりから興味があるものを探してみたらいいんじゃない?
774はちみつ餃子 ◆8X2XSCHEME
2017/12/24(日) 04:26:34.47ID:j1+IHmNs >>772
Scheme の record は R6RS と R7RS で違うし SRFI でも微妙に違うのがいくつもあるので、
処理系によってサポート状況が違って使いにくいってのは感じるかな。
それでも多少ラップすればそれなりの移植性は確保できるので、
個人的には積極的に使ってる。
class というかオブジェクトシステムについては Scheme ではまとまった提案がないから
CLOS をベースにデザインされたものが多いとはいうものの処理系による差が激しくて、
最初から特定の処理系をターゲットにすると決めている場合じゃないと使わないな。
でも使うと決めたら積極的に使ってる。
Scheme の record は R6RS と R7RS で違うし SRFI でも微妙に違うのがいくつもあるので、
処理系によってサポート状況が違って使いにくいってのは感じるかな。
それでも多少ラップすればそれなりの移植性は確保できるので、
個人的には積極的に使ってる。
class というかオブジェクトシステムについては Scheme ではまとまった提案がないから
CLOS をベースにデザインされたものが多いとはいうものの処理系による差が激しくて、
最初から特定の処理系をターゲットにすると決めている場合じゃないと使わないな。
でも使うと決めたら積極的に使ってる。
775デフォルトの名無しさん
2017/12/24(日) 18:42:32.30ID:Za7OGTTm webやるならclojureで良さそう(´・_・`)
人生3度目の the little schemer です。
xyzzy で確かめながら読んでいますが、一つ疑問が生じました。
教科書では
(lat? (atom turkey or))
と印刷されていますが、手元の処理系(gauche 0.9.5) では
(lat? '(atom turkey or))
と関数 lat? の引数に ' をつけないとうまくいかないのです。
これはどういう理由なのでしょうか?この ' は scheme の用語ではなんと呼ばれているのでしょうか?
ずっと教科書を読んでいくうちに自然とわかってくる事項でしょうか?
よろしくお願いいたします。
xyzzy で確かめながら読んでいますが、一つ疑問が生じました。
教科書では
(lat? (atom turkey or))
と印刷されていますが、手元の処理系(gauche 0.9.5) では
(lat? '(atom turkey or))
と関数 lat? の引数に ' をつけないとうまくいかないのです。
これはどういう理由なのでしょうか?この ' は scheme の用語ではなんと呼ばれているのでしょうか?
ずっと教科書を読んでいくうちに自然とわかってくる事項でしょうか?
よろしくお願いいたします。
777はちみつ餃子 ◆8X2XSCHEME
2017/12/24(日) 23:08:21.47ID:j1+IHmNs >>776
' は quote の略表記。 たとえば '(a b c) は (quote (a b c)) と書いても同じ。
私はその本を持ってないからそのコードで何を教えようとしてるのかよくわかんないけど、
quote はかなり基本的な要素なので理解できるようにしてるとは思う
' は quote の略表記。 たとえば '(a b c) は (quote (a b c)) と書いても同じ。
私はその本を持ってないからそのコードで何を教えようとしてるのかよくわかんないけど、
quote はかなり基本的な要素なので理解できるようにしてるとは思う
>>777
ご回答ありがとうございます!
教科書 'the little schemer' -> https://www.amazon.co.jp/dp/4274068269 有名そうで読んでいる人が多そうなものを選びました!
ご回答ありがとうございます!
教科書 'the little schemer' -> https://www.amazon.co.jp/dp/4274068269 有名そうで読んでいる人が多そうなものを選びました!
779デフォルトの名無しさん
2017/12/25(月) 00:30:34.51ID:eatjhcJn little schemerはsicpの前に読む人が多いのかな
自分は読まずにsicpに突っ込む予定だけど
自分は読まずにsicpに突っ込む予定だけど
780はちみつ餃子 ◆8X2XSCHEME
2017/12/25(月) 02:53:01.57ID:BGNcpfiB SICP は計算機科学の専門書だし、趣味プログラマには高度すぎるんじゃね?
SICP は現実的な部分についても書いてないから Scheme を (日常的なスプリクティング用途程度に) 普段使いしたいって
程度の気持ちで読み始めると、理論の部分で挫折して放り投げがちなんじゃないかな?
いや、ガチで背景にある理論を理解したいって志があるなら SICP から読むことに反対なわけではないけど、
もっと緩く Scheme を使いたいっていう気持ちで使う人も歓迎したいし、
最終的に SICP を読んで理解するのが前提みたいに言うのはちょっとどうかと思うよ。
SICP は現実的な部分についても書いてないから Scheme を (日常的なスプリクティング用途程度に) 普段使いしたいって
程度の気持ちで読み始めると、理論の部分で挫折して放り投げがちなんじゃないかな?
いや、ガチで背景にある理論を理解したいって志があるなら SICP から読むことに反対なわけではないけど、
もっと緩く Scheme を使いたいっていう気持ちで使う人も歓迎したいし、
最終的に SICP を読んで理解するのが前提みたいに言うのはちょっとどうかと思うよ。
781デフォルトの名無しさん
2017/12/25(月) 21:10:21.58ID:6RDgxEW3 >>776
その「atom」ってのが実は手続きなのよ。本文ではなく前文かどこかに定義が載っていたと思う。
その「atom」ってのが実は手続きなのよ。本文ではなく前文かどこかに定義が載っていたと思う。
782デフォルトの名無しさん
2017/12/25(月) 21:16:46.95ID:6RDgxEW3 >>781
忘れてくれ。手元の本見たら、手続きなのはatom?だった。
忘れてくれ。手元の本見たら、手続きなのはatom?だった。
783デフォルトの名無しさん
2017/12/26(火) 23:21:38.18ID:yva2ERhc xyzzyとgauche並行とか混乱するだけだぞ
784デフォルトの名無しさん
2017/12/27(水) 21:59:50.53ID:I7jb5yVK 最近はnumpyにしか実装がない数値計算法が増えた
Racketはnumpyのインターフェースあるけど、他はどう?
Racketはnumpyのインターフェースあるけど、他はどう?
785はちみつ餃子 ◆8X2XSCHEME
2017/12/28(木) 00:32:55.47ID:gVqXCAzj Racket にはそんな変態なものがあるんか。
どうやって実現しているのか興味あるけど、ググっても見つけられなかった。
どうやって実現しているのか興味あるけど、ググっても見つけられなかった。
786デフォルトの名無しさん
2017/12/28(木) 16:57:30.14ID:kqg0/H36 ラケット王国の和訳まだかなーチンチン
787デフォルトの名無しさん
2017/12/29(金) 08:38:15.66ID:xmeHjPXR C++のインターフェースある処理系ならboost.numpyでnumpyは動きそうだが
788デフォルトの名無しさん
2017/12/29(金) 20:54:07.52ID:UJC0BA5u clmlってどうなん
789デフォルトの名無しさん
2017/12/29(金) 21:45:51.42ID:srQz1veo 機械学習ライブラリとしてなら優秀だけど
今話題になってるディープラーニング対応してない
今話題になってるディープラーニング対応してない
790はちみつ餃子 ◆8X2XSCHEME
2017/12/30(土) 01:36:01.07ID:JIvbFZ2K >>787
boost.numpy はテンプレートもだばだば使ってるし、それをあらためて動的型の言語にバインディングするのあほらしいやろ。
boost.numpy はテンプレートもだばだば使ってるし、それをあらためて動的型の言語にバインディングするのあほらしいやろ。
791デフォルトの名無しさん
2017/12/30(土) 05:34:18.51ID:QS05oFb5 numpyも実体はlapackのインターフェース
792デフォルトの名無しさん
2017/12/30(土) 21:52:30.82ID:wf2zlY04 Fortran最強か。
793デフォルトの名無しさん
2017/12/30(土) 22:04:07.78ID:NAE2hL7d gaucheかchickenでGUIやるの厳しい?
tkはlinuxだとめっちゃ汚いから嫌なんだけど
Iupというの気になるんだけど試してみた人いませんか
tkはlinuxだとめっちゃ汚いから嫌なんだけど
Iupというの気になるんだけど試してみた人いませんか
794はちみつ餃子 ◆8X2XSCHEME
2017/12/30(土) 23:13:03.41ID:JIvbFZ2K Gauche や Chicken なら GTK バインディングが楽に使えると思う。
私は使ったことないけど Racket の GUI ライブラリは使いやすいみたいに聞くので、
処理系にこだわりがないなら試してみてもいいんじゃない?
私は使ったことないけど Racket の GUI ライブラリは使いやすいみたいに聞くので、
処理系にこだわりがないなら試してみてもいいんじゃない?
795デフォルトの名無しさん
2017/12/31(日) 20:27:42.78ID:Pbe3xhzg gaucheとchickenってどっちがいいの?
796はちみつ餃子 ◆8X2XSCHEME
2018/01/01(月) 00:26:59.62ID:jbWUirsb 用途や好みによる
797デフォルトの名無しさん
2018/01/01(月) 15:16:31.98ID:rap/X9U7 (display "Happy New Year.")
798デフォルトの名無しさん
2018/01/01(月) 17:48:15.95ID:UkMdhu1o 今からClojure入門しようと思うんですけど
「Clojure for the Brave and True」
この入門書ってどうなんでしょう?
ポチるか悩んでいるので一押し欲しいです
「Clojure for the Brave and True」
この入門書ってどうなんでしょう?
ポチるか悩んでいるので一押し欲しいです
799デフォルトの名無しさん
2018/01/01(月) 20:52:29.11ID:aCEoQmmW それって無料公開されてないか?
読んでないが
読んでないが
800デフォルトの名無しさん
2018/01/01(月) 22:42:18.07ID:REb0gAPE801はちみつ餃子 ◆8X2XSCHEME
2018/01/02(火) 02:15:48.60ID:U19H6e17 Clojure スレで相談した方がよくない?
802デフォルトの名無しさん
2018/01/03(水) 01:18:40.47ID:E10k9nmq (特定のスレに書き込めないテスト)
>>776
5章になって急に難しくなりました‥
http://d.hatena.ne.jp/kazu-yamamoto/20101021/1287625788
>リストのリストに対して、深く再帰します。見方を変えれば、これは木構造に対する再帰です。
それまでは(復習は必要ですが)理解に苦しむことはなかったんですが‥
5章になって急に難しくなりました‥
http://d.hatena.ne.jp/kazu-yamamoto/20101021/1287625788
>リストのリストに対して、深く再帰します。見方を変えれば、これは木構造に対する再帰です。
それまでは(復習は必要ですが)理解に苦しむことはなかったんですが‥
804デフォルトの名無しさん
2018/01/03(水) 21:17:21.44ID:E10k9nmq 本は仕様の確認程度に留めて処理系の実装を一通り見た方が理解が早いよ
俺は昔SECDR-SchemeやTiny-Scheme辺りのソース読んでSchemeの全てを理解した
俺は昔SECDR-SchemeやTiny-Scheme辺りのソース読んでSchemeの全てを理解した
805デフォルトの名無しさん
2018/01/04(木) 06:24:55.50ID:ZoCOsoct 勉強していく上で参考になるプログラムを見つけられないのが痛い
特にgaucheとかchickenでのオブジェクト指向をどうやって身につければいいの
特にgaucheとかchickenでのオブジェクト指向をどうやって身につければいいの
806はちみつ餃子 ◆8X2XSCHEME
2018/01/04(木) 19:59:41.91ID:l3TQzZ4M Gauche で書いたプロジェクトとしては WiLiKi とかどう?
shiro さん自身が書いてるのがいちばん Gauche 的に綺麗な書き方じゃね?
shiro さん自身が書いてるのがいちばん Gauche 的に綺麗な書き方じゃね?
807デフォルトの名無しさん
2018/01/04(木) 20:10:19.94ID:L/Z2udtD gaucheがライブラリを含めて固まってから書かれたならそう断言できるけど……
808デフォルトの名無しさん
2018/01/05(金) 07:35:42.44ID:zqdaz1Y8 RacketのプログラムをCと同じぐらいに高速化したい
Checkenで動くように改変すれば手間かからずに高速化出来るんだろうか
Checkenで動くように改変すれば手間かからずに高速化出来るんだろうか
809デフォルトの名無しさん
2018/01/05(金) 07:47:07.98ID:Lf4apqlY なんで Checken? Chez の方が速いでしょう。
810はちみつ餃子 ◆8X2XSCHEME
2018/01/05(金) 12:55:55.45ID:CY5W8ai3 Racket は速い方なので、それで不満なら単純に (手間をかけずに) 移植してもたいした高速化は望めないと思う。
処理系ごとのクセはあるから場合によっては載せ替えるだけで高速化になることも無いわけじゃないが、
やってみないと (検証の手間をかけないと) 結果はわからぬ。
処理系ごとのクセはあるから場合によっては載せ替えるだけで高速化になることも無いわけじゃないが、
やってみないと (検証の手間をかけないと) 結果はわからぬ。
811デフォルトの名無しさん
2018/01/06(土) 20:15:13.51ID:EqGxuZle shenってどうなの?
812はちみつ餃子 ◆8X2XSCHEME
2018/01/06(土) 20:25:52.03ID:mAB25EnJ どうとは?
813デフォルトの名無しさん
2018/01/06(土) 20:53:46.77ID:/zx+3sJQ 使ってみた感想あれば聞きたいね
日本語情報少ないし、用途もよくわからない
日本語情報少ないし、用途もよくわからない
814デフォルトの名無しさん
2018/01/06(土) 23:25:04.14ID:+G0EWjNB Prolog を結合させた玩具か
815デフォルトの名無しさん
2018/01/07(日) 01:55:08.52ID:xXD5IJqM 実装がたくさんあってスマホで遊べるくらいしか知らん
816デフォルトの名無しさん
2018/01/08(月) 07:56:07.49ID:iCZsrYFg スマホアプリもあるんか
シーケント計算ベースの型システムってのが難しそう
シーケント計算ベースの型システムってのが難しそう
817デフォルトの名無しさん
2018/01/08(月) 14:33:12.38ID:GiAqRu5e >>816
> シーケント計算ベースの型システムってのが難しそう
別にそういうことはない
型システムを良く行われるように自然演繹で定式化するかシーケント計算で定式化するかという定式化のスタイルの違いだけだから
大雑把に言えばシーケント計算は自然演繹のmeta calculusというスタイルだというだけだからね
> シーケント計算ベースの型システムってのが難しそう
別にそういうことはない
型システムを良く行われるように自然演繹で定式化するかシーケント計算で定式化するかという定式化のスタイルの違いだけだから
大雑把に言えばシーケント計算は自然演繹のmeta calculusというスタイルだというだけだからね
818デフォルトの名無しさん
2018/01/12(金) 00:43:08.04ID:FCuivLM3 https://github.com/adtac/autovpn/blob/master/autovpn.go
このopenvpnを使ってvpngateに接続するだけの、80行程度のgolangのコードをgaucheで書くとどんな感じになりますでしょうか
このopenvpnを使ってvpngateに接続するだけの、80行程度のgolangのコードをgaucheで書くとどんな感じになりますでしょうか
819デフォルトの名無しさん
2018/01/13(土) 04:15:46.39ID:l9Ynoqag 誰かー
820はちみつ餃子 ◆8X2XSCHEME
2018/01/13(土) 20:46:00.95ID:SxvD86sf >>818
こんな感じかな?
https://ideone.com/w5FtZ9
ideone はコード中の URL らしきものを適当にぼやかす機能があるらしく、勝手に置き換えられちゃった。
「download」のリンクでは本来の通りになるみたいなので、 html からコピペじゃなくてそっちを使ってね。
あと、 openvpn を手元で導入せずにそれっぽく書いたのでほんとにちゃんと動くか確かめてないぽよ〜
こんな感じかな?
https://ideone.com/w5FtZ9
ideone はコード中の URL らしきものを適当にぼやかす機能があるらしく、勝手に置き換えられちゃった。
「download」のリンクでは本来の通りになるみたいなので、 html からコピペじゃなくてそっちを使ってね。
あと、 openvpn を手元で導入せずにそれっぽく書いたのでほんとにちゃんと動くか確かめてないぽよ〜
821はちみつ餃子 ◆8X2XSCHEME
2018/01/13(土) 20:47:24.55ID:SxvD86sf >>820
いいかげんに書いたけど、まじめに書くならもうちょっと小さい手続きに分割するかも
いいかげんに書いたけど、まじめに書くならもうちょっと小さい手続きに分割するかも
822デフォルトの名無しさん
2018/01/14(日) 01:34:58.23ID:+lMGsT0I >>820
ありがと😍
ありがと😍
823はちみつ餃子 ◆8X2XSCHEME
2018/01/15(月) 03:15:00.90ID:PgCT585d ちゃんと使えた?
824デフォルトの名無しさん
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
+(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
825はちみつ餃子 ◆8X2XSCHEME
2018/01/19(金) 06:28:45.76ID:Sx7ZjBeS >>824
あー、たぶんやけどシグナルマスクがアレなんとちゃうかな。
先にチャイルドプロセスにシグナルが伝播して終了しとんのにシグナルを送ろうとしてもうそのプロセスのうなっとるって感じ。
Windows だとシグナルマスクはなんにも意味なくて、 Unix (POSIX ?) とは扱いが違うんで、ワイにはようわからんのやわ。
すまんの
あー、たぶんやけどシグナルマスクがアレなんとちゃうかな。
先にチャイルドプロセスにシグナルが伝播して終了しとんのにシグナルを送ろうとしてもうそのプロセスのうなっとるって感じ。
Windows だとシグナルマスクはなんにも意味なくて、 Unix (POSIX ?) とは扱いが違うんで、ワイにはようわからんのやわ。
すまんの
826デフォルトの名無しさん
2018/01/19(金) 20:50:44.46ID:mTCJnuoL 自分でも調べてみるわ😷
827デフォルトの名無しさん
2018/01/20(土) 19:46:46.44ID:5w5DrmOx :optional引数ってどうやって指定するんですか(?_?)
828はちみつ餃子 ◆8X2XSCHEME
2018/01/21(日) 02:44:01.85ID:+OtUX/+i Scheme でオプショナル引数を受け取る手続きをどう書くか? という意味?
829デフォルトの名無しさん
2018/01/21(日) 03:29:23.34ID:88fiVAag オプショナル引数を受け取れる手続きにどうやって渡すかという意味でつ
830デフォルトの名無しさん
2018/01/21(日) 04:44:31.01ID:+OtUX/+i それって聞かなきゃわからんような要素あるか?
普通に引数を書く以外にすることないだろ。
普通に引数を書く以外にすることないだろ。
831デフォルトの名無しさん
2018/02/03(土) 09:20:23.41ID:AXuwnjr7 はちみつ餃子 ◆8X2XSCHEME怒らせたら大したもんやで
832デフォルトの名無しさん
2018/02/03(土) 14:16:47.87ID:Rohe4eLB (apply オプショナル引数付き関数 (list 引数))
こうです
こうです
833はちみつ餃子 ◆8X2XSCHEME
2018/02/03(土) 18:37:12.13ID:h6JvH1q6 あー、なるほど、そういうことを聞きたかったのか。
834デフォルトの名無しさん
2018/02/23(金) 00:09:07.20ID:Gx1M+RW0 Lisp勉強するのに、白と黒の扉、聖霊の箱って役に立つ?
>>834
amazon でみたところ、「白と黒の扉」とかは、オートマトンやチューリングマシンの話だから lisp とはあまり関係ないんじゃないかな?
いや、 lisp でオートマトンやチューリングマシンを記述したいのだったら話は別だが
この手の話は、私は手元に
https://www.amazon.co.jp/dp/4627805500/
を置いて逐次参照しています、チューリングマシンの適当な発展書があれば、教えていただけるとうれしい
amazon でみたところ、「白と黒の扉」とかは、オートマトンやチューリングマシンの話だから lisp とはあまり関係ないんじゃないかな?
いや、 lisp でオートマトンやチューリングマシンを記述したいのだったら話は別だが
この手の話は、私は手元に
https://www.amazon.co.jp/dp/4627805500/
を置いて逐次参照しています、チューリングマシンの適当な発展書があれば、教えていただけるとうれしい
836デフォルトの名無しさん
2018/02/23(金) 20:04:19.51ID:VPGO0qVd837デフォルトの名無しさん
2018/02/23(金) 20:31:20.28ID:VPGO0qVd >>835
激しくすれ違いだけど
http://www.saiensu.co.jp/?page=book_details&ISBN=ISBN978-4-7819-9929-6&YEAR=2017
とか
http://gihyo.jp/book/2015/978-4-7741-7270-5
とか
激しくすれ違いだけど
http://www.saiensu.co.jp/?page=book_details&ISBN=ISBN978-4-7819-9929-6&YEAR=2017
とか
http://gihyo.jp/book/2015/978-4-7741-7270-5
とか
838デフォルトの名無しさん
2018/02/24(土) 10:43:23.87ID:luJPVo2x >>835-836
わかったそのうち読んでみる
わかったそのうち読んでみる
839デフォルトの名無しさん
2018/02/25(日) 21:58:20.05ID:a878t0wv もねまね鳥をまねる
スマリヤン先生って去年亡くなってたのか
120歳まで生きると思ってた
スマリヤン先生って去年亡くなってたのか
120歳まで生きると思ってた
840はちみつ餃子 ◆8X2XSCHEME
2018/02/25(日) 22:22:47.90ID:ZmnJQjxy スマリヤンって関西っぽい響きがあるよね。
スマリやん?www
スマリやん?www
841デフォルトの名無しさん
2018/02/25(日) 23:10:56.46ID:jsjHDqU/ >>839
あれはチューリングマシンじゃなくてコンビネータ
あれはチューリングマシンじゃなくてコンビネータ
842デフォルトの名無しさん
2018/02/28(水) 22:11:14.24ID:rEovxY4/ >>840
ああっ昔駄洒落自動生成機を作ろうとした黒歴史を思い出した
ああっ昔駄洒落自動生成機を作ろうとした黒歴史を思い出した
843デフォルトの名無しさん
2018/03/04(日) 07:44:31.66ID:TAStDbGK すまん。初心者です。教えてください。
仮に学校の比較?などを扱うプログラムを作ろうとしていて、schoolという1つの学校の情報をまとめたクラスを作るとします。
そのクラスの中に、以下のような学生の情報をまとめたテーブルの情報をぶち込みたいとして、どのようにこれらのテーブルをschoolクラス内に保存するのがいいですか。
名前 整理番号 性別 2ちゃんねら 馬鹿 橋本環奈好き 年齢
taro 0 #\M t t nil 16
hanako 1 #\F nil t t 16
nagisa 2 #\L nil nil t 18
hoge
piyo
foobar
...
学校によって人数は若干違いますが、基本的にテーブルの大きさはそれほど大きくないとします。
それぞれの要素を頻繁に検索・参照する必要があります。
僕が思いつくのは、
・schoolのstudentsというスロットに、1人のデータの1つのリスト・構造体・クラスにして、そのリストとして保存。
・ハッシュテーブルをつかって、下記のような形で保存。
2CHP ((NAGISA NIL) (HANAKO NIL) (TARO T))
BAKAP ((NAGISA T) (HANAKO T) (TARO T))
ぐらいなのですが、このうちどれがおすすめとか、これら以外にもっと便利な方法などありましたら教えてください。
よろしくお願いいたします。
仮に学校の比較?などを扱うプログラムを作ろうとしていて、schoolという1つの学校の情報をまとめたクラスを作るとします。
そのクラスの中に、以下のような学生の情報をまとめたテーブルの情報をぶち込みたいとして、どのようにこれらのテーブルをschoolクラス内に保存するのがいいですか。
名前 整理番号 性別 2ちゃんねら 馬鹿 橋本環奈好き 年齢
taro 0 #\M t t nil 16
hanako 1 #\F nil t t 16
nagisa 2 #\L nil nil t 18
hoge
piyo
foobar
...
学校によって人数は若干違いますが、基本的にテーブルの大きさはそれほど大きくないとします。
それぞれの要素を頻繁に検索・参照する必要があります。
僕が思いつくのは、
・schoolのstudentsというスロットに、1人のデータの1つのリスト・構造体・クラスにして、そのリストとして保存。
・ハッシュテーブルをつかって、下記のような形で保存。
2CHP ((NAGISA NIL) (HANAKO NIL) (TARO T))
BAKAP ((NAGISA T) (HANAKO T) (TARO T))
ぐらいなのですが、このうちどれがおすすめとか、これら以外にもっと便利な方法などありましたら教えてください。
よろしくお願いいたします。
844843
2018/03/04(日) 08:03:30.14ID:TAStDbGK 作ったハッシュテーブルをschoolのstudentsスロットにぶち込むと言うことです。
あと、nagisaさんは馬鹿ではありません。失礼しました。
こーいうクラスとかの設計の基本と言うか定石ってどうやって勉強したらええの?
あと、nagisaさんは馬鹿ではありません。失礼しました。
こーいうクラスとかの設計の基本と言うか定石ってどうやって勉強したらええの?
845はちみつ餃子 ◆8X2XSCHEME
2018/03/04(日) 09:04:58.34ID:R9gQD4Ga 何が良くて何が悪いかなんてやってみなきゃわからんよ。
まず動くものを作ってから出来が悪いと思ったところを直していったらいい。
LISP の良さってそういうとこだろ。
まず動くものを作ってから出来が悪いと思ったところを直していったらいい。
LISP の良さってそういうとこだろ。
846デフォルトの名無しさん
2018/03/04(日) 13:12:25.83ID:lKMWv6ic studentクラスの定義がまず先かな
あとstudentsはキーを何にするかが問題
多分名前なんだろうけど、他の項目でも取り出したいときはハッシュテーブルだと面倒だから単に配列でも良いと思うがな
あとstudentsはキーを何にするかが問題
多分名前なんだろうけど、他の項目でも取り出したいときはハッシュテーブルだと面倒だから単に配列でも良いと思うがな
847デフォルトの名無しさん
2018/03/04(日) 17:37:51.82ID:A+6ka4SL848はちみつ餃子 ◆8X2XSCHEME
2018/03/04(日) 18:07:26.80ID:R9gQD4Ga オブジェクトシステムを積極的に使うべきかどうかは確かに場合によるし使わなくても割といけるが、
関数型とオブジェクト指向は直行する概念で、関数型であるからオブジェクトシステムの価値が低いというわけじゃない。
関数型とオブジェクト指向は直行する概念で、関数型であるからオブジェクトシステムの価値が低いというわけじゃない。
849デフォルトの名無しさん
2018/03/04(日) 20:03:49.57ID:A+6ka4SL CLOSは初心者に分かりにくい
Lisp自体もそうだけどさらに分かりにくい
Lisp自体もそうだけどさらに分かりにくい
850デフォルトの名無しさん
2018/03/04(日) 21:45:17.24ID:t2oIRDJW CLOSみたいなんじゃなくてもっと言語仕様に密着したオブジェクトシステムがあればと思う
例えばコンスセルはcarとcdrをメンバーに持つクラスみたいな
Gaucheってそうなってんだっけ?
例えばコンスセルはcarとcdrをメンバーに持つクラスみたいな
Gaucheってそうなってんだっけ?
851デフォルトの名無しさん
2018/03/04(日) 21:49:01.63ID:76y9+wl8 LispでSmalltalk実装すれば解決
852デフォルトの名無しさん
2018/03/04(日) 22:35:38.01ID:qI2WOoIZ オブジェクト志向うんぬんの空気読まずにカキコ
>>844
>こーいうクラスとかの設計の基本と言うか定石ってどうやって勉強したらええの?
LISPというよりも、どちらかというとデータベース設計が主題になるね
もし手早くSchemeで小規模なデータベースを実装したいのであれば、
SLIBと呼ばれるよく知られたライブラリに含まれている
データベースを使うのが最短だと思う
・The SLIB Portable Scheme Library
http://people.csail.mit.edu/jaffer/SLIB
日本語では、以下の書籍で文献データベースを主題として丁寧に解説されている
・入門Scheme
- Schcme入門からXツールキットを使ったリレーショナルデータベースプログラムまで
https://www.amazon.co.jp/dp/4879669547
もしLISP(による実装)を離れて一般的なデータベース設計そのものを勉強するなら、
たとえば定番の入門書(教科書)である以下の書籍の前半を読む
・リレーショナルデータベース入門―データモデル・SQL・管理システム・NoSQL
https://www.amazon.co.jp/dp/4781913903
もしLISPプログラミングに自信があり、その上で広義のデータベースとして
「LISPによる知識表現プログラミング」を習得したいのなら、
遠回りになるけどSICP本の「4.4章 論理プログラミング」への挑戦を勧める
>>844
>こーいうクラスとかの設計の基本と言うか定石ってどうやって勉強したらええの?
LISPというよりも、どちらかというとデータベース設計が主題になるね
もし手早くSchemeで小規模なデータベースを実装したいのであれば、
SLIBと呼ばれるよく知られたライブラリに含まれている
データベースを使うのが最短だと思う
・The SLIB Portable Scheme Library
http://people.csail.mit.edu/jaffer/SLIB
日本語では、以下の書籍で文献データベースを主題として丁寧に解説されている
・入門Scheme
- Schcme入門からXツールキットを使ったリレーショナルデータベースプログラムまで
https://www.amazon.co.jp/dp/4879669547
もしLISP(による実装)を離れて一般的なデータベース設計そのものを勉強するなら、
たとえば定番の入門書(教科書)である以下の書籍の前半を読む
・リレーショナルデータベース入門―データモデル・SQL・管理システム・NoSQL
https://www.amazon.co.jp/dp/4781913903
もしLISPプログラミングに自信があり、その上で広義のデータベースとして
「LISPによる知識表現プログラミング」を習得したいのなら、
遠回りになるけどSICP本の「4.4章 論理プログラミング」への挑戦を勧める
853はちみつ餃子 ◆8X2XSCHEME
2018/03/05(月) 00:38:23.33ID:Q2HqOyhm >>849
どうだろうなぁ。 初心者っていうか人によるんじゃね。
俺は JavaScript のプロトタイプベースのクソさに辟易した (実利があるのはわかってはいる) けど、
Gauche の (CLOS 風の) オブジェクトシステムにはそんなに忌避感ないし。
どうだろうなぁ。 初心者っていうか人によるんじゃね。
俺は JavaScript のプロトタイプベースのクソさに辟易した (実利があるのはわかってはいる) けど、
Gauche の (CLOS 風の) オブジェクトシステムにはそんなに忌避感ないし。
854843
2018/03/05(月) 05:06:56.57ID:HTepcGeJ みなさん、アドバイス・参考書の紹介などありがとうございます。
いろいろ自分で試してみて、どれがいいか決めようと思います。
とりあえずの方針としては、school-baseみたいなクラスの下に、studentsクラスを作って
そこにテーブル属性ごとにスロットを作って、alist形式でぶち込むことにしました。
キーの設定やら検索の便宜やら考えた結果、alistが一番手軽そうだと言うことで。
BAKAP ((taro.t) (hanako) (nagisa.t) ... )
みたいな感じで。学生を単位にデータを作ると扱いづらそうなので。
いろいろ自分で試してみて、どれがいいか決めようと思います。
とりあえずの方針としては、school-baseみたいなクラスの下に、studentsクラスを作って
そこにテーブル属性ごとにスロットを作って、alist形式でぶち込むことにしました。
キーの設定やら検索の便宜やら考えた結果、alistが一番手軽そうだと言うことで。
BAKAP ((taro.t) (hanako) (nagisa.t) ... )
みたいな感じで。学生を単位にデータを作ると扱いづらそうなので。
855デフォルトの名無しさん
2018/03/05(月) 22:58:53.34ID:uKMy0Btp オブジェクト指向的には
学生ごとにインスタンスを生成して
各属性はインスタンスのスロットに入れるのが自然な実装だろう
属性が動的に変わるなら
そこをalist/plistにするか
プロトタイプ思考のOOPSを使うといい
学生ごとにインスタンスを生成して
各属性はインスタンスのスロットに入れるのが自然な実装だろう
属性が動的に変わるなら
そこをalist/plistにするか
プロトタイプ思考のOOPSを使うといい
856デフォルトの名無しさん
2018/03/07(水) 19:56:08.11ID:YoTLFFGw 本屋に行ったらLittle Proverの和訳が出ててびっくりした
857デフォルトの名無しさん
2018/03/08(木) 00:07:13.06ID:SsdsVhWr858デフォルトの名無しさん
2018/03/08(木) 23:01:12.93ID:w9PzfbW0 またkaizenさんが和歌でレビュー書いてるのかと思った
859デフォルトの名無しさん
2018/03/11(日) 23:12:35.97ID:TCP/sl3z 教えてください。
cxmlで150mbぐらいのファイルをparseしようとしたら、
メモリのリミット来てるでーって怒られてダメでした。
巨大ファイルの扱い方教えてください。
cxmlで150mbぐらいのファイルをparseしようとしたら、
メモリのリミット来てるでーって怒られてダメでした。
巨大ファイルの扱い方教えてください。
860859
2018/03/12(月) 03:24:23.18ID:/MpQ/gxq saxとかklacksってのを使えば良いのか。
どうやっても空白を拾ってしまう。何でだ。
いろいろ頭痛い。
どうやっても空白を拾ってしまう。何でだ。
いろいろ頭痛い。
861デフォルトの名無しさん
2018/03/12(月) 17:46:56.89ID:tR8Qr250862はちみつ餃子 ◆8X2XSCHEME
2018/03/12(月) 19:42:56.53ID:wZFlYBXj >>860
空白はそのままに認識するのが XML の規約じゃなかったっけ。
空白を除去したいかどうかはアプリケーション側の裁量。
よく使われるライブラリなら何かオプションを持ってたりすることはあるかもしれんけど。
空白はそのままに認識するのが XML の規約じゃなかったっけ。
空白を除去したいかどうかはアプリケーション側の裁量。
よく使われるライブラリなら何かオプションを持ってたりすることはあるかもしれんけど。
863デフォルトの名無しさん
2018/03/19(月) 16:28:35.15ID:wWyAeyoL これがLispだ!は教科書っぽくていいな
これと実践あたりを順を追って読んでみようと思う
それからSICPにいこうかな
竹内初めてのとかLand of Lispみたいなノリの本こそLispらしいのだろうが、ついていけないと嫌いになる^^;
LittleはCPSからいきなり難しくなるし、その前も背景知識ないと消化不足になる
Yコンビネータも一応流れはつかめても、自分みたいな頭良くない初学者にはあの試行錯誤から何かを掴むのは難しい
Lispは表面的な軽さと話してることが乖離している書籍が多いし、独学者にはキツイ
これらが、同時並行的にあーなるほど、となると悟ったという事になるのかな?
これと実践あたりを順を追って読んでみようと思う
それからSICPにいこうかな
竹内初めてのとかLand of Lispみたいなノリの本こそLispらしいのだろうが、ついていけないと嫌いになる^^;
LittleはCPSからいきなり難しくなるし、その前も背景知識ないと消化不足になる
Yコンビネータも一応流れはつかめても、自分みたいな頭良くない初学者にはあの試行錯誤から何かを掴むのは難しい
Lispは表面的な軽さと話してることが乖離している書籍が多いし、独学者にはキツイ
これらが、同時並行的にあーなるほど、となると悟ったという事になるのかな?
>>863
>LittleはCPSからいきなり難しくなるし、その前も背景知識ないと消化不足になる
おっと、いつのまにか little schemer の読み込みが途絶えてしまっていた、今日から馬力をかけて、ぜひ読みきろう!
>LittleはCPSからいきなり難しくなるし、その前も背景知識ないと消化不足になる
おっと、いつのまにか little schemer の読み込みが途絶えてしまっていた、今日から馬力をかけて、ぜひ読みきろう!
865デフォルトの名無しさん
2018/03/19(月) 19:28:13.49ID:VtB6yui4 CPSも紙に書いてトレースすることはできるんだけど
見た目が難しいのにご利益があまり感じられないのは俺の頭が悪いからかな?
見た目が難しいのにご利益があまり感じられないのは俺の頭が悪いからかな?
866はちみつ餃子 ◆8X2XSCHEME
2018/03/19(月) 20:10:47.01ID:RG1qd9Pc867デフォルトの名無しさん
2018/03/19(月) 21:18:53.51ID:VtB6yui4868はちみつ餃子 ◆8X2XSCHEME
2018/03/19(月) 22:47:45.65ID:RG1qd9Pc >>867
うーん、俺も理屈をきちんと学んだわけじゃなくて CPS 変換を通して理解したんだけど、
CPS 変換しても何もつかめなかったのならどうすればいいんだろう……。
CPS は継続の理解の助けになるんだよ。
入門書で CPS 変換を取り上げるのは継続を理解させるため。
CPS 変換すること自体が普段のプログラミングですごく役に立つってわけではない。
継続ってのは call/cc で取り出せるやつってだけじゃなくて、
Scheme のプログラムでは常に背後にある。
Scheme に限らずどんな言語にも、 C にだってある。
call/cc は背後にあるのを表に引きずり出す仕組みなんだ。
だから背後でやってるやつを明示的にやったらどないや? っていうのが CPS なの。
そんだけ。
うーん、俺も理屈をきちんと学んだわけじゃなくて CPS 変換を通して理解したんだけど、
CPS 変換しても何もつかめなかったのならどうすればいいんだろう……。
CPS は継続の理解の助けになるんだよ。
入門書で CPS 変換を取り上げるのは継続を理解させるため。
CPS 変換すること自体が普段のプログラミングですごく役に立つってわけではない。
継続ってのは call/cc で取り出せるやつってだけじゃなくて、
Scheme のプログラムでは常に背後にある。
Scheme に限らずどんな言語にも、 C にだってある。
call/cc は背後にあるのを表に引きずり出す仕組みなんだ。
だから背後でやってるやつを明示的にやったらどないや? っていうのが CPS なの。
そんだけ。
869デフォルトの名無しさん
2018/03/19(月) 23:21:42.83ID:tGR5L1Pg CPS変換はCLとかelispでジェネレータの実装に使われてるよね
870デフォルトの名無しさん
2018/03/20(火) 11:33:11.49ID:U6Uv8xSd >>868
> CPS は継続の理解の助けになるんだよ。
その通り
> CPS 変換すること自体が普段のプログラミングですごく役に立つってわけではない。
まあ普通のプログラミングではCPS変換なんて必要ないわな
> 継続ってのは call/cc で取り出せるやつってだけじゃなくて、
> Scheme のプログラムでは常に背後にある。
> Scheme に限らずどんな言語にも、 C にだってある。
上の3行はもちろん間違っていないんだけれども補足しておくと、
Cなどの通常のgoto文(やCのbreak文等のような制限されたgoto文)とか例外処理を有する命令型プログラミング言語の意味論(正確には表示的意味論)を語る上でこそ継続が不可欠になる
Schemeからcall/ccを除けば(call/ccやそれを含むライブラリ手続きの類を一切使わない範囲でしかSchemeを利用しない人は)継続を使わない意味論で考えても何も問題ない
例えば、命令型言語でも制御構文としてif文とwhile文しかない(goto文やbreak文等のジャンプは含まない)言語…しばしば「While言語」とか呼んで手続き型言語の表示的意味論の
説明用としてに最初に取り上げられるミニチュア言語(一応、万能ね)…の意味を与えるだけなら継続は必要ない
そういう単純な(いわゆる「構造的」な)制御フローしか許さない言語では、個々の文(命令)の意味は状態から状態への写像(つまり文の表すものは一つの状態変換関数)として考えれば済む
goto文や例外処理のような構文に関して制御の流れが(文の構文構造について)構造帰納的でなくなる制御フローを生み出してしまうものを含んだ言語の意味論を考えようとすると継続が不可欠になる
もはや、個々の文を状態変換関数(そして個々の式を状態の集合から値の集合への一つの関数)として考えるような直感的に分かり易い意味の与え方は通用しない
表示的意味論の生みの親のStracheyが、compositionalつまり大雑把には構造帰納的に意味を与える表示的意味論において構造帰納的でない制御フローを生み出すgoto文の意味を
如何に与えるかで悩んだ末に発明した概念こそが正に継続なんだ
(因みに日本語の表示的意味論の教科書でやや古いものは“continuation”の訳語として「継続」でなく「接続」という言葉を使っている場合があるが両者は全く同じ)
> CPS は継続の理解の助けになるんだよ。
その通り
> CPS 変換すること自体が普段のプログラミングですごく役に立つってわけではない。
まあ普通のプログラミングではCPS変換なんて必要ないわな
> 継続ってのは call/cc で取り出せるやつってだけじゃなくて、
> Scheme のプログラムでは常に背後にある。
> Scheme に限らずどんな言語にも、 C にだってある。
上の3行はもちろん間違っていないんだけれども補足しておくと、
Cなどの通常のgoto文(やCのbreak文等のような制限されたgoto文)とか例外処理を有する命令型プログラミング言語の意味論(正確には表示的意味論)を語る上でこそ継続が不可欠になる
Schemeからcall/ccを除けば(call/ccやそれを含むライブラリ手続きの類を一切使わない範囲でしかSchemeを利用しない人は)継続を使わない意味論で考えても何も問題ない
例えば、命令型言語でも制御構文としてif文とwhile文しかない(goto文やbreak文等のジャンプは含まない)言語…しばしば「While言語」とか呼んで手続き型言語の表示的意味論の
説明用としてに最初に取り上げられるミニチュア言語(一応、万能ね)…の意味を与えるだけなら継続は必要ない
そういう単純な(いわゆる「構造的」な)制御フローしか許さない言語では、個々の文(命令)の意味は状態から状態への写像(つまり文の表すものは一つの状態変換関数)として考えれば済む
goto文や例外処理のような構文に関して制御の流れが(文の構文構造について)構造帰納的でなくなる制御フローを生み出してしまうものを含んだ言語の意味論を考えようとすると継続が不可欠になる
もはや、個々の文を状態変換関数(そして個々の式を状態の集合から値の集合への一つの関数)として考えるような直感的に分かり易い意味の与え方は通用しない
表示的意味論の生みの親のStracheyが、compositionalつまり大雑把には構造帰納的に意味を与える表示的意味論において構造帰納的でない制御フローを生み出すgoto文の意味を
如何に与えるかで悩んだ末に発明した概念こそが正に継続なんだ
(因みに日本語の表示的意味論の教科書でやや古いものは“continuation”の訳語として「継続」でなく「接続」という言葉を使っている場合があるが両者は全く同じ)
871デフォルトの名無しさん
2018/03/20(火) 12:19:35.96ID:GlHoGrJi 何時からこんな長文のレスが出来るようになったのかと
872デフォルトの名無しさん
2018/03/20(火) 23:23:33.89ID:+gsETVt6 >>865
簡単なスタックマシンにコンパイルしてみてはどうか?
簡単なスタックマシンにコンパイルしてみてはどうか?
873デフォルトの名無しさん
2018/03/20(火) 23:24:33.08ID:+gsETVt6874デフォルトの名無しさん
2018/03/21(水) 11:51:20.10ID:u5CZK1Hr 継続ってラムダ計算にもあるの?
875デフォルトの名無しさん
2018/03/25(日) 00:56:23.32ID:1/5marwz CPSは必ずしも再帰で使う必要はないということでいいのかな
リトルのCPSが消化不良なのは前の章までの理解が足りてないってことか
リトルのCPSが消化不良なのは前の章までの理解が足りてないってことか
876はちみつ餃子 ◆8X2XSCHEME
2018/03/25(日) 01:16:25.39ID:vqcfoPV6 再帰とは関係なく全ての計算に関わってるよ。
877デフォルトの名無しさん
2018/03/25(日) 23:02:19.40ID:wjjQa2Mo 再帰の際に、例えば階乗計算で終端条件から戻ってきて
1*2*3*.......*(n-2)*(n-1)*nと掛けられるものも継続ですか?
1*2*3*.......*(n-2)*(n-1)*nと掛けられるものも継続ですか?
878デフォルトの名無しさん
2018/03/26(月) 04:28:41.05ID:M0YORv20879デフォルトの名無しさん
2018/03/26(月) 14:01:22.69ID:YDvloqxD >>878
ああ、その説明は見事ですね
ああ、その説明は見事ですね
880はちみつ餃子 ◆8X2XSCHEME
2018/03/26(月) 14:19:29.21ID:S9VCdiyC C ではアドレスが継続だと思えばだいたい合ってる。
環境が保存されないから Scheme より限定的だけども。
C だと実引数と一緒にリターンアドレスもプッシュするじゃん?
それと同じように Scheme でも戻ってくる継続を暗黙に渡してるんだよ。
Scheme の call/cc は gcc 拡張の __builtin_return_address みたいなもん。
環境が保存されないから Scheme より限定的だけども。
C だと実引数と一緒にリターンアドレスもプッシュするじゃん?
それと同じように Scheme でも戻ってくる継続を暗黙に渡してるんだよ。
Scheme の call/cc は gcc 拡張の __builtin_return_address みたいなもん。
881デフォルトの名無しさん
2018/03/26(月) 16:22:01.20ID:4JGFggle 俺Cわかんないんだよね^^;
882はちみつ餃子 ◆8X2XSCHEME
2018/03/26(月) 16:54:52.93ID:S9VCdiyC そっか〜
883デフォルトの名無しさん
2018/03/26(月) 20:38:59.41ID:4JGFggle884デフォルトの名無しさん
2018/03/26(月) 22:41:49.50ID:5QVYm+SC Cで継続を保存しようとしたら、setjmpで保存してるもの(全レジスタの状態)とスタックの内容のコピーだろ(場合によってはかなりのサイズになるが)
>>884
setjmp/longjmp は、スタックポインタは保存してもスタックの内容のコピーはしない、だからネストの浅いところから深いところにジャンプできない
setjmp/longjmp は、スタックポインタは保存してもスタックの内容のコピーはしない、だからネストの浅いところから深いところにジャンプできない
886デフォルトの名無しさん
2018/03/27(火) 09:40:09.76ID:82AcOlMQ >>885
ん?だからsetjmpの内容とスタックの内容をコピーすると思いっきり書いたつもりだったが…
ん?だからsetjmpの内容とスタックの内容をコピーすると思いっきり書いたつもりだったが…
887デフォルトの名無しさん
2018/03/27(火) 21:44:25.00ID:vSyzL0sA C++ coroutinesだとスタック全コピーも実装の有力な候補だな
888デフォルトの名無しさん
2018/03/27(火) 22:03:59.18ID:vSyzL0sA というか、おととし最後に聞いたときには>>884の言う通りでほぼ決まりみたいな話だった
C/C++では何と、スタックの中を書き換えることができるのだ!
C/C++では何と、スタックの中を書き換えることができるのだ!
889デフォルトの名無しさん
2018/03/28(水) 07:06:35.26ID:lXnJ1NTY Smalltalkならスタックフレームもオブジェクト
890デフォルトの名無しさん
2018/03/28(水) 23:58:25.75ID:qqTeUvjF Smalltalkって業務で使ってるとこあるのかな
LISP系よりはありそうなんだが
LISP系よりはありそうなんだが
891デフォルトの名無しさん
2018/03/29(木) 06:38:02.92ID:xL1sPJzZ ヨーロッパや南米での事例が多いとか
https://medium.com/@newapplesho/今時-2017-のsmalltalkの始めかた-93c044820e1b
日本にも地味に仕事あるらしいけど守秘義務で見えにくい
スーパーの古いレジ(POSシステム)で使われているのを見かけたのはNEC系のこれか?
http://tech.nikkeibp.co.jp/it/members/NT/JIREI/20011220/1/
比較的最近の話題はLispばりにスタートアップに活用されたこと
http://web.archive.org/web/20171111102557/https://thepedia.co/article/1068/
https://medium.com/@newapplesho/今時-2017-のsmalltalkの始めかた-93c044820e1b
日本にも地味に仕事あるらしいけど守秘義務で見えにくい
スーパーの古いレジ(POSシステム)で使われているのを見かけたのはNEC系のこれか?
http://tech.nikkeibp.co.jp/it/members/NT/JIREI/20011220/1/
比較的最近の話題はLispばりにスタートアップに活用されたこと
http://web.archive.org/web/20171111102557/https://thepedia.co/article/1068/
892デフォルトの名無しさん
2018/03/29(木) 21:46:13.19ID:aMjJrqbe >>890
> Smalltalkって業務で使ってるとこあるのかな
> LISP系よりはありそうなんだが
少なくともアメリカでは実アプリをSmalltalkで作ってるケースはほとんどないんじゃないと思うが
プロトタイプをSmalltalkでちゃっちゃと作ってしまい動作確認をするってのはアメリカでも昔からさほど珍しくないそうだが
ちなみにCommon Lispはアメリカでは以前から実用アプリの記述言語としてそれなりの頻度で使われてるよ
> Smalltalkって業務で使ってるとこあるのかな
> LISP系よりはありそうなんだが
少なくともアメリカでは実アプリをSmalltalkで作ってるケースはほとんどないんじゃないと思うが
プロトタイプをSmalltalkでちゃっちゃと作ってしまい動作確認をするってのはアメリカでも昔からさほど珍しくないそうだが
ちなみにCommon Lispはアメリカでは以前から実用アプリの記述言語としてそれなりの頻度で使われてるよ
893デフォルトの名無しさん
2018/03/30(金) 01:39:43.69ID:uMQPOtnG >>880
スタックも含まないと継続にはならない
スタックも含まないと継続にはならない
894はちみつ餃子 ◆8X2XSCHEME
2018/03/30(金) 04:37:04.64ID:AQ2aJRgB895デフォルトの名無しさん
2018/03/30(金) 07:19:01.27ID:wy67wuPJ896デフォルトの名無しさん
2018/03/30(金) 07:29:31.52ID:YaBZvbti 環境をあえて使わない継続の応用はあっても
環境を含むことができない機構を(「限定的」と断ったとしても)継続だと言い張るのはオカシイよ
環境を含むことができない機構を(「限定的」と断ったとしても)継続だと言い張るのはオカシイよ
897デフォルトの名無しさん
2018/03/30(金) 13:49:13.71ID:a6Uq4iez 別に「限定継続/delimited continuation」ってものもあるしな
話がややこしくなるだけで理解の助けにならない
話がややこしくなるだけで理解の助けにならない
898はちみつ餃子 ◆8X2XSCHEME
2018/03/30(金) 16:49:52.67ID:AQ2aJRgB Racket で escape continuation って言ってるやつと近いかな。
899デフォルトの名無しさん
2018/04/08(日) 19:00:53.26ID:bJUCDaUD schemeをjsに変換してreactやるとかelectronでGUIアプリ作るとかいう話ない?
900デフォルトの名無しさん
2018/04/08(日) 19:55:46.10ID:e7Arryer scheme->jsの変換は簡単そうだね
継続使ってなければ
継続使ってなければ
901デフォルトの名無しさん
2018/04/11(水) 08:57:34.76ID:smzFdsBm そもそもJSにトランスパイルできる
まともなscheme処理系が無いだろう
まともなscheme処理系が無いだろう
902デフォルトの名無しさん
2018/04/12(木) 03:16:46.76ID:dUBwD102 loopがマジでわからん。
どうしたらいい?
どうしたらいい?
903デフォルトの名無しさん
2018/04/12(木) 05:13:34.09ID:QxuUPFoE loop マクロを自作してみる
904デフォルトの名無しさん
2018/04/12(木) 07:42:04.41ID:w4rNP/ma 実践Common Lispで覚えた
formatも同じく
formatも同じく
905デフォルトの名無しさん
2018/04/13(金) 01:48:08.55ID:UkwKelSp ocamlでさえjavascriptにコンパイル出来るというのにschemeも頑張ろうや
906デフォルトの名無しさん
2018/04/14(土) 10:00:00.96ID:BMT8UCYv Scheme -> Clojure -> javascript の順番に変換するなら、
Clojure -> javascript はすでに自動変換だし、
Scheme -> Clojure も define -> def 等、機械的な置き換えである程度出来るから、
単純なプログラムを変換することは出来るけど、それほど需要がないから無いんじゃないの。
Clojure -> javascript はすでに自動変換だし、
Scheme -> Clojure も define -> def 等、機械的な置き換えである程度出来るから、
単純なプログラムを変換することは出来るけど、それほど需要がないから無いんじゃないの。
907デフォルトの名無しさん
2018/04/14(土) 14:14:27.78ID:Q/hh4lYx つうかemscriptenで幾つかの実装が動いてるよね
ただそれだけで
ただそれだけで
908デフォルトの名無しさん
2018/04/14(土) 17:47:52.07ID:BMT8UCYv emscripten で C言語 -> javascript に変換が可能だから、Chicken で Scheme -> C言語 に変換すれば、
Scheme -> C言語 -> javascript が実行できるハズか。うまく通らないコードもあるだろうけど。
Scheme -> C言語 -> javascript が実行できるハズか。うまく通らないコードもあるだろうけど。
909デフォルトの名無しさん
2018/04/16(月) 14:28:58.54ID:rldqSGZ/ >>908
そんなチキンなやり方が許されるとでも?
そんなチキンなやり方が許されるとでも?
910デフォルトの名無しさん
2018/04/16(月) 15:10:31.47ID:cjXJGsOK911デフォルトの名無しさん
2018/04/16(月) 17:37:30.38ID:Ao+0rxLU なんだそのツッコミは
912デフォルトの名無しさん
2018/04/22(日) 18:59:39.73ID:kgMcoKG3 なるほどもっとキチンとやれと
913デフォルトの名無しさん
2018/04/22(日) 23:13:19.09ID:vfnhSJ7e ところで「ブラウザでCLを動的にJSにトランスパイル可能なライブラリ」って聞いたら何が思い浮かびます?
914デフォルトの名無しさん
2018/04/23(月) 13:04:48.19ID:h3LGX4rw915デフォルトの名無しさん
2018/04/23(月) 16:29:52.12ID:4n233aPE >>914
ワロタww
ワロタww
916デフォルトの名無しさん
2018/05/02(水) 09:24:55.05ID:Ofc9Qt+3 質問です!
動的スコープってスタックに積み上げるだけで実現できるじゃないですか
静的スコープってどうやって実装すればいいんですか?ヒント下さい
動的スコープってスタックに積み上げるだけで実現できるじゃないですか
静的スコープってどうやって実装すればいいんですか?ヒント下さい
917はちみつ餃子 ◆8X2XSCHEME
2018/05/02(水) 12:49:52.49ID:g0SlpjdS コンパイル (意味解析) 時にスタックを使えばいいんじゃないのかな。
918デフォルトの名無しさん
2018/05/02(水) 13:03:03.19ID:Ofc9Qt+3 >>917
なるほど、意味解析時にスコープの構造をスタックで再現しといて
eval時に該当するスタックを参照できればいいってことですよね。
なんだか、ソースマップみたいですね。ひとつひとつのAtomに該当するスコープの参照を持たせるとなると、なんか重くなりそうですね
なるほど、意味解析時にスコープの構造をスタックで再現しといて
eval時に該当するスタックを参照できればいいってことですよね。
なんだか、ソースマップみたいですね。ひとつひとつのAtomに該当するスコープの参照を持たせるとなると、なんか重くなりそうですね
919デフォルトの名無しさん
2018/05/11(金) 15:15:36.81ID:jYn7b+yh Have you ever read The Little Schemer? => #t
Have you ever read The Seasoned Schemer? => #t
Have you ever read The Reasoned Schemer? => #t
Have you ever read The Little Prover? => #t
Have you ever read The Little Typer? => #f
What's The Little Typer? => Pie language book.
Have you ever read The Seasoned Schemer? => #t
Have you ever read The Reasoned Schemer? => #t
Have you ever read The Little Prover? => #t
Have you ever read The Little Typer? => #f
What's The Little Typer? => Pie language book.
920デフォルトの名無しさん
2018/05/13(日) 10:00:19.91ID:V4PsQf4P David Thrane Christiansen のやっている Idris や Pie language といえば、
依存型 (dependent type) を使用した Type-Driven Development かな。
定理証明系の次の話題としては順当なところ。
依存型 (dependent type) を使用した Type-Driven Development かな。
定理証明系の次の話題としては順当なところ。
921デフォルトの名無しさん
2018/05/13(日) 10:10:02.10ID:fJNKI1KS もうなんのことだかさっぱり
922デフォルトの名無しさん
2018/05/13(日) 13:45:19.45ID:V4PsQf4P 依存型についてのテキストはこれまでにこういうのが出てるよ。
Edwin Brady "Type-Driven Development with Idris"
Adam Chlipala "Certified Programming with Dependent Types"
Aaron Stump "Verified Functional Programming in Agda"
Edwin Brady と David Thrane Christiansen は協力して Idris を作ったひとで、
今回、Christiansen が Racket 上で Pie language を実装したみたい。
Pie languageの実装を理解させる本が出ることで Type-Driven Development の
低レベルでの詳細が明快になると期待できる感じかな。
Edwin Brady "Type-Driven Development with Idris"
Adam Chlipala "Certified Programming with Dependent Types"
Aaron Stump "Verified Functional Programming in Agda"
Edwin Brady と David Thrane Christiansen は協力して Idris を作ったひとで、
今回、Christiansen が Racket 上で Pie language を実装したみたい。
Pie languageの実装を理解させる本が出ることで Type-Driven Development の
低レベルでの詳細が明快になると期待できる感じかな。
923デフォルトの名無しさん
2018/05/23(水) 20:15:24.16ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
VU7Z1
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
VU7Z1
924デフォルトの名無しさん
2018/05/23(水) 20:17:31.53ID:ddkD19I+ ちょっと聞きたいんですけど
JSONをS式で書いたらどんな書き方になると思いますか?
(users . (
((Name . John)
(Age . 25))
((Name . Mike)
(Age . 24))
))
みたいな感じですか?
JSONをS式で書いたらどんな書き方になると思いますか?
(users . (
((Name . John)
(Age . 25))
((Name . Mike)
(Age . 24))
))
みたいな感じですか?
925デフォルトの名無しさん
2018/05/23(水) 21:44:54.25ID:8jCQObxo cl-jsonとかで読み込んでみたら
926はちみつ餃子 ◆8X2XSCHEME
2018/05/24(木) 00:45:42.66ID:jqqWnK8Z >>924
Gauche だとこんな感じにマッピングされる。
https://practical-scheme.net/gauche/man/?l=ja&p=parse-json
Sagittarius だとこう。
http://ktakashi.github.io/sagittarius-online-ref/section753.html
XML だと SXML でほぼ統一されてるけど、JSON に関してはまだ揺らぎがある。
Gauche だとこんな感じにマッピングされる。
https://practical-scheme.net/gauche/man/?l=ja&p=parse-json
Sagittarius だとこう。
http://ktakashi.github.io/sagittarius-online-ref/section753.html
XML だと SXML でほぼ統一されてるけど、JSON に関してはまだ揺らぎがある。
927デフォルトの名無しさん
2018/05/24(木) 01:13:53.62ID:NR1AW6HZ 素直に連想配列にした方が良いのか、それだと巨大なデータの時にアクセス効率が悪いからハッシュテーブルやdefstructした方が良いのかとか、一筋縄では行かないだろう
928はちみつ餃子 ◆8X2XSCHEME
2018/05/24(木) 01:32:06.19ID:jqqWnK8Z Expat みたいな方式で、オブジェクトの構築はユーザまかせにするってのもひとつの案かな。
まあ、 JSON が必要な場面は設定ファイルとかウェブ API の類とかだと思うので、
極端に巨大な JSON を仮定する必要はあまりないと思うが……。
まあ、 JSON が必要な場面は設定ファイルとかウェブ API の類とかだと思うので、
極端に巨大な JSON を仮定する必要はあまりないと思うが……。
929デフォルトの名無しさん
2018/05/27(日) 13:45:27.94ID:mYmUirqO JSONをS式で書くといっても、いろいろやり方はあるよね。
Pie language みたいにDSLを使って、Name型、Age型、users型を定義すれば、
型推論、Type-Driven Development を導入できる。
Pie language みたいにDSLを使って、Name型、Age型、users型を定義すれば、
型推論、Type-Driven Development を導入できる。
930924
2018/05/27(日) 13:52:56.50ID:zSa68/cd ほえー、難しいですな
931デフォルトの名無しさん
2018/05/27(日) 20:34:52.73ID:4TYKeuy0 結局pieてなに?
932デフォルトの名無しさん
2018/05/28(月) 11:53:10.90ID:IqAZvII/ PIE には、元々「インド・ヨーロッパ祖語」(Proto-Indo-European language) という意味があるらしい。
そこから転じて Type-Driven Development の祖語たれかし云々。
Pie言語のような Type-Driven Development と J-Bob(ACL2) の定理証明器の組み合わせによって、
新しいプログラミング・サイクルがもたらされる。
[1] 型を定義する(自動的に型チェックもされる)だけで、
[2] Type-Driven Development 環境が型定義から実行可能なプログラムの雛形を生成してくれる。
[3] プログラムの雛形に実装部分を書き加える。
[4] 書き加えた実装部分の数学的正しさを定理証明器でチェックする。
こんな感じで開発するだけでプログラムの正しさが保証付きで出来上がる。もちろんOOPでもOK。
将来、ほとんどの言語がこういう機能を持つと思われる。
そこから転じて Type-Driven Development の祖語たれかし云々。
Pie言語のような Type-Driven Development と J-Bob(ACL2) の定理証明器の組み合わせによって、
新しいプログラミング・サイクルがもたらされる。
[1] 型を定義する(自動的に型チェックもされる)だけで、
[2] Type-Driven Development 環境が型定義から実行可能なプログラムの雛形を生成してくれる。
[3] プログラムの雛形に実装部分を書き加える。
[4] 書き加えた実装部分の数学的正しさを定理証明器でチェックする。
こんな感じで開発するだけでプログラムの正しさが保証付きで出来上がる。もちろんOOPでもOK。
将来、ほとんどの言語がこういう機能を持つと思われる。
933デフォルトの名無しさん
2018/05/28(月) 11:59:02.93ID:IqAZvII/ 荒っぽく言うと、英文作成時にtypo checkerとgrammar checkerを併用すると、
正しい英文が簡単に書けてしまう。そのプログラミング言語版みたいなものかと。
正しい英文が簡単に書けてしまう。そのプログラミング言語版みたいなものかと。
934はちみつ餃子 ◆8X2XSCHEME
2018/05/28(月) 13:09:03.51ID:wEzLaTj/ 既存の XML や Json のデータからスキーマを構築するやつはどっかで見たことある。
935デフォルトの名無しさん
2018/05/28(月) 13:24:15.03ID:IqAZvII/ >>934
JSONスキーマつかってvalidationするやり方は、テスト駆動開発だからミスリード。
JSONスキーマつかってvalidationするやり方は、テスト駆動開発だからミスリード。
936デフォルトの名無しさん
2018/05/28(月) 18:05:56.53ID:Wvf3e53c 初心者なんだけど、qiitaでlispの勉強ブログやるのどう思う?
ブログとか自分の趣味ではないんだけど、勉強はかどるかと思って。
ブログとか自分の趣味ではないんだけど、勉強はかどるかと思って。
937はちみつ餃子 ◆8X2XSCHEME
2018/05/28(月) 23:57:23.63ID:wEzLaTj/ >>936
いいと思うよ。
ただ、 Qiita はブログホスティングサービスではなく、
「知識を共有する」ということをコンセプトにしたサイトだから、
やったことを箇条書きにするだけとかコードが貼っているだけみたいなのではなく、
自分に続く人に参考になるような書き方を心がけてね。
いいと思うよ。
ただ、 Qiita はブログホスティングサービスではなく、
「知識を共有する」ということをコンセプトにしたサイトだから、
やったことを箇条書きにするだけとかコードが貼っているだけみたいなのではなく、
自分に続く人に参考になるような書き方を心がけてね。
938デフォルトの名無しさん
2018/05/29(火) 21:14:19.67ID:BqokYjF9 数行のコードをコンパイルしてみた
chickenでとても小さいバイナリが生成されて満足したあと
Racketが生成するバイナリの大きさに驚いた
そしてSBCLでやってみたらさらに5倍以上も大きくてビックリだわ
それぞれに理由があるのは分かるけど
chickenでとても小さいバイナリが生成されて満足したあと
Racketが生成するバイナリの大きさに驚いた
そしてSBCLでやってみたらさらに5倍以上も大きくてビックリだわ
それぞれに理由があるのは分かるけど
939デフォルトの名無しさん
2018/05/30(水) 09:11:29.12ID:qfpDXvj8 実行ファイルのサイズがでかくても役に立つアプリだったらいいんじゃないの
役に立たないアプリだからサイズが小さくないとまずいって話かな
役に立たないアプリだからサイズが小さくないとまずいって話かな
940デフォルトの名無しさん
2018/05/30(水) 09:15:45.84ID:PA9GXtrJ ばかか?
941デフォルトの名無しさん
2018/05/30(水) 09:59:21.93ID:+JLqa4/r SBCLで「ビックリ」したのはこれ
(eq 'abc 'abc) ;=> T
(eq 'アイウエオ 'アイウエオ) ;=> T
'アイウエオ ;=> アイウエオ
'㌰㌰ ;=> ピコピコ
(setf (sb-ext:readtable-normalization *readtable*) nil) すれば変換されなくなる
http://www.sbcl.org/all-news.html#1.2.5
(eq 'abc 'abc) ;=> T
(eq 'アイウエオ 'アイウエオ) ;=> T
'アイウエオ ;=> アイウエオ
'㌰㌰ ;=> ピコピコ
(setf (sb-ext:readtable-normalization *readtable*) nil) すれば変換されなくなる
http://www.sbcl.org/all-news.html#1.2.5
942924
2018/05/30(水) 10:14:13.23ID:yDgT1YjT 皆様に質問です!
JSCLみたいに「サーバサイドもクライアントサイドもlispで!」みたいな思想のやつって他にもありますか?
単にトランスパイラというわけでなく、ブラウザでevalできるのが理想なんですけど...
よろしくおねがいします!
JSCLみたいに「サーバサイドもクライアントサイドもlispで!」みたいな思想のやつって他にもありますか?
単にトランスパイラというわけでなく、ブラウザでevalできるのが理想なんですけど...
よろしくおねがいします!
943デフォルトの名無しさん
2018/05/30(水) 12:19:21.28ID:3TWGIpcw944デフォルトの名無しさん
2018/05/30(水) 12:35:36.42ID:4OOLz1vE945デフォルトの名無しさん
2018/05/30(水) 12:43:43.30ID:ExxmvTi1 スマホで無駄にデカイバイナリーは迷惑だけどPCアプリのサイズなんて気にしない。
昔はユーザーもアプリサイズやメモリー使用量に敏感だったけど、今はそんなこと気にしてないみたいだし。
昔はユーザーもアプリサイズやメモリー使用量に敏感だったけど、今はそんなこと気にしてないみたいだし。
947デフォルトの名無しさん
2018/05/30(水) 14:20:42.30ID:jr7ON4yo すみません、LISP初心者ですが、追加の質問させてください!
JSCLを試してみようとgithubのGetting StartedとBuildの項目に挑戦しています。
https://github.com/jscl-project/jscl
サーバでnpm install -g jsclしたあと、jscl-replコマンドを打つことでreplが動くところまではできたのですが
GithubのBuildの項目のところでつまずいています。
git clone https://github.com/jscl-project/jscl.git
することでnode_modulesやpackage.jsonなどが存在するプロジェクトディレクトリ上部に
jsclディレクトリが作成されたのですが(一体これはなんでしょう?サンプルプログラム集なのでしょうか)
replで(jscl:bootstrap)を評価しても
ERROR: The symbol `"BOOTSTRAP"' is not external in the package #<PACKAGE JSCL>.
と表示されてしまい、次のステップに進むことができません。
このステップは、githubのreadme.mdで
「あなたのLispにjscl.lispをロードし、ブートストラップ関数を呼び出して実装自体をコンパイルします」
「ソースツリーの最上部にjscl.jsファイルが生成されます。 これで、ブラウザでjscl.htmlを開いて使用できます。」
と記載があるので、(jscl:bootstrap)を実行することによりgit cloneで落としたプロジェクトをコンパイルし
出力されたjscl.htmlにApacheなど使ってアクセスできるようにすれば、bootstrap?とかいうサンプルアプリが動くと思っているのですが
何がいけないのでしょう??
マニアックな質問で申し訳ないのですが、ぜひお助け願います。
(ところでbootstrapってなんでしょうか?cssフレームワークのTwitter bootstrapのことでしょうか?)
JSCLを試してみようとgithubのGetting StartedとBuildの項目に挑戦しています。
https://github.com/jscl-project/jscl
サーバでnpm install -g jsclしたあと、jscl-replコマンドを打つことでreplが動くところまではできたのですが
GithubのBuildの項目のところでつまずいています。
git clone https://github.com/jscl-project/jscl.git
することでnode_modulesやpackage.jsonなどが存在するプロジェクトディレクトリ上部に
jsclディレクトリが作成されたのですが(一体これはなんでしょう?サンプルプログラム集なのでしょうか)
replで(jscl:bootstrap)を評価しても
ERROR: The symbol `"BOOTSTRAP"' is not external in the package #<PACKAGE JSCL>.
と表示されてしまい、次のステップに進むことができません。
このステップは、githubのreadme.mdで
「あなたのLispにjscl.lispをロードし、ブートストラップ関数を呼び出して実装自体をコンパイルします」
「ソースツリーの最上部にjscl.jsファイルが生成されます。 これで、ブラウザでjscl.htmlを開いて使用できます。」
と記載があるので、(jscl:bootstrap)を実行することによりgit cloneで落としたプロジェクトをコンパイルし
出力されたjscl.htmlにApacheなど使ってアクセスできるようにすれば、bootstrap?とかいうサンプルアプリが動くと思っているのですが
何がいけないのでしょう??
マニアックな質問で申し訳ないのですが、ぜひお助け願います。
(ところでbootstrapってなんでしょうか?cssフレームワークのTwitter bootstrapのことでしょうか?)
948デフォルトの名無しさん
2018/05/30(水) 19:57:16.76ID:EPh+XEfw SBCLは実行ファイルを圧縮して作成できる
40MBが10〜15MB位になるはず
それでもデカイけどね
ちなみに起動時間は全く変わらない
40MBが10〜15MB位になるはず
それでもデカイけどね
ちなみに起動時間は全く変わらない
949947
2018/05/30(水) 23:32:16.24ID:jr7ON4yo よく考えたらスタックオーバーフローとかで質問するべきだったかもしれません(´・ω・`;)
950はちみつ餃子 ◆8X2XSCHEME
2018/05/31(木) 00:05:36.49ID:wCoAkDam >>947
> 「あなたのLispにjscl.lispをロードし、ブートストラップ関数を呼び出して実装自体をコンパイルします」
マニュアルの文章は、あなたが使っている LISP 処理系の上で jscl.lisp をロードした上で (jscl:bootstrap) を評価せよという意味だと思うんだけど、
あなたがやっているのは jscl-repl を起動した中で (jscl:bootstrap) を評価しているように読める。
そうだとしたらそんなものは無いので無いというエラーになるのはわかる。
> 「あなたのLispにjscl.lispをロードし、ブートストラップ関数を呼び出して実装自体をコンパイルします」
マニュアルの文章は、あなたが使っている LISP 処理系の上で jscl.lisp をロードした上で (jscl:bootstrap) を評価せよという意味だと思うんだけど、
あなたがやっているのは jscl-repl を起動した中で (jscl:bootstrap) を評価しているように読める。
そうだとしたらそんなものは無いので無いというエラーになるのはわかる。
951947
2018/05/31(木) 10:01:35.83ID:eRJFRV4/952デフォルトの名無しさん
2018/06/01(金) 08:07:57.22ID:vYR603xM Land of Lispはおもしろいですか?
953デフォルトの名無しさん
2018/06/01(金) 08:38:48.29ID:pJKbzob1 マンガは面白い
954デフォルトの名無しさん
2018/06/30(土) 04:32:01.74ID:7M67VtrJ stackoverflowってホントの初心者が質問してもいい雰囲気なん?
955デフォルトの名無しさん
2018/06/30(土) 21:17:22.45ID:68JzM2MV >>954
雰囲気ってのが曖昧だけど、質問内容が馬鹿げたものでもどんどんしていいよ。
初心者の質問内容がしょうもないことなのは普通のこと。
だけど、質問の仕方にはある程度の作法がある。
https://ja.stackoverflow.com/help
「ホントの初心者」というのは自分が何を知りたいのか理解していないことが多いので、
回答できる質問に修正されるまでしつこくコメントされるかもしれないけど、
それは非難ではなく回答するために必要な対話なので、面倒くさがらないでね。
雰囲気ってのが曖昧だけど、質問内容が馬鹿げたものでもどんどんしていいよ。
初心者の質問内容がしょうもないことなのは普通のこと。
だけど、質問の仕方にはある程度の作法がある。
https://ja.stackoverflow.com/help
「ホントの初心者」というのは自分が何を知りたいのか理解していないことが多いので、
回答できる質問に修正されるまでしつこくコメントされるかもしれないけど、
それは非難ではなく回答するために必要な対話なので、面倒くさがらないでね。
957はちみつ餃子 ◆8X2XSCHEME
2018/07/03(火) 11:46:05.11ID:BKTruI85 Gauche の 0.9.6 リリースが近いらしい
958デフォルトの名無しさん
2018/07/03(火) 19:48:45.16ID:BYpLJ+yC959はちみつ餃子 ◆8X2XSCHEME
2018/07/03(火) 22:38:46.07ID:BKTruI85 >>958
ずっと兼業してるみたいだよ。
俳優としての履歴はここに書かれているけど、 (実際には仕事につながらなかったオーディションも含めると) 2003 年からスタートしてる。
http://practical-scheme.net/wiliki/wiliki.cgi?Shiro%3AAuditionRecords
スクウェアの映画の仕事を終えてから Scheme Arts という名前で法人 (といっても史郎さんひとりの会社だが)
を立ち上げてコンサルティングの仕事を始めて、そのほんの少し後から平行して俳優としても活動してることになる。
ずっと兼業してるみたいだよ。
俳優としての履歴はここに書かれているけど、 (実際には仕事につながらなかったオーディションも含めると) 2003 年からスタートしてる。
http://practical-scheme.net/wiliki/wiliki.cgi?Shiro%3AAuditionRecords
スクウェアの映画の仕事を終えてから Scheme Arts という名前で法人 (といっても史郎さんひとりの会社だが)
を立ち上げてコンサルティングの仕事を始めて、そのほんの少し後から平行して俳優としても活動してることになる。
960はちみつ餃子 ◆8X2XSCHEME
2018/07/04(水) 00:27:22.72ID:afbTNZQQ 0.9.6 キタ――♪ o(゚∀゚o) (o゚∀゚o) (o゚∀゚)o キタ――♪
961デフォルトの名無しさん
2018/07/04(水) 01:17:41.82ID:OTzKBqUL 関数型言語で画像処理をやってみたいんだけれど
Common Lispで画像読み込みの定番ってある?
debianでcl-png使おうとしたらlibpng12が必要みたいで
使えませんでした。(libpng16ならある)
clwikiに載っているimageライブラリでドキュメントが充実してるのって
cl-pngが一番なんだけど。
Common Lispで画像読み込みの定番ってある?
debianでcl-png使おうとしたらlibpng12が必要みたいで
使えませんでした。(libpng16ならある)
clwikiに載っているimageライブラリでドキュメントが充実してるのって
cl-pngが一番なんだけど。
962デフォルトの名無しさん
2018/07/04(水) 07:25:53.23ID:vo63HsfH そーいやgimpがlisp系
963デフォルトの名無しさん
2018/07/04(水) 21:49:20.18ID:gFgZc5FG KI1
964はちみつ餃子 ◆8X2XSCHEME
2018/07/05(木) 03:00:09.18ID:l9X7uzb+965デフォルトの名無しさん
2018/07/06(金) 01:28:47.94ID:xqwQ2rU4 ラムダ計算と純lispはともにチューリング完全
だからlambdaだけで純lispが作れるはず
実際、cons,car,cdrは作れる
(define (my-cons a d) (lambda (f) (f a d)))
(define (my-car ad) (ad (lambda (a d) a)))
(define (my-cdr ad) (ad (lambda (a d) d)))
でも、atom?またはpair?はどう作ればいいの?
だからlambdaだけで純lispが作れるはず
実際、cons,car,cdrは作れる
(define (my-cons a d) (lambda (f) (f a d)))
(define (my-car ad) (ad (lambda (a d) a)))
(define (my-cdr ad) (ad (lambda (a d) d)))
でも、atom?またはpair?はどう作ればいいの?
966デフォルトの名無しさん
2018/07/11(水) 13:07:02.79ID:7FwajRbN 教えてください。初心者です。
(defun test ()
(let ((result '(0 0 0 0 0 0 0)))
(format t "~{ ~a ~}" result)
(incf (nth 4 result) 7)
(incf (nth 6 result) 6)
result))
この関数なんですが、実行するたびに結果が変わるのです。
HOGE 28 > (test)
0 0 0 0 0 0 0
(0 0 0 0 7 0 6)
HOGE 29 > (test)
0 0 0 0 7 0 6
(0 0 0 0 14 0 12)
(let ((result (make-list 7 :initial-element 0)))...
にすれば意図したとおりに動作するのは分かっているのですが、
何で元の関数定義でだめなのかが分からないのです。
ちなみに、Lispworks 7.0 Windows 32bitです。
他の処理系でも同じような動作になるのでしょうか。
(defun test ()
(let ((result '(0 0 0 0 0 0 0)))
(format t "~{ ~a ~}" result)
(incf (nth 4 result) 7)
(incf (nth 6 result) 6)
result))
この関数なんですが、実行するたびに結果が変わるのです。
HOGE 28 > (test)
0 0 0 0 0 0 0
(0 0 0 0 7 0 6)
HOGE 29 > (test)
0 0 0 0 7 0 6
(0 0 0 0 14 0 12)
(let ((result (make-list 7 :initial-element 0)))...
にすれば意図したとおりに動作するのは分かっているのですが、
何で元の関数定義でだめなのかが分からないのです。
ちなみに、Lispworks 7.0 Windows 32bitです。
他の処理系でも同じような動作になるのでしょうか。
967966
2018/07/11(水) 13:41:02.30ID:7FwajRbN 何でこうなるかは、何となくわからなくはないのですが(1回目の実行と2回目の実行で同じリストをletで束縛してるってことですよね?)、
letってそういう動作するのを想定して使わなきゃいけないものなのか、ってのがわかってないのです。
僕の理解では元の関数定義でいけそうな気がするのです。
letってそういう動作するのを想定して使わなきゃいけないものなのか、ってのがわかってないのです。
僕の理解では元の関数定義でいけそうな気がするのです。
968966
2018/07/11(水) 15:14:10.25ID:7FwajRbN (defparameter *FOO* '(bar bar bar))
(defun hoge-is-foo (&optional (piyo nil))
(let ((hoge '(fuga fuga fuga)))
(if piyo (setf *foo* hoge))
(format t "HOGE: ~{ ~a ~}~%" hoge)
(format t "*FOO*: ~{ ~a ~}~%" *foo*)
(if (eq hoge *foo*)
(format t "HOGE IS FOO!~%")
(format t "HOGE IS NOT FOO!~%"))))
PIYO 82 > (hoge-is-foo)
HOGE: FUGA FUGA FUGA
*FOO*: BAR BAR BAR
HOGE IS NOT FOO!
NIL
PIYO 83 > (hoge-is-foo t)
HOGE: FUGA FUGA FUGA
*FOO*: FUGA FUGA FUGA
HOGE IS FOO!
NIL
PIYO 84 > (setf (car *foo*) 'baz)
BAZ
PIYO 85 > (hoge-is-foo)
HOGE: BAZ FUGA FUGA
*FOO*: BAZ FUGA FUGA
HOGE IS FOO!
NIL
こーゆーもんなん?
(defun hoge-is-foo (&optional (piyo nil))
(let ((hoge '(fuga fuga fuga)))
(if piyo (setf *foo* hoge))
(format t "HOGE: ~{ ~a ~}~%" hoge)
(format t "*FOO*: ~{ ~a ~}~%" *foo*)
(if (eq hoge *foo*)
(format t "HOGE IS FOO!~%")
(format t "HOGE IS NOT FOO!~%"))))
PIYO 82 > (hoge-is-foo)
HOGE: FUGA FUGA FUGA
*FOO*: BAR BAR BAR
HOGE IS NOT FOO!
NIL
PIYO 83 > (hoge-is-foo t)
HOGE: FUGA FUGA FUGA
*FOO*: FUGA FUGA FUGA
HOGE IS FOO!
NIL
PIYO 84 > (setf (car *foo*) 'baz)
BAZ
PIYO 85 > (hoge-is-foo)
HOGE: BAZ FUGA FUGA
*FOO*: BAZ FUGA FUGA
HOGE IS FOO!
NIL
こーゆーもんなん?
969デフォルトの名無しさん
2018/07/11(水) 15:25:01.53ID:16Hc9NDk >>966
let の使い方というより、 quote されたリストの破壊的変更は literal object の変更にあたるから未定義動作になるはずで、そのせいで変な挙動になってるんだと思う。
ちなみに Allegro だと LispWorks と同じ挙動になった。
SBCL だと警告で "Destructive function SB-KERNEL:%RPLACA called on constant data: (0 0 0)." と出る。
で、繰り返し呼んでも毎回 (0 0 0 0 0 0) が返されるみたい。
let の使い方というより、 quote されたリストの破壊的変更は literal object の変更にあたるから未定義動作になるはずで、そのせいで変な挙動になってるんだと思う。
ちなみに Allegro だと LispWorks と同じ挙動になった。
SBCL だと警告で "Destructive function SB-KERNEL:%RPLACA called on constant data: (0 0 0)." と出る。
で、繰り返し呼んでも毎回 (0 0 0 0 0 0) が返されるみたい。
970969
2018/07/11(水) 16:28:25.75ID:16Hc9NDk >>967
あ、質問の趣旨が違うか。
(defun hoge ()
'(1 2 3))
があるときに、
(eq (hoge) (hoge))
は、同じリストを返すのだから常に T になるのか?って話かな
あ、質問の趣旨が違うか。
(defun hoge ()
'(1 2 3))
があるときに、
(eq (hoge) (hoge))
は、同じリストを返すのだから常に T になるのか?って話かな
971966
2018/07/11(水) 17:18:46.59ID:7FwajRbN972デフォルトの名無しさん
2018/07/11(水) 19:41:32.56ID:16Hc9NDk >>971
うーん、リストを破壊的に変更する場合、上のようにリテラルを破壊するのもまずいし、リテラルでなくても部分共有されたリストだと予想外の場所に影響が及ぶので、自分は安全とわかってないとやらないです。
破壊的変更をするのが前提なら、 list 関数や言及されてるmake-listで新しく作ったり、 copy-list で複製してからいじったりすることが多いかも。
うーん、リストを破壊的に変更する場合、上のようにリテラルを破壊するのもまずいし、リテラルでなくても部分共有されたリストだと予想外の場所に影響が及ぶので、自分は安全とわかってないとやらないです。
破壊的変更をするのが前提なら、 list 関数や言及されてるmake-listで新しく作ったり、 copy-list で複製してからいじったりすることが多いかも。
973デフォルトの名無しさん
2018/07/11(水) 20:14:45.56ID:VhV09Bdv974966
2018/07/11(水) 20:23:44.77ID:7FwajRbN >>972
破壊的な変更には注意が必要なこと自体は、入門書などを読んで知っていたのですが、
今回の例では関数を呼び出す度に別のリストをletが束縛するだろうjkと勝手に思っていました。
勉強になりました。ありがとうございます。
破壊的な変更には注意が必要なこと自体は、入門書などを読んで知っていたのですが、
今回の例では関数を呼び出す度に別のリストをletが束縛するだろうjkと勝手に思っていました。
勉強になりました。ありがとうございます。
975デフォルトの名無しさん
2018/07/11(水) 20:33:50.22ID:Igjhxsb4977966
2018/07/11(水) 21:11:34.91ID:7FwajRbN 自分の環境でSBCLでやってみたら↓みたいになった。
個人的にはLispworksの挙動より意味不明かも。
(hoge-is-foo)はLispworksと同じ結果。
* (test)
0 0 0 0 0 0 0
(0 0 0 0 7 0 6)
* (test)
0 0 0 0 7 0 6
(0 0 0 0 7 0 6)
* (test)
0 0 0 0 7 0 6
(0 0 0 0 7 0 6)
個人的にはLispworksの挙動より意味不明かも。
(hoge-is-foo)はLispworksと同じ結果。
* (test)
0 0 0 0 0 0 0
(0 0 0 0 7 0 6)
* (test)
0 0 0 0 7 0 6
(0 0 0 0 7 0 6)
* (test)
0 0 0 0 7 0 6
(0 0 0 0 7 0 6)
978デフォルトの名無しさん
2018/07/11(水) 21:46:27.14ID:zGhUAGhR リテラルのリストに対する破壊的変更はダメ
っていうのはLand of Lisp(の訳注)で初めて知った
他の本やサイトでこれに関する注意を見た覚えがない
「literal object の変更にあたるから未定義動作になる」(>>969)ということは、リストに限らないんだね
[1]> (defun f () (let ((x "abc")) (format t "~S~%" x) (setf (elt x 0) #\!) x))
F
[2]> (f)
"abc"
"!bc"
[3]> (f)
"!bc"
"!bc"
[4]>
っていうのはLand of Lisp(の訳注)で初めて知った
他の本やサイトでこれに関する注意を見た覚えがない
「literal object の変更にあたるから未定義動作になる」(>>969)ということは、リストに限らないんだね
[1]> (defun f () (let ((x "abc")) (format t "~S~%" x) (setf (elt x 0) #\!) x))
F
[2]> (f)
"abc"
"!bc"
[3]> (f)
"!bc"
"!bc"
[4]>
979デフォルトの名無しさん
2018/07/11(水) 22:50:38.31ID:nrnWofQI CLHSで "The consequences are undefined if literal objects are destructively modified." って書いてあるページ
http://www.lispworks.com/documentation/HyperSpec/Body/03_ga.htm
そして、 literal の方には "appearing as data in a quote form" なんて書いてあるので (http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_l.htm#literal)
quote の中身は literal, よって破壊的に変更すると undefined ..?
http://www.lispworks.com/documentation/HyperSpec/Body/03_ga.htm
そして、 literal の方には "appearing as data in a quote form" なんて書いてあるので (http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_l.htm#literal)
quote の中身は literal, よって破壊的に変更すると undefined ..?
980デフォルトの名無しさん
2018/07/11(水) 22:59:01.95ID:vOu8ozZx 何故maxには:keyがつかえないの?
定義だから。いや、知ってるけどあってもええやん。
みんなreduceとか使ってやってんの?
定義だから。いや、知ってるけどあってもええやん。
みんなreduceとか使ってやってんの?
981はちみつ餃子 ◆8X2XSCHEME
2018/07/11(水) 23:38:32.21ID:RBgflsxh リテラルの破壊が駄目ってのは割と一般的な気がする。
C がそうなってるのを知ってたので、
後に他の言語を学ぶときも意識して仕様をチェックしてる。
C がそうなってるのを知ってたので、
後に他の言語を学ぶときも意識して仕様をチェックしてる。
982デフォルトの名無しさん
2018/07/12(木) 00:32:56.92ID:bsVrPe++983デフォルトの名無しさん
2018/07/12(木) 00:35:03.43ID:bsVrPe++984デフォルトの名無しさん
2018/07/12(木) 12:25:48.63ID:l643qOMO985デフォルトの名無しさん
2018/07/12(木) 13:13:34.80ID:QKPLqpS1 mapcarしてremove-if #'nullするのと、
mapcan使うのとどっちがおすすめなん。
mapcan使うのとどっちがおすすめなん。
986デフォルトの名無しさん
2018/07/12(木) 17:19:27.72ID:eSxWwMsY >>985
filter 的な話?こういう
(mapcan #'(lambda (x) (and (numberp x) (list x)))
'(a 1 b c 3 4 d 5))
=> (1 3 4 5)
上の例は CLHS からの引用だけど (http://www.lispworks.com/documentation/HyperSpec/Body/f_mapc_.htm)
そこで 「mapcan を使った idiom」とか言ってるから、 mapcan でいいんじゃないの。
filter 的な話?こういう
(mapcan #'(lambda (x) (and (numberp x) (list x)))
'(a 1 b c 3 4 d 5))
=> (1 3 4 5)
上の例は CLHS からの引用だけど (http://www.lispworks.com/documentation/HyperSpec/Body/f_mapc_.htm)
そこで 「mapcan を使った idiom」とか言ってるから、 mapcan でいいんじゃないの。
987デフォルトの名無しさん
2018/07/12(木) 18:20:07.59ID:eSxWwMsY >>980
:key を持つのは sequence か cons を扱う関数/マクロだけみたい。
max は数を扱う関数だから :key がない、くらいの理由なのではと予想。
で、僕だったらそういう状況は loop ~ maximize で書いちゃうな:
(loop with list = '((1 a) (100 b) (5 c))
for i in list
maximize (car i))
:key を持つのは sequence か cons を扱う関数/マクロだけみたい。
max は数を扱う関数だから :key がない、くらいの理由なのではと予想。
で、僕だったらそういう状況は loop ~ maximize で書いちゃうな:
(loop with list = '((1 a) (100 b) (5 c))
for i in list
maximize (car i))
988デフォルトの名無しさん
2018/07/12(木) 19:34:18.52ID:D5ReHf3v 1の関連スレっているの?
どこもレス皆無なんだけど。
ここらへんは辛うじて今年レスがある。
【Lisp】プログラミング言語 Clojure #4【JVM】 [無断転載禁止]©2ch.net
http://mevius.5ch.net/test/read.cgi/tech/1483498849/
【GNU】Emacs Lisp 【Elisp】
http://mevius.5ch.net/test/read.cgi/tech/1382223056/
どこもレス皆無なんだけど。
ここらへんは辛うじて今年レスがある。
【Lisp】プログラミング言語 Clojure #4【JVM】 [無断転載禁止]©2ch.net
http://mevius.5ch.net/test/read.cgi/tech/1483498849/
【GNU】Emacs Lisp 【Elisp】
http://mevius.5ch.net/test/read.cgi/tech/1382223056/
989はちみつ餃子 ◆8X2XSCHEME
2018/07/12(木) 20:31:21.01ID:m8Dd1031 Lisp系だからってひとまとめにするには違いが大きすぎるし、
ちょっとしたことならともかく、
入り組んだ事柄を話すにはやっぱり専門のスレがよさそうな気もするし、
それぞれの言語でコミュニティがあるから、
5ch は雑談程度って割り切ってもいいのかもしれないとも思うし…。
ちょっとしたことならともかく、
入り組んだ事柄を話すにはやっぱり専門のスレがよさそうな気もするし、
それぞれの言語でコミュニティがあるから、
5ch は雑談程度って割り切ってもいいのかもしれないとも思うし…。
990デフォルトの名無しさん
2018/07/13(金) 23:56:41.22ID:1D4AU09B Maxima以外に実用出来るオープンソースの数式処理システムを知らないのだけど
Common Lispが優秀過ぎるからmaximaしかないのか
自分の知らない数式処理システムが他にあるのか
Common Lispが優秀過ぎるからmaximaしかないのか
自分の知らない数式処理システムが他にあるのか
991はちみつ餃子 ◆8X2XSCHEME
2018/07/14(土) 01:56:22.39ID:Eblv1Llg >>990
俺が知ってるのだとこういうのもある。
http://www.math.kobe-u.ac.jp/Asir/asir-ja.html
https://www.gap-system.org/
貢献する人が多いと良くなっていくのは当然だし、
良くなるとまた人が集まってくるというスパイラルが出来るので、
一度人気が出るとあえて他の不人気のプロジェクトに手を出そうという人は
現れにくいんじゃない?
まあ、数式処理と一言で言っても数学の分野は広大だから、
今までコンピュータで扱えなかった分野のためのソフトが新たに出てくることだってあるだろうし、
ちょっと別の分野用の数式処理ソフトを探したら案外たくさんあるかもしれないぞ。
俺が知ってるのだとこういうのもある。
http://www.math.kobe-u.ac.jp/Asir/asir-ja.html
https://www.gap-system.org/
貢献する人が多いと良くなっていくのは当然だし、
良くなるとまた人が集まってくるというスパイラルが出来るので、
一度人気が出るとあえて他の不人気のプロジェクトに手を出そうという人は
現れにくいんじゃない?
まあ、数式処理と一言で言っても数学の分野は広大だから、
今までコンピュータで扱えなかった分野のためのソフトが新たに出てくることだってあるだろうし、
ちょっと別の分野用の数式処理ソフトを探したら案外たくさんあるかもしれないぞ。
992デフォルトの名無しさん
2018/07/14(土) 07:02:57.27ID:0vuXs+dx993デフォルトの名無しさん
2018/07/14(土) 09:15:24.67ID:/GhuOfpQ んじゃ関連サイトは過去スレを除きとりあえず残すけどええんか?
994デフォルトの名無しさん
2018/07/14(土) 13:24:35.04ID:rTAZMq1D Emacs Lispは毛色が違う気がする
995はちみつ餃子 ◆8X2XSCHEME
2018/07/15(日) 00:24:40.70ID:HERu1+Fl >>992
分割しようってのじゃなくて、現時点でそれぞれにスレ立ってるやつがあるわけよ。
個別にスレ立ててるやつは、
ここでやるのはちょっと違うなと思ったからこそ立ってるわけでしょ?
統合するとなると違和感は有るよなっていう程度の話。
分割しようってのじゃなくて、現時点でそれぞれにスレ立ってるやつがあるわけよ。
個別にスレ立ててるやつは、
ここでやるのはちょっと違うなと思ったからこそ立ってるわけでしょ?
統合するとなると違和感は有るよなっていう程度の話。
996デフォルトの名無しさん
2018/07/15(日) 02:10:24.47ID:oGr67yTf このスレ以外ほぼ更新ないけど関連スレは残したよ。
3年以内に消費したいね。
Lisp Scheme Part41
http://mevius.5ch.net/test/read.cgi/tech/1531587928/
3年以内に消費したいね。
Lisp Scheme Part41
http://mevius.5ch.net/test/read.cgi/tech/1531587928/
997デフォルトの名無しさん
2018/07/15(日) 13:59:55.38ID:QJDLEpU3998デフォルトの名無しさん
2018/07/15(日) 14:01:38.31ID:QJDLEpU3 ぬるぽ
999デフォルトの名無しさん
2018/07/15(日) 15:09:22.88ID:jvo4M5NJ >>996
乙
乙
1000デフォルトの名無しさん
2018/07/15(日) 15:09:38.52ID:jvo4M5NJ 1000
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 1217日 1時間 23分 46秒
新しいスレッドを立ててください。
life time: 1217日 1時間 23分 46秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- トランプ大統領「今日は解放の日だ」相互関税砲発射、世界の株式市場に激震 米ハイテク7銘柄、約112兆円失う [おっさん友の会★]
- 【フジテレビ】親会社の大株主・ダルトンが声明 清水社長ら5人の取締役に退任要求… 「経営刷新にはほど遠い」「株主として許し難い」 [冬月記者★]
- 米財務長官 各国はパニックにならず報復しないように 報復なければ今の数字が上限、報復すれば事態は悪化すると警告 ★5 [Hitzeschleier★]
- 2025/04/03(木) 23:02:09.38 ID:xJTaPh440<> 最近襲われなくなったね <>
- トランプ関税 日本24%、中国34%、台湾32%、韓国30%、EU20%、英国10%など [パンナ・コッタ★]
- 【国際】マクロン大統領「アメリカ人は貧困化するだろう」 [ぐれ★]
- 【史上最低のオリンピック】 東京五輪談合事件、電通などに30億円の課徴金 [476729448]
- 株価の急落を喜ぶトランプ支持者の声が相次ぐ「効いてる証拠だ」「投資家は労働者階級から金を奪い続けてきた」 [281145569]
- Jリーグって多分世界一面白いリーグだわ
- 【悲報】トランプ米大統領「今日は米国民の解放の日だ!」→米ハイテク株が112兆円失われてしまう [354616885]
- ドル145www石破どうすんのきれ [357222248]
- 暇空茜に中傷されていた団体の代表、起訴について正式発表 [485187932]