集合論に基づいた言語を作りたい
1 :デフォルトの名無しさん :2014/08/10(日) 21:27:16.56 ID:x7G32Sd0.net 計算機科学の基礎は集合論であるという。 ならば、集合論に基づいた言語を作れば美しい言語になるのでは? そんな発想から徹底的に集合論的思想で言語仕様を考えるスレです。
2 :デフォルトの名無しさん :2014/08/10(日) 21:29:01.90 ID:x7G32Sd0.net たとえばプリミティブなコレクションが配列じゃなくて集合だとか。
3 :デフォルトの名無しさん :2014/08/10(日) 21:30:01.96 ID:SNq+Bnd6.net どういうことだってばよ?
4 :デフォルトの名無しさん :2014/08/10(日) 21:37:09.49 ID:TaP3LJdg.net http://c2.com/cgi/wiki?SetOrientedProgramming
5 :デフォルトの名無しさん :2014/08/10(日) 21:49:14.65 ID:TaP3LJdg.net http://cmt.math.unipr.it/jsetl.html
6 :桃白白 ◆9Jro6YFwm650 :2014/08/10(日) 21:53:00.69 ID:ogxmV0hN.net SQLっていうのがすでにあるっすよ
7 :1 :2014/08/10(日) 22:07:52.74 ID:x7G32Sd0.net ID違うと思うけど1です。 もうあるとかwまじか。 まあ俺が思いつくようなことはほかの誰かがおもいついてもおかしくないが。 しかたないのでこのスレは>>4 とかの言語を勉強するスレにするか。
8 :デフォルトの名無しさん :2014/08/10(日) 22:09:07.71 ID:x7G32Sd0.net あれ、IDおなじだな。 IDの仕組みがよくわかってない俺。
9 :デフォルトの名無しさん :2014/08/10(日) 22:48:01.93 ID:qwVXAwRT.net いや作れよ
10 :1 :2014/08/10(日) 23:02:45.16 ID:x7G32Sd0.net >>9 まあ自分で作ったほうが面白いしな。 せっかくだから作るか。
11 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/08/10(日) 23:06:18.79 ID:nEGv2YJS.net 多重集合についてはご存じかな? 重複した元の個数を数えるものだけど。 RubyやPHP,JSなどの最近のスクリプト言語はリストを扱うのが簡単になってきている。 一般にリストはそのまま多重集合や集合と見なすことができる。 元の重複をなくすには、重複した元の追加を禁止するか、sort&uniqueすればいい。
12 :デフォルトの名無しさん :2014/08/10(日) 23:10:08.77 ID:x7G32Sd0.net とりあえずプリミティブ型は集合。 構造体や配列なんかも基本集合で表現するようにする。
13 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/08/10(日) 23:15:58.40 ID:nEGv2YJS.net 無限集合はどうするか? 写像はどうするか?
14 :デフォルトの名無しさん :2014/08/10(日) 23:16:09.88 ID:x7G32Sd0.net >>11 Rubyは好きでちょくちょく使ってる。 Rubyの配列はかなりイイね。
15 :デフォルトの名無しさん :2014/08/10(日) 23:17:58.23 ID:x7G32Sd0.net >>13 そのへんも集合論になるべく沿った方法で仕様を決められたら面白いかなと思ってる。
16 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/08/10(日) 23:18:27.90 ID:nEGv2YJS.net 集合の集合をどうするか?
17 :デフォルトの名無しさん :2014/08/10(日) 23:23:58.14 ID:x7G32Sd0.net 集合の集合はそんなにむずかしくないんじゃないか? 数学のとおりに扱えばいいだけだろう。
18 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/08/10(日) 23:28:28.92 ID:nEGv2YJS.net 無限集合を含むデータ構造を扱うなら、構造体の要素に対す る区間演算と区間のパターンマッチはサポートしないといけない。 [0,∞)∪(-8,-4]とか
19 :デフォルトの名無しさん :2014/08/10(日) 23:29:50.35 ID:x7G32Sd0.net 型をどうするかがまず問題だな。 普通のクラス的なものを許してしまっていいものか。
20 :デフォルトの名無しさん :2014/08/10(日) 23:33:00.94 ID:x7G32Sd0.net >>18 無限集合を扱うと遅延評価とかそういうのが必要になってくるのかな。 結構めんどくさいな。 実用的かも怪しいし。 難しいな。
21 :デフォルトの名無しさん :2014/08/10(日) 23:38:37.89 ID:x7G32Sd0.net 所詮コンピュータが扱えるのは有限の世界だからな。。。 無限集合はあきらめるのが得策か。。。
22 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/08/10(日) 23:40:46.61 ID:nEGv2YJS.net 特性関数ってご存じですか?
23 :デフォルトの名無しさん :2014/08/10(日) 23:44:53.13 ID:x7G32Sd0.net いや知らない。 ぐぐってみたけど確率論の用語?
24 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/08/10(日) 23:51:55.05 ID:nEGv2YJS.net 別名、集合の指示関数とか集合の定義関数とか言われる。 f(x)=0; x∈Xでないとき、 f(x)=1; x∈Xであるとき を満たすfをXの特性関数という。
25 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/08/10(日) 23:55:18.56 ID:nEGv2YJS.net この「集合の特性関数」を型にするといいんじゃね?
26 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/08/11(月) 00:01:36.05 ID:vtRcS5Vo.net ∀x:any(x)=1. ∀x:none(x)=0. var x:any.//全部 var y:none.//空集合
27 :デフォルトの名無しさん :2014/08/11(月) 00:02:37.88 ID:7qJjistY.net 面白そうだけど、コンピュータでうまく扱えるかなぁ。 たとえば、ある集合が空集合かどうかさえ、コンピュータには決定できなかったりするよね? 特性関数を特性関数のまま扱えばうまくいくのかなぁ。
28 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/08/11(月) 00:11:32.04 ID:vtRcS5Vo.net 区間演算って知ってる?
29 :デフォルトの名無しさん :2014/08/11(月) 00:18:19.72 ID:L9TxF9/y.net >>1 Haskellでいいじゃん。
30 :1 :2014/08/11(月) 00:30:59.49 ID:7qJjistY.net >>28 いや、知らない。 ぐぐってみたら区間の四則演算がのってたけど、これがどう役に立つのかわからない。 >>29 Haskellは触ったことないな。 そんなにいいの?
31 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/08/11(月) 00:47:21.96 ID:vtRcS5Vo.net 区間というのは数の集合だから、数の集合上の演算を 定義してやろうという話です。
32 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/08/11(月) 00:53:40.33 ID:vtRcS5Vo.net 集合の元は集合なのか? という問題が
33 :デフォルトの名無しさん :2014/08/11(月) 02:06:52.68 ID:TP2ds61a.net >>32 というか、集合を元とする集合を許してよいかどうか、という問題ですねえ 自己言及のパラドックスとか
34 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/08/11(月) 02:21:22.82 ID:vtRcS5Vo.net 特性関数を使うとパラドックスはどうなるか。これ宿題。じっくり考えてね。
35 :1 :2014/08/11(月) 08:56:36.65 ID:7qJjistY.net 集合を元とする集合は扱いたいな。 それすら扱えないんじゃ不自由すぎる。 正則の公理ってのでパラドックスは回避できるんじゃなかったっけ? 特性関数はそもそも定義域がよくわからんなぁ。
36 :1 :2014/08/11(月) 09:14:21.82 ID:7qJjistY.net 内部的な実装はともかく、外部仕様としては整数も集合であらわすことにするかな。。。 0=φ 1={φ,{φ}} 2={φ,{φ},{φ,{φ}} ...
37 :デフォルトの名無しさん :2014/08/11(月) 09:18:20.93 ID:GsgTpDMz.net 作れば? 壁にぶつかって悩む時間も含めて半年もあれば余裕だろ。
38 :1 :2014/08/11(月) 09:32:02.64 ID:7qJjistY.net いやいや、そんなに簡単じゃないからw
39 :デフォルトの名無しさん :2014/08/11(月) 11:08:29.88 ID:NzEjjfEw.net >>1 Z
40 :デフォルトの名無しさん :2014/08/11(月) 13:27:34.36 ID:PrWNpxUB.net 簡単じゃないって、1000時間あればさすがにできるだろう。何年もかけて洗練された言語というレベルの話をしているわけではないのだから。 つーか相談したいなら質問スレや雑談スレでやってほしいね。単発クソスレ立てるんじゃなくてさ。 考察や実装を報告したいならブログでね。
41 :デフォルトの名無しさん :2014/08/11(月) 14:11:41.44 ID:msdQqOI/.net 面白そうだし別にいいじゃん がんばれ
42 :デフォルトの名無しさん :2014/08/11(月) 14:42:29.95 ID:clQwRFjU.net 結論出て実装終わったら起こして。
43 :デフォルトの名無しさん :2014/08/11(月) 15:26:58.26 ID:GsgTpDMz.net >>36 を見るとこりゃダメだってすぐわかる。 発想力 5段階中最低 実装力 5段階中最低
44 :1 :2014/08/11(月) 17:03:12.57 ID:7qJjistY.net 始めは全てを集合で表すつもりでいたけれど、現実的じゃないな。 やっぱタプルはタプル、リストはリストなんだよな。 無理やり集合で表現するのは無理がある。 全てのオブジェクトを集合にキャストできるってのなら なんとかなりそう。
45 :デフォルトの名無しさん :2014/08/11(月) 20:48:03.17 ID:7SpcZaRV.net lispでええやん
46 :1 :2014/08/11(月) 20:53:25.27 ID:7qJjistY.net lispもあんまり触ったことないな そんなにいいの?
47 :デフォルトの名無しさん :2014/08/11(月) 21:11:11.02 ID:GsgTpDMz.net ありきたりな発想だから既存のものの問題点を知らないうちは 何を作っても新しいものは生まれない。
48 :デフォルトの名無しさん :2014/08/11(月) 21:18:09.44 ID:Z+2tOK2m.net 実数を集合であらわす原理を明らかにしないと意味ない。 デデキントカットで集合をもって実数を表せるけど、そんなの計算機でどうあらわすかね
49 :1 :2014/08/11(月) 21:31:46.30 ID:7qJjistY.net >>47 それは確かにそうだと思う。 >>48 意味不明。計算機で本当の実数は扱えないでしょ。 だからみんな浮動少数点とか使ってるわけで。
50 :デフォルトの名無しさん :2014/08/11(月) 21:33:16.67 ID:GsgTpDMz.net 某スレでカルネージハートみたいなビジュアル言語を作りたいとか言ってた奴の方がなんぼか発想力がある。(5段階で3) だが論理性や実装力は致命的に皆無にみえた。 俺はそれをどう構成すればいいか知っているが教える義理はない。
51 :デフォルトの名無しさん :2014/08/11(月) 21:47:28.34 ID:BJB2O+7J.net >>45-46 を見るとこりゃダメだってすぐわかる。
52 :デフォルトの名無しさん :2014/08/11(月) 22:10:25.37 ID:Z+2tOK2m.net つまらんやつだな
53 :1 :2014/08/11(月) 22:38:00.43 ID:7qJjistY.net >>52 なにを期待してたんだ。。。
54 :デフォルトの名無しさん :2014/08/11(月) 23:35:56.32 ID:Mn3XtQiS.net >>50 似た様なゲームで最近はACVDのUNACってのもある ツリー構造と繰り返しで関数を嵌め込んで数値パラメータを関数に設定するだけの物だが >>53 紫本を読もう
55 :デフォルトの名無しさん :2014/08/12(火) 12:26:24.53 ID:oqHJt0pq.net 不勉強な上に 他人を当てにしてのスレ立て 万死に値する
56 :デフォルトの名無しさん :2014/08/12(火) 12:46:04.68 ID:+sDF17YZ.net >>55 己の未熟を>>1 は告白してるからその言いようは酷いんじゃ無いのかな?
57 :デフォルトの名無しさん :2014/08/12(火) 13:45:33.28 ID:KAheOZts.net >>1 は偉いよ 日本では >>51 とか >>55 とか いかにも世界に悪評高い「考えそのものを考え出していくことの意義」がわからん馬鹿が多いけどな ま気にせずがんばれ
58 :デフォルトの名無しさん :2014/08/12(火) 14:37:19.20 ID:rgzvfb+p.net いや、1が無知すぎて話にならないのが問題なんじゃ・・・ 何度もネタ振りしてるってのに
59 :1 :2014/08/12(火) 15:09:14.84 ID:ey9Yf386.net そもそも集合論に基づいた言語を作りたいってのは 数学のテクニックをプログラミングに持ち込めるかなと思ったからだけど、 案外、そうでもないのかもw 根底から意義が揺らいできたw
60 :デフォルトの名無しさん :2014/08/12(火) 15:38:39.73 ID:rgzvfb+p.net 釣りか?釣りだよな マジで言ってるのなら、計算機科学史を一からやり直してこい!
61 :デフォルトの名無しさん :2014/08/12(火) 16:15:20.95 ID:+sDF17YZ.net >>59 ちょ、>>56 で擁護した事根底から覆すかなもう
62 :1 :2014/08/12(火) 18:29:00.33 ID:ey9Yf386.net 教科書に載ってるような問題を教科書に載ってる定義のまま インプリメントしたら面白いかなーと思ったんだけど。 集合をプリミティブ型にしてもインプリメントが 劇的に変わることはないかなーと思い始めた。
63 :デフォルトの名無しさん :2014/08/12(火) 20:06:53.08 ID:8OBRChie.net Coqでいいじゃん。
64 :デフォルトの名無しさん :2014/08/12(火) 20:28:06.45 ID:6TgmEYvj.net 二進数で自然に表現できるものを、わざわざペアノ算術から自然数の定義を頑張る意味がわからない
65 :1 :2014/08/12(火) 20:46:58.68 ID:ey9Yf386.net Coqって知らんなあ 証明支援言語? それそんなにいいの?
66 :1 :2014/08/12(火) 20:51:54.62 ID:ey9Yf386.net >>64 それは俺もちょっと思ったw まあ、全てを集合で表そうとおもったらそうなるというか。
67 :デフォルトの名無しさん :2014/08/12(火) 21:18:32.69 ID:6TgmEYvj.net >>66 二進数は元が含まれるか否かの2択で決まるから、十分集合と二値論理に依っているがな
68 :デフォルトの名無しさん :2014/08/13(水) 00:57:44.46 ID:vN2Jb3VO.net SQLでいいじゃないか
69 :1 :2014/08/13(水) 09:08:18.79 ID:wV8mf1Ia.net SQLもそんなに詳しいわけじゃないが SQLは違うくね?
70 :デフォルトの名無しさん :2014/08/13(水) 09:44:32.05 ID:EX+RHsS4.net ggrks
71 :デフォルトの名無しさん :2014/08/13(水) 11:13:17.12 ID:dxftsD0h.net >>1 の言う集合論的思想って何よ。 SQLが違うってんなら自分の思想を述べてみろよ。
72 :デフォルトの名無しさん :2014/08/13(水) 11:15:46.15 ID:dxftsD0h.net 「計算機なら集合の操作がやりやすいはず!」なんて話は別にどこにもないからな 計算機科学って「集合論的な操作をいかに計算機上で効率よく実装するか」ってものだから そもそも >>1 の主張がおかしいんだよ。
73 :1 :2014/08/13(水) 12:28:01.11 ID:wV8mf1Ia.net >>71 計算機科学の基礎になる集合論ではSQL見たいなデータの定義しないだろ。 >>72 昔はハードが高価でいかに効率よく実装するかが大事だったけど、 今はハードも高性能で安価になってきたから もうちょっとハードがソフトに歩み寄ってもいいんじゃないの? ということなんだが。
74 :デフォルトの名無しさん :2014/08/13(水) 13:27:22.49 ID:dxftsD0h.net >>73 たんに美学の問題なんだったら、 それこそ「どういうのが美しいのか」を例に挙げないと話が進まないんじゃねーの
75 :1 :2014/08/13(水) 18:42:03.57 ID:O4gvlVlr.net こんどこそID違うと思うけど1です。 どういうのが美しいかというと、教科書の記述をコピペすると それがそのまま実装になるような言語がいいな。 用途は主に教育用。実用性はあんまり追わない。
76 :デフォルトの名無しさん :2014/08/13(水) 19:07:44.67 ID:1bb/GYoz.net 意味不明
77 :デフォルトの名無しさん :2014/08/13(水) 19:14:36.99 ID:OawzouLt.net 美味しいものが食べたい
78 :1 :2014/08/13(水) 20:07:16.34 ID:O4gvlVlr.net 明日から2日くらいレスできなくなるけど、失踪したわけじゃないからな。 よろしく。
79 :デフォルトの名無しさん :2014/08/14(木) 00:15:37.33 ID:qppS6X9h.net ファジィ論理 - Wikipedia ファジィ論理(ファジィろんり、英: Fuzzy logic)は、ファジィ集合から派生した多値論理の一種で、真理値が0から1までの範囲の値をとり、 古典論理のように「真」と「偽」という2つの値に限定されないことが特徴である。 ファジィ論理と確率論理は数学的に似ており、どちらも0から1までの値を真理値とするが、概念的には解釈の面で異なる。 ファジィ論理の真理値が「真の度合い」に対応しているのに対し、確率論理では「確からしさ」や「尤もらしさ」に対応している。 ■[QC]量子コンピュータの基礎:振幅の初期化 本記事は、量子コンピュータの初期状態の作り方についてです。1998年に発表された手法です。 状態 2量子ビットの場合、0,1,2,3と4つの状態が作られます。 http://d.hatena.ne.jp/cgi-bin/mimetex.cgi?\sqrt{\frac{1}{2}}|1>~+~\sqrt{\frac{1}{2}}|3> を観測すると、振幅http://d.hatena.ne.jp/cgi-bin/mimetex.cgi?\sqrt{\frac{1}{2}} の2乗が出現確率なので、この状態を「観測」すると、50%の確率で|1>、50%の確率で|3>が得られます。 問題は、この状態をどうやって人為的に作り出すかというお話しです。 このレベルですら、論文になるほどの内容…。 http://d.hatena.ne.jp/yukoba/20090928/p1 量子プログラミング言語 蓮尾 一郎(東京大学大学院情報理工学系研究科) 星野 直彦(京都大学数理解析研究所) 量子プログラミング言語とは――研究の動機 量子計算の分野においてアルゴリズムを記述するためには,量子回路が用いるのが一般的だろう. 一方で,(量子でない)古典アルゴリズムを回路で表現することはあまりなく擬似コードとよばれるプログラムもどきが用いられる. この一点においてすでに「量子計算のためのプログラミング言語とはどのようなものか?」という疑問が自然に浮かびあがるのであり, 筆者らはこの疑問に答えるべく(おもに数学的なアプローチから)研究を行っている. しかし以下ではさらにもう少し,「量子プログラミング言語の実現によって何が可能となるのか?」ということについて論じたい. http://www-mmm.is.s.u-tokyo.ac.jp/~ichiro/papers/quantProgLangJapaneseMar2014.pdf
80 :デフォルトの名無しさん :2014/08/14(木) 07:53:05.12 ID:18xo22zy.net http://en.wikipedia.org/wiki/Z_notation http://wwwold.stups.uni-duesseldorf.de/publications/proz.pdf
81 :デフォルトの名無しさん :2014/08/14(木) 22:20:55.55 ID:ao1eYSCw.net 「全貌はともあれこういうことをこうカッコよく書けそう」みたいなのをみたい
82 :デフォルトの名無しさん :2014/08/15(金) 12:53:42.95 ID:Aqg845W8.net http://www.buzzword.jp/img/face10.png
83 :1 :2014/08/16(土) 08:32:34.29 ID:ceF43G6L.net >>81 とりあえず、正規表現と有限オートマトン、文脈自由言語とプッシュダウンオートマトン あたりを美しく、または教科書のとおりに書きたいなと思ってる。 具体的な案はまだない。
84 :デフォルトの名無しさん :2014/08/16(土) 09:06:38.11 ID:/1p3o6vn.net 意味不明。雰囲気だけで語るな。
85 :デフォルトの名無しさん :2014/08/16(土) 09:20:19.06 ID:atIrV/RU.net Peggyでいいじゃん。
86 :デフォルトの名無しさん :2014/08/16(土) 09:21:32.20 ID:InfE8TR8.net だからせめて記述例を書けよ お前の脳内は読めねえ
87 :1 :2014/08/16(土) 09:37:02.60 ID:ceF43G6L.net だから具体的な案はまだないんだって。
88 :1 :2014/08/16(土) 10:17:23.81 ID:ceF43G6L.net 有限オートマトンの遷移関数を書くのに、関数の引数のパターンマッチは欲しいかな。
89 :1 :2014/08/16(土) 10:35:06.72 ID:ceF43G6L.net と、おもったけどそんなめんどくさいことしなくても連想配列でもいいのか。
90 :デフォルトの名無しさん :2014/08/16(土) 10:41:17.00 ID:eWpr12Q+.net >>87 ここはお前の日記帳じゃないんだから、具体的にまとまってから書いてくれ
91 :1 :2014/08/16(土) 11:51:35.82 ID:ceF43G6L.net 俺が持ってる教科書、マイケルシプサの計算理論の基礎っていう本の38,39ページに載ってる A={w|wは少なくとも一つの1を含み最後に現れる1の後に偶数個の0が存在する} っていう言語を受理するオートマトンの実装例は以下のような感じかな。かなりC++ぽいが。 enum State {q1,q2,q3}; set<State> Q={q1,q2,q3}; set<char> Σ={'0','1'}; map<pair<State,char>,State> δ={ (q1,'0')=>q1, (q1,'1')=>q2, (q2,'0')=>q3, (q2,'1')=>q2, (q3,'0')=>q2, (q3,'1')=>q2 }; set<State> F={q2}; class Automaton { set<State> Q; set<char> Σ; map<pair<State,char>,State> δ; State start; set<State> F; bool accept(char *str){ State state=start; while(str){ state=δ[(state,*str)]; str++; } return F.include(state); } } M = (Q,Σ,δ,q1,F);
92 :1 :2014/08/16(土) 11:54:15.04 ID:ceF43G6L.net あれ、空白ミスってんな。 プレビューでみたらちゃんと空白になってたと思ったけど。
93 :1 :2014/08/16(土) 11:57:01.89 ID:ceF43G6L.net まあ、いいや。インデントなしで再投稿 enum State {q1,q2,q3}; set<State> Q={q1,q2,q3}; set<char> Σ={'0','1'}; map<pair<State,char>,State> δ={ (q1,'0')=>q1, (q1,'1')=>q2, (q2,'0')=>q3, (q2,'1')=>q2, (q3,'0')=>q2, (q3,'1')=>q2 }; set<State> F={q2}; class Automaton { set<State> Q; set<char> Σ; map<pair<State,char>,State> δ; State start; set<State> F; bool accept(char *str){ State state=start; while(str){ state=δ[(state,*str)]; str++; } return F.include(state); } } M = (Q,Σ,δ,q1,F);
94 :デフォルトの名無しさん :2014/08/16(土) 13:25:37.77 ID:atIrV/RU.net Ragelでいいじゃん。
95 :1 :2014/08/16(土) 15:25:06.91 ID:ceF43G6L.net とりあえず、集合と連想配列と組のリテラル表記は欲しいな。 型さえ一致してれば組はクラスに暗黙のキャストできる感じで。
96 :デフォルトの名無しさん :2014/08/16(土) 17:30:42.83 ID:wloQcISK.net 目新しいものがないな。なんとなく美しくなりそうってのは天才的センスがないと実現しない。 天才か凡才かを確定させるためにさっさと作ってしまおう。
97 :1 :2014/08/16(土) 17:44:24.71 ID:ceF43G6L.net まじかw 言語仕様きめるだけでも結構大変だぞw さくっと作れるみたいなこと言うなw
98 :デフォルトの名無しさん :2014/08/16(土) 17:45:22.16 ID:0H8IvnJl.net 結局、見た目の問題でしかないの? 新しいパラダイムもなにも無いなら、わざわざ言語を作る意味が無いよ
99 :1 :2014/08/16(土) 17:56:17.24 ID:ceF43G6L.net いまのところシンタックスシュガーの問題の域をでてないな。 オートマトンだけじゃなくてもっと色んな問題を考察していけば なんか出てくるのかもしれないが。 とにかく、今のプログラミング言語において集合は不当に冷遇されてる気がする。 もっと集合を活躍させるべき、というのがこのスレの発端です。
100 :デフォルトの名無しさん :2014/08/16(土) 17:59:58.20 ID:0E9vEosE.net >>75 を具体的に語って欲しい
101 :1 :2014/08/16(土) 18:04:10.41 ID:ceF43G6L.net 型のキャストって結構不自由じゃない? 集合論に基づいた型の表記法が一致したらバンバンキャストできるようにしちゃうとか。
102 :デフォルトの名無しさん :2014/08/16(土) 18:09:17.80 ID:ceF43G6L.net >>100 いや、>>75 を具体的に語ったのが>>93 なんだけども。 残念ながら教科書コピペとはほど遠いC++チックなコードになっちゃったけど 教科書の定義にはなるべく従ったコードにしたつもり。
103 :デフォルトの名無しさん :2014/08/17(日) 00:08:28.60 ID:rJnEUKU4.net OCamlのvariantみたいなことがしたいのかなあ?
104 :1 :2014/08/17(日) 00:17:38.28 ID:wbAX39n3.net OCamlは触ったことがないけど面白そうな雰囲気ですね。 本でもかってくるかな。
105 :デフォルトの名無しさん :2014/08/17(日) 00:38:59.38 ID:rJnEUKU4.net >>1 はCライクな言語しか触ったこと無いの? だったら、もっと色々な言語を知るべきだよ。 その上でLispなり何なりで好きなようにDSLを実装すればいい。 少なくとも、集合が不当に冷遇されてるなんてことはない。ありえない。
106 :デフォルトの名無しさん :2014/08/17(日) 05:17:10.40 ID:ruDVRpF3.net 集合論よりかは圏論のほうが良くないか。厳密には違うが、ほぼ集合論の一般化でプログラム言語として利用する上では不具合無いだろ。 Haskell/圏論 - Wikibooks http://ja.wikibooks.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Simple-cat.png http://ja.wikibooks.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Functor.png http://ja.wikibooks.org/wiki/Haskell/%E5%9C%8F%E8%AB%96 Scala で圏論入門 https://github.com/scalajp/introduction-to-category-theory-in-scala-jp/wiki Coq を始めよう このチュートリアルでは定理証明支援系言語である Coq について解説をします。 読者の前提知識としては OCaml や Haskell などの関数型言語でプログラミングできることを想定します。 また、本文書において Coq のプログラムとの比較には Haskell と OCaml を用いますが、Haskell や OCaml を書いたことがなくても他の関数型言語に触れていれば理解できるような内容を心がけます。 http://www.iij-ii.co.jp/lab/techdoc/coqt/coqt1.html 圏論は数学をするための「高級言語」 http://www.is.s.u-tokyo.ac.jp/isnavi/images/logic/picture04.gif http://www.is.s.u-tokyo.ac.jp/isnavi/logic06.html
107 :デフォルトの名無しさん :2014/08/17(日) 07:09:05.41 ID:YbL+7IWD.net メニー・コアの時代にはそういう言語が流行るんだろな。
108 :デフォルトの名無しさん :2014/08/17(日) 07:29:25.82 ID:ruDVRpF3.net 圏論 - Wikipedia 圏論(けんろん、category theory)は、数学的構造とその間の関係を抽象的に扱う数学理論の 1 つである。 さらに一般的な圏論、つまり、意味論的な柔軟性をもち高階論理との親和性があるようなより現代的な普遍的代数が発展し、現在では数学全体を通して応用されている。 トポスと呼ばれる特別な種類の圏は、数学基礎論としての公理的集合論に取って代わることすら可能である。 実際構成的数学を記述する手段としても、トポスは非常に精緻に機能することが示されている。 集合論 - Wikipedia さまざまな数学の問題に対応した構造を理解するときには、個々の対象が具体的にどんな集合として定義されたかということよりも、 類似の構造を持つほかの数学的対象との関係性の方がしばしば重要になる。 この関係性は対象間の写像のうちで「構造を保つ」ようなものによって定式化される。このような考え方を扱うために圏論が発達した。 集合論の著しい特徴は集合間の写像たちまでが再び集合として実現できることだが、こういった性質を圏論的に定式化することで 集合論の圏論化・幾何化ともいうべきトポスの概念がえられる。
109 :1 :2014/08/17(日) 09:26:36.14 ID:wbAX39n3.net >>105 私の使用言語は主にC/C++ですね。 あとはRubyを少々。JavaやC#はかじった程度。 関数型言語は触ったことないですね。 >少なくとも、集合が不当に冷遇されてるなんてことはない。ありえない。 うーん。そうなんですか。でもそれだとこのスレが終わってしまうw >>106 圏論は知らないですね。なんか難しそうってイメージです。 はたして独学で勉強できるかどうか。。。
110 :デフォルトの名無しさん :2014/08/17(日) 09:41:10.85 ID:ruDVRpF3.net 集合が{○、●、◎、□、■}とすると、 圏は{→(1)、→(2)、→(3)、→(4)、→(5)}>
111 :デフォルトの名無しさん :2014/08/17(日) 09:51:19.75 ID:ruDVRpF3.net 途中で送信した。 (ある条件をみたす)全ての集合に対して、(ある条件をみたす)全ての集合の写像の集まりが圏。 圏論は、集合間の写像に注目したもの。 厳密なことは知らないが、どんな集合も圏として扱えるはずだろう。 集合{○、●、◎、□、■}に対して、圏{○→○、●→●、◎→◎、□→□、■→■}、(f(x)=xとなる写像)が作れる。
112 :デフォルトの名無しさん :2014/08/17(日) 09:52:50.76 ID:wbAX39n3.net >>110 →の意味がわからないw あと最後の>は必要なの?
113 :1 :2014/08/17(日) 09:53:56.42 ID:wbAX39n3.net うおリロードしてなかった。
114 :デフォルトの名無しさん :2014/08/17(日) 10:02:50.89 ID:ruDVRpF3.net 圏の主人公って「対象」なのかな?「射」なのかな? | TETRA'S MATH 「しりとりの圏」を圏とみなそうとするとき、まず、1字1字があって、 http://artet-math.img.jugem.jp/20101201_1468744.jpg それを始域、終域とする文字列を考えるのか。 http://artet-math.img.jugem.jp/20101201_1468743.jpg それとも、まず文字列ありきで、 http://artet-math.img.jugem.jp/20101201_1468745.jpg 始域、終域の一致でそれらの関係をひとまとまりのものとして捉えるのか… http://artet-math.img.jugem.jp/20101201_1468746.jpg どっちのイメージが圏の本質に近いのだろう? で、検索していたら、檜山さんの有限集合と写像の圏もJavaScriptで書いてみた、遊んでみてねにて、「圏の主役は射です。」と書いてあるのを発見。なるほど。 http://math.artet.net/?eid=1306322
115 :1 :2014/08/17(日) 10:17:17.51 ID:wbAX39n3.net TODOが一気にふえたな。 とりあえず、Ocamlの本買ってきます。 圏論を理解できるようになるのは相当先かな〜。
116 :デフォルトの名無しさん :2014/08/17(日) 10:34:34.27 ID:kLc8LA2s.net >>1 はやりたいことが沢山あって圧倒される段階か。その後何年かして夢見た事はすべてやり尽くした段階になる。 能力が足りないとそうなるまえに死んでしまうがね。
117 :デフォルトの名無しさん :2014/08/17(日) 10:36:45.62 ID:ruDVRpF3.net Ocamlは副作用があって純粋な関数型でない。副作用ありでいいならJavascriptも関数型言語でJavascriptで関数型の勉強可能。 純粋関数型プログラミングとは 関数が純粋であるというのは、副作用がないということである。副作用とは、関数が、内部で、なんらかの状態を隠しもつことをいう。 OCamlのようなML由来の言語は"ほぼ純粋"である。副作用を、参照や配列の形で使えるけども、大抵は、書いたコードは純粋関数型に落ち着くことが多い。 Haskellもまた、関数型言語で、純粋関数型だ。OCamlは、より実用的といえる。純粋でない関数もときには便利だからだ。 http://ocaml.org/learn/tutorials/functional_programming.ja.html JavaScriptで学ぶ関数型プログラミング http://hamasyou.com/blog/2014/02/21/functional-javascript/ JavaScript はプロトタイプベースのオブジェクト指向言語ですが、関数型言語の機能も備えています。 http://www.geocities.jp/m_hiroi/light/js03.html JavaScript - Javascrptで関数型プログラミングの入門 - Qiita http://qiita.com/takeharu/items/cf98d352ff574c5ac536 JavaScriptは関数型言語の特徴を取り入れていると思いますが、純粋な関数型言語ではありません。しかし今、そしてこれからのトレンドは関数型言語と言われています。 そこでJavaScriptでより関数型言語的なプログラミングを可能にするfn.jsを使ってみましょう。 http://www.moongift.jp/2014/02/fn-js-javascript%E3%82%92%E9%96%A2%E6%95%B0%E5%9E%8B%E8%A8%80%E8%AA%9E%E3%81%AE%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB%E3%81%A7%E6%9B%B8%E3%81%8F%EF%BC%81/ CoffeeScript と Node.js による関数型の JavaScript http://www.ibm.com/developerworks/jp/java/library/j-coffeescript/ Functional JavaScript https://gist.github.com/ympbyc/5564146
118 :デフォルトの名無しさん :2014/08/17(日) 10:45:48.55 ID:ruDVRpF3.net この記事では、クイックソート・アルゴリズムの実装について、 様々な言語で書かれた関数型プログラミングのコードを紹介しています なお、この記事の内容は、 2ちゃんねる掲示板 のプログラム板にあるスレッド 【PHP,Python】スクリプト, バトルロワイヤル36【Perl,Ruby】 で行われた議論を整理、加筆したものです。 関数型言語が関数型プログラミングを何の苦もなく実践できるのは、当たり前の話です。 Haskell quicksort [] = [] quicksort (pivot:xs) = quicksort littles ++ pivot:(quicksort bigs) where f x (ls, bs) = if x < pivot then (x:ls, bs) else (ls, x:bs) (littles, bigs) = foldr f ([], []) xs この節で取り上げる Ruby, JavaScript, Python はどれも関数型言語には分類されていませんが、関数型の特性を取り入れていると言われています。 それでは、これら言語の関数型プログラミング・スタイルを見ていくことにしましょう。 JavaScript function quicksort(xs) { function f(xs) { var pivot = xs[0]; function g(pair, x) { var ls = pair[0], bs = pair[1] return x < pivot ? [ls.concat([x]), bs] : [ls, bs.concat([x])]; } var pair = xs.slice(1).reduce(g, [[], []]); var littles = pair[0], bigs = pair[1]; return [].concat( quicksort(littles), [pivot], quicksort(bigs) ); } return xs.length <= 1 ? xs : f(xs); } http://www.h6.dion.ne.jp/~machan/misc/qsort-in-fp.html
119 :デフォルトの名無しさん :2014/08/17(日) 10:51:34.94 ID:ruDVRpF3.net こっちのクイックソートのほうが短くわかりやすかった。 クイックソート - NullPointer's Blog Erlangで書くと… quicksort([]) -> []; quicksort([Head|Tail]) -> quicksort([X || X <- Tail, X < Head ]) ++ [Head] ++ quicksort([X || X <- Tail, X >= Head]). 小さいのを左に集めて、大きいのを右に集めて、繰り返し…、アルゴリズムの説明そのままのコードになる。 簡単すぎ。アルゴリズムを理解するという目的であれば、関数型のコードの方が10000倍理解しやすい。 関数型っぽい書き方は、最近のJavaScriptならばサクッと書けますが… function quickSort(array) { if (array.length <= 1) return array; var pivot = array.pop(); var lt = array.filter(function(a){ return a < pivot }); var ge = array.filter(function(a){ return a >= pivot }); return quickSort(lt).concat([pivot]).concat(quickSort(ge)) } http://paulownia.hatenablog.com/entry/20111204/1323015703
120 :1 :2014/08/17(日) 15:08:45.66 ID:wbAX39n3.net 本屋めぐってきたけどOcamlの本なかったわー 廃れてしまった言語なん? しかたないからwebで情報探すか。
121 :デフォルトの名無しさん :2014/08/17(日) 15:31:49.05 ID:8WbwPRMF.net ググれば数秒でみつかるのに。 http://caml.inria.fr/resources/index.en.html
122 :デフォルトの名無しさん :2014/08/17(日) 16:03:30.63 ID:PGXi6tC2.net >>109 > うーん。そうなんですか。でもそれだとこのスレが終わってしまうw いいことじゃん。 続きはブログでやってくれ。
123 :1 :2014/08/25(月) 19:07:11.02 ID:DrxGPTGS.net とりあえず、Ocamlでconnect4のルールだけ作ってみた。 だれか添削たのむ。 http://www.age2.tv/rd05/src/up3979.txt connect4はこことかで遊べます。 http://www.connectfour.org/connect-4-online.php
124 :デフォルトの名無しさん :2014/08/25(月) 19:28:01.77 ID:vcy2nNqb.net 以下>>1 がOCamlを勉強するスレ
125 :1 :2014/08/25(月) 19:30:28.60 ID:DrxGPTGS.net いやw今はそうだけど、そのうち本題に戻りたいとは思ってる。
126 :デフォルトの名無しさん :2014/08/25(月) 20:06:42.36 ID:l0tzbBCe.net この思考エンジンで。GUIはすでにあるから思考部だけ。 http://www.vector.co.jp/soft/win95/game/se401975.html 石を7つ直線に並べた方が勝ちという五目並べに、囲碁の石を取るという概念を加えた新しいゲーム「囲連星」。CPU戦も対人戦も楽しめる。 ルールは簡単! 1) 黒白交互に打っていき、先に縦・横・斜めに7つ石を並べたほうが勝ち 2) その間に相手の石を囲んで取ることが出来る
127 :1 :2014/08/25(月) 20:15:54.91 ID:DrxGPTGS.net ばかやろーw 囲連星つったら今までまともなAI作れたの2人しかいない難題じゃねーかw もっと簡単な奴にしろw
128 :デフォルトの名無しさん :2014/08/26(火) 17:44:18.47 ID:Yj5Hd+B/.net 総当たりができなければモンテカルロでやりゃ良いじゃん もっと素晴らしいのを見つけて欲しいな
129 :1 :2014/08/26(火) 19:40:10.91 ID:FDxVWnbU.net モンテカルロなら簡単だとおもってるな? そんな甘くないから。 今のLV3のプログラムは相当レベル高いから。
130 :デフォルトの名無しさん :2014/08/26(火) 20:14:52.44 ID:k5rL1v3w.net >>1 程度の習熟度だとそうかもな
131 :1 :2014/08/26(火) 20:22:34.58 ID:FDxVWnbU.net >>130 がLV3に勝ち越す囲連星AI作ったら納得してやる。
132 :デフォルトの名無しさん :2014/08/26(火) 20:44:26.53 ID:k5rL1v3w.net >>1 「これ知らなーい、あれも知らなーい」ばかりで、 挙句の果てには「数学のテクニックをプログラミングに持ち込めるかなと思った」だもんなあ。どんだけ無知なんだよ。 OCamlに興味を示したと思ったら、 >>1 「connect4のルールだけ作ってみた。添削頼む()」とか、更にすっとぼけたこと言ってるし。 せめてスレタイに沿うような問題設定ができるまで学習しろ。 適切に問題設定ができないのに、コードをこねくり回したって意味ない。そりゃ只の自慰行為だ。
133 :デフォルトの名無しさん :2014/08/26(火) 20:54:37.89 ID:FDxVWnbU.net >>132 俺が無知なのは認めるが、おまえが威張るのはLV3を超えるAIを作ってからだ。 そうでなきゃお前も口だけだぞ。
134 :デフォルトの名無しさん :2014/08/26(火) 21:07:11.73 ID:k5rL1v3w.net 別に威張ってないよ? >>1 の習熟度だと難しく感じるだろう、と言っただけ。 自尊心が傷ついたのかな。幼子みたいな奴だ。 次からは優しく諭すように指摘してあげるよ。 ところで、>>1 のやりたいことって何だ?スレタイとは違うのか?
135 :1 :2014/08/26(火) 21:15:57.51 ID:FDxVWnbU.net まあ、一応スレタイの通りだな。 スレの方向はずれてきているが。 とりあえず、関数型言語を触ってみてるところだ。
136 :デフォルトの名無しさん :2014/08/26(火) 21:47:40.66 ID:UhLj/9Xy.net LV3は大して強くない。手動でほぼ100%勝てる。 たぶんプログラムでも勝てると思う。 これは囲碁と違って有効手が見付けやすくモンテカルロ法は向いていないと思う。
137 :デフォルトの名無しさん :2014/08/26(火) 22:01:43.24 ID:2ww4+7z5.net ダメダメだな。いつまでたっても何もできそうにない
138 :1 :2014/08/26(火) 22:10:51.94 ID:FDxVWnbU.net >>136 手動なら俺だって勝てるわ。 ほぼ100%とはいかないけど。 プログラムで勝ち越すことに意義がある。 LV3に勝ち越して人間相手にも自然な手を返せるプログラムが作れるってならぜひ作ってほしいね。 一囲連星ファンとして。 >>137 その可能性は非常に高いw
139 :デフォルトの名無しさん :2014/08/26(火) 22:21:22.44 ID:2ww4+7z5.net ふーん。ならスレ終了でOKだな
140 :1 :2014/08/27(水) 18:26:42.61 ID:VCMYq2O7.net >>139 まあ、そうあせらずに。 どうせ過疎板だ。 ノンビリ行こう。
141 :デフォルトの名無しさん :2014/08/27(水) 19:44:52.25 ID:FS966Rgy.net はあ?これ以上妄言を垂れ流すならブログでやれば?
142 :デフォルトの名無しさん :2014/08/27(水) 21:12:10.16 ID:sWLZW0su.net 1のスレだし見たくないやつが来なければ済む
143 :1 :2014/08/28(木) 19:02:16.77 ID:NyU3eawL.net しかしOcamlはプログラム組みにくいな。 ちょっとしたことやるにも再帰関数つかうっぽいし。 慣れてないだけかもしれんが。
144 :デフォルトの名無しさん :2014/08/28(木) 19:15:00.80 ID:Qmt6TOBF.net 慣れてないだけ。
145 :デフォルトの名無しさん :2014/08/28(木) 19:38:25.81 ID:RkFVOWz2.net >>143 http://peace.2ch.net/test/read.cgi/tech/1330429547/413-418
146 :1 :2014/08/28(木) 20:42:22.39 ID:NyU3eawL.net >>145 俺がこんなこと言っちゃいかんのかもしれんが、 確かに参照透過性とか数学的にはいいのかもしれんが、 実用性では怪しく感じる。
147 :デフォルトの名無しさん :2014/08/28(木) 22:22:22.57 ID:wWKXD6ik.net 純粋関数型でない、参照透過性がないのは、手続き+αの手続き型言語。
148 :デフォルトの名無しさん :2014/08/28(木) 22:43:29.27 ID:wWKXD6ik.net 2032 年の FPGA: 20年後の FPGA の未来像 Tabula 社社長兼 CTO の Steve Teig 氏は、次のように断言しました。 「FPGA のプログラミングに関して言えば、RTL は適していません。しかし、C はさらに問題があります。 直列実行から並列実行への移行でさえも低レベルすぎます。 Haskell のような関数型言語の方がましですが、ほとんどの関数型言語がベースとしている数学的抽象化であるラムダ計算も最適な抽象化とは思えません」 Blainey 氏も同じ意見のようで、ソフトウェアを FPGA 構造に変換するライブラリおよびコンパイラを備えた明示的並行言語が広く普及するとともに、 特定の種類の問題を扱う関数型言語プログラマのエリートが現れることになると予想しました。 http://www.altera.co.jp/technology/system-design/articles/2012/fpgas-in-2032-the-acm-fpga-2012-workshop.html 現状でさえマルチスレッドプログラミングは開発の困難さが指摘されている分野である。 Sweeney氏は、これは現在主流の開発言語であるC++の手続き型言語としての特性に由来すると指摘する。 Sweeney氏は、この問題を解決するためには、ゲーム開発言語として純粋関数型の言語が必要になるだろうと言う。 この種の処理系では、C++のような共有メモリのアクセスや、I/O操作は基本的に行なえない。 その引き替えとして、各関数のアトミック性が構造的に保証されており、安全に並列実行できるのだ。 しかも、コンパイラが対応さえすれば、関数を自動的に多数のコアに分散処理させることができるというスケーラブルな実行バイナリを作り出せる。 Sweeney氏はそのひな形として言語“Haskel”を挙げているが、ゲーム開発のメインストリームたり得る言語はまだ登場しておらず、将来に期待しているという。 http://game.watch.impress.co.jp/docs/20080911/epic.htm
149 :1 :2014/08/28(木) 23:08:29.08 ID:NyU3eawL.net >>148 CPUコアが1万個くらいあるならこういうパラダイムシフトも起きるのかもしれんが。 20年後どの程度ハード進歩してんのかね。
150 :デフォルトの名無しさん :2014/08/29(金) 00:59:50.98 ID:4AjKkLEL.net >>149 コア数、5760基 2014年7月22日掲載 ビデオカード単体の価格を下回る破格のロープライスで発売中! 安い、安すぎる! NVIDIA史上最速「GeForce GTX TITAN Z」搭載ゲーミングPCが299,799円!? 「GeForce GTX TITAN Z」は、1枚のカードに「GK110」コアを2基搭載する、NVIDIAの最上位デュアルGPU。 12GBのGDDR5メモリーを搭載するほか、CUDAコアは計5760基で、演算性能は8TFLOPSをうたうウルトラハイエンドGPUです。 デルによると、このGPUを搭載する「ALIENWARE Aurora TITAN Z」は、3840×2160の4K環境で60fpsを超えるパフォーマンスを叩き出し、 「グラフィックス設定を最大にして4Kを有効にすることで、2014年6月に発売され全世界で記録的なセールスを更新中のオープンワールド型アクションゲーム『ウォッチドッグス』も、 すべてのエレメントがさらにシャープで滑らかで鮮明になり、開発元であるUbisoft Montrealの意図通りのディテールをすべて体験することができる」とのことです。 http://magazine.kakaku.com/mag/pc/id=1687/
151 :デフォルトの名無しさん :2014/08/29(金) 14:03:44.10 ID:/HNlnXLI.net >>146 停止性問題さえ知らないのか。 参照透明性はプログラムを解析しやすくする。 C/C++ で const の少ないソースを見たら気を付けろ。 実用でいえば、コンパイラが最適化するときに全ての中間式に仮の名前を付けて const 変数として扱い、 例えばループの外に追い出すためのスコープ中で不変な部分を探すために使ったりするが、 これは参照透明な範囲を見つけるためだと言えるだろう。 手続型でプログラムをしていても、なるべく参照透明を保った方がいいし、参照透明な範囲を意識しておいた方がいい。
152 :1 :2014/08/29(金) 19:54:56.85 ID:5NUrtg1w.net >>150 GPGPUはまだ実用って感じじゃないなぁ。 限られた問題しか上手く解けないイメージがある。 >>151 俺もC++書くときはconstつけられる場所はなるべくconstつけるようにしてるけど、 constつけられるメンバ関数って単純な処理やってる場合が多いつーか やっぱクラスの肝となるメンバ関数にはconstつけられない場合が多いつーか。 std::vectorだと単純なsize()なんかはconstつけられるけど肝となるpush_back()にはつけられないみたいな。
153 :デフォルトの名無しさん :2014/08/29(金) 20:31:28.66 ID:6XulYCBt.net >>148 【Python】スクリプト バトルロワイヤル45【pl,rb,php,js】 http://peace.2ch.net/test/read.cgi/tech/1405874605/670-680
154 :デフォルトの名無しさん :2014/08/31(日) 04:44:55.96 ID:igojaLD4.net >>148 こいつら夢と理想を語ってる時点で1の妄言と大差ないわ。
155 :デフォルトの名無しさん :2014/08/31(日) 04:46:10.77 ID:igojaLD4.net 夢と理想を描くくらいなら一昔前の俺のレベル。
156 :1 :2014/09/03(水) 19:05:09.17 ID:pp7cuLBa.net 結局、関数型言語って何がいいのかいまいちわからんな。 もうちょっと修行が必要か。。。
157 :デフォルトの名無しさん :2014/09/03(水) 19:21:58.87 ID:0ir9kNKt.net 関数型の良さは手続き型でなく、計算順序(手続き)がなく、副作用がないところ。 (実際は計算時間が掛かるけれど)入力に対し瞬時に応答が返るというイメージ。
158 :1 :2014/09/03(水) 20:06:29.19 ID:pp7cuLBa.net 副作用がないってのが今一信用できないんだよなぁ デカいオブジェクトの一部を更新しようとしたら丸コピーするんでしょ? まあ、ハードが進歩したらどうなるかわからんが、 副作用なしで十分速いコードを書くのは難しくない?
159 :デフォルトの名無しさん :2014/09/03(水) 20:49:03.08 ID:z1Y/3x7f.net >>158 >デカいオブジェクトの一部を更新しようとしたら丸コピーするんでしょ? そんな馬鹿はしない 更新した項目(名前と更新値のペア)が新しい環境へ追加されるだけ それ以外の項目は古い環境をさかのぼって検索すれば参照できる (一般には検索結果はメモ化されるから、2回目以降の検索は遅くならない) ただし副作用のない世界におけるデータ構造に関する 効率的な実装アルゴリズムは発展途上にある (世の中の歴史的なアルゴリズムの大半は副作用を前提にしているからね) たとえばこんなのが分かりやすいと思う ・20分でわかる Purely Functional Data Structures - Kmonos.net http://www.kmonos.net/pub/Presen/PFDS.pdf
160 :デフォルトの名無しさん :2014/09/03(水) 20:52:47.28 ID:gtOXQwRF.net >>158 そこは CopyOnWrite とかの実装でなんとかなるでしょ て言うか、一部を更新と言うのがそもそも違うような気がするが
161 :1 :2014/09/03(水) 21:07:05.78 ID:pp7cuLBa.net >>159 これ考えたやつすげーな。 素直に感心するわ。
162 :デフォルトの名無しさん :2014/09/04(木) 12:51:46.22 ID:Azi8pMDh.net クリス・オカサキさんはsimonpjとかに並ぶ神レベルの御方のひとり。
163 :デフォルトの名無しさん :2014/09/05(金) 06:58:20.44 ID:vJ702ivD.net >>157 ハア?ナニイッテンノ? 関数型にも計算順序はあるぞ。評価戦略という名前で。
164 :デフォルトの名無しさん :2014/09/05(金) 09:55:29.84 ID:qmuQRxyX.net 正確には、結果が得られるとしたら計算順序によらない(チャーチ=ロッサ性)だな。
165 :1 :2014/09/05(金) 19:53:29.10 ID:Y4VtbNiL.net ちなみに>>159 が言ってるデカいオブジェクトの一部を更新するとき 丸コピーしないレベルの最適化を実現してるコンパイラって現段階であるの? あるんなら触ってみたい。Ocamlでなくていいから。
166 :デフォルトの名無しさん :2014/09/05(金) 20:18:53.62 ID:qmuQRxyX.net リンク先のPDFをよく読んだか? コンパイラがやってくれるという話じゃなくて、そういうようにデータ構造を設計する、 という話だから(ある程度はHaskellコンパイラの最適化のおかげも入ってるけど)。
167 :1 :2014/09/05(金) 20:50:15.22 ID:Y4VtbNiL.net 自力で実装するのか。 参照透過性を保つのはしんどそうだな。
168 :デフォルトの名無しさん :2014/09/05(金) 21:21:29.17 ID:Ne6tWzRJ.net 関数型言語を、参照透過性がないC言語で実装可能だし、 C言語ソースコードにコンバートすることも可能。 実行時の中身の動作は関係がない。
169 :1 :2014/09/05(金) 21:38:10.90 ID:Y4VtbNiL.net >>168 よくわからんが論理的にそういうこともできるって話ならあんまりありがたみがないなあ。 実装がどれだけ楽かってのは俺にとって重要な話だ。 やっぱりそこはコンパイラに頑張ってほしいね。
170 :デフォルトの名無しさん :2014/09/05(金) 21:46:10.50 ID:Ne6tWzRJ.net 参照透過性はハードウェアの物理的な制約でない。 現状、普及しているパソコンもノイマン型、手続き型でアセンブラ・機械語で動作している。 ハードウェアまでが完全に関数型として動くわけでない。
171 :1 :2014/09/05(金) 22:11:28.48 ID:Y4VtbNiL.net 物理的な制約ではないったって、参照透過性をノイマン型コンピュータで 効率よく実装できないんならそれは物理的な制約みたいなもんでしょ。 丸コピーに勝る最適化が実装されないと、信用できないなぁ。
172 :デフォルトの名無しさん :2014/09/05(金) 22:11:40.10 ID:u2C0iLEX.net >>169 >>1 には初耳かもしれないけど、リストというデータ構造がある リストの実装方法はいくつかあるけど、 世の中で関数型を名乗る言語のコンパイラのほぼすべてにおける リストに対する構成(cons)と分解(decons)といった操作は、 大昔から「丸コピーしないレベルの最適化」が実現されている もちろん OCaml でもリスト操作で丸コピーは発生しない す ご い だ ろ ?
173 :デフォルトの名無しさん :2014/09/05(金) 22:27:04.06 ID:vJ702ivD.net >>172 へー、consセルのcarに破壊代入するかわりに cdrをコピーせずに新しいcarだけを追加するのかい? そりゃすごいねえ
174 :デフォルトの名無しさん :2014/09/05(金) 23:09:43.43 ID:rtobVFDF.net >>173 リストの丸コピーの定義書いてみ まあ、まともな精神なら恥ずかしくて書けないだろうけどな w
175 :デフォルトの名無しさん :2014/09/06(土) 09:24:36.23 ID:2eQ4pr9G.net >>174 consセルの丸コピーの定義書いてみ 自分の馬鹿さが明らかになって恥ずかしすぎて書けないだろうけどなw
176 :デフォルトの名無しさん :2014/09/06(土) 09:26:57.68 ID:2eQ4pr9G.net つーかconsセルに破壊代入する関数型言語なんて腐る程あるし この馬鹿は何を自慢したいのだろう?馬鹿すぎて理解できない
177 :デフォルトの名無しさん :2014/09/06(土) 09:48:13.12 ID:VC7+V5v8.net >>175 書けないわけね まあ、そりゃそうだわな w
178 :デフォルトの名無しさん :2014/09/06(土) 19:13:42.33 ID:2eQ4pr9G.net おー、華麗な勝利宣言だwww キモ!
179 :デフォルトの名無しさん :2014/09/06(土) 21:11:07.40 ID:VC7+V5v8.net >>178 キモとしか書けなくて悔しいね w
180 :デフォルトの名無しさん :2014/09/07(日) 08:03:05.89 ID:EoKvJO+q.net ハスケラって初心者のくせにハスケル知ってるというだけでエラソーしてるけど あれって宗教か何かなのか?
181 :1 :2014/09/07(日) 23:47:31.57 ID:9dp9vcbI.net 関数型言語やりたいならOcamlよりHaskellお勧め? >>123 のコードは副作用ありまくりなんだが。
182 :デフォルトの名無しさん :2014/09/08(月) 07:21:00.89 ID:j836SLcH.net >>180 ガキにありがちな行動だろ スルーしとけよ
183 :デフォルトの名無しさん :2014/09/08(月) 11:55:44.86 ID:cPc63HcT.net 関数型言語の中では副作用がある言語のほうが主流だろ。 LISPやSchemeやSMLやOCamlなど。
184 :デフォルトの名無しさん :2014/09/08(月) 12:03:45.51 ID:kaEhSBtj.net 副作用、代入ありは、関数型記述もできる手続き型。
185 :デフォルトの名無しさん :2014/09/08(月) 12:08:09.21 ID:uHpNxeFr.net 純血主義ならhaskellで
186 :デフォルトの名無しさん :2014/09/08(月) 15:22:32.10 ID:pVr2+nKJ.net 関数型言語は使うなと何処かの先生が言ってたぞ。 関数型と言うのは単にプログラミング手法であるから言語なんてつけるなと言うことらしい
187 :デフォルトの名無しさん :2014/09/08(月) 17:26:33.52 ID:uHpNxeFr.net >>186 kwsk
188 :デフォルトの名無しさん :2014/09/08(月) 18:04:23.92 ID:pVr2+nKJ.net >>187 関数型プログラミングは本当に難しいのか http://itpro.nikkeibp.co.jp/article/Watcher/20121001/426555/?ST=smart 『関数型言語』を使ってはいけない」との発言が飛び出したのだ。
189 :デフォルトの名無しさん :2014/09/08(月) 18:23:47.23 ID:kaEhSBtj.net 純粋関数型はプログラマの技法のためでなく コンパイラ、ハードウェアのためだろ。 プログラマにとっては使いにくいが、 手続き、順序がないことで、機械が並列処理しやすい。 順序があると、先の手続きが終わるまで待たないといけない。
190 :デフォルトの名無しさん :2014/09/08(月) 19:14:00.85 ID:cPc63HcT.net >>189 逆。 純粋関数型言語はプログラマのための技術だ。 関数型言語の並列化は何十年も昔からの研究テーマだが 未だに実用的な決定打が出ていない。
191 :デフォルトの名無しさん :2014/09/08(月) 19:20:10.71 ID:kaEhSBtj.net プログラマのためなら、手続き型も使える関数型、関数型もも使える手続き型というハイブリットのほうがよく 厳しい制約をつけることはない。値の書き換え不可能は便利でない。
192 :1 :2014/09/08(月) 19:36:06.54 ID:ZbTP8aJt.net いつの間にか関数型言語スレになってしまったな。 まあ寄り道もいいか。
193 :1 :2014/09/08(月) 20:53:29.01 ID:ZbTP8aJt.net 無知をさらすようだけど、チューリングマシンで一回テープに書き込んだらそのメモリは書き換えられないマシンがあったら、それはチューリング完全になる?
194 :デフォルトの名無しさん :2014/09/08(月) 21:12:35.82 ID:0BEKcfFo.net 直感的には、規則は面倒になりそうだけど「テープはいくらでもある」というのが チューリングマシンの前提だから、問題ないんじゃない?
195 :1 :2014/09/08(月) 21:17:06.30 ID:ZbTP8aJt.net 直感的にはそうなんだけど、じゃあ一回しかメモリに書き込めないマシンでチューリングマシンをシミュレートしてみろって言われると俺には無理。
196 :デフォルトの名無しさん :2014/09/08(月) 21:53:22.17 ID:YW1sNfFx.net >>186 そういう先生は先生として失格なので無視していい
197 :デフォルトの名無しさん :2014/09/08(月) 23:28:07.41 ID:0BEKcfFo.net てゆーか、文脈を無視して取り出すな危険、系だろ
198 :デフォルトの名無しさん :2014/09/08(月) 23:46:25.48 ID:nnXcaq6b.net >>180 ナゼ突然に Haskell という名前を出すのか意味不明だなぁ 不変オブジェクトによる計算は、ML や Lisp のように破壊的代入が可能な 不純関数型言語でも重要な概念であり、基本のプログラミング・スタイルだよ 特に>>159 のプレゼン内で紹介されているオカサキ氏の書籍では、 すべてのコードが Standard ML で書かれているのに、いったい何を言いたいのだろう? おそらく>>180 の頭の中には「関数型言語 == Haskell」という等式が あるんだと思うけど、>>180 のようにあらゆる関数型言語がHaskellに見えてしまう ニワカな自称Haskellプログラマを指して「ハスケラ」と呼ぶんだがね
199 :デフォルトの名無しさん :2014/09/08(月) 23:54:48.92 ID:nnXcaq6b.net >>186 ,188 ソースが 日経ITpro だろ ここは以前(2006年)にも「本物のプログラマはHaskellを使う」という煽り記事を書いて、 記事に踊らされた糞ハスケラを量産した張本人だよ そして今度(2014年)は「『関数型言語』を使ってはいけない」とは、 その変わり身の速さに大笑いするね >>186 ,188が、またITに無知なマスゴミ記事に踊らされたいのかい? 日経新聞の中国賞賛記事に煽られて進出した日本企業のように....
200 :デフォルトの名無しさん :2014/09/09(火) 05:57:09.86 ID:ukX/qMIS.net 単に172みたいなシッタカはハスケラが多いという経験則なんじゃね? 実際、シッタカ多いだろ、ハスケラ界隈。
201 :デフォルトの名無しさん :2014/09/09(火) 06:01:06.48 ID:ukX/qMIS.net つーか、158に書いてある程度の永続データ構造は 不純関数型どころか手続き型でも普通に使われている。 それをいちいち関数型特有の技術であるかのように言いふらすのか。 ルビ厨と同類だなw
202 :デフォルトの名無しさん :2014/09/09(火) 10:33:24.25 ID:iSgMgqSE.net > 実際、シッタカ多いだろ、ハスケラ界隈。 うん。カタカナで書く奴とか、>>199 のように、長期連載記事を全くそれと認識できてない ほどのニワカだということを自分で自慢して自爆しちゃう奴とか。
203 :デフォルトの名無しさん :2014/09/09(火) 14:38:16.53 ID:ukX/qMIS.net >>199 と、「本物のプログラマは…」が長期連載記事であることは全く矛盾しないけど、 どうして>>202 は199は長期連載と認識していないと思い込んじゃったのかな? エスパーですか?
204 :デフォルトの名無しさん :2014/09/09(火) 23:09:21.92 ID:u4pMEKRn.net >>201 ほう、「>>158 に書いてある程度の永続データ構造は 不純関数型どころか手続き型でも普通に使われている」のか、それは知らなんだ 関数型を名乗る言語の大半では(=少なくとも自分の知る限りすべての関数型言語では)、 始祖 Lisp の時代から本質的に永続性を持つリストと呼ばれるデータ構造を基本としている だから関数型言語では、普通に(=暗黙のうちに)永続データ構造が使われていると言える(>>172 ) 一方、手続き型言語で基本的なデータ構造といえばレコード(=構造体)と配列だと思うけど、 >>201 の住んでいる異次元世界では、レコードや配列が永続データ構造で実装されているんだね 興味深い話だから、ぜひ kwsk 説明してもらえると嬉しいなあ....(棒
205 :デフォルトの名無しさん :2014/09/09(火) 23:32:43.42 ID:iSgMgqSE.net 見事に知ったかが消えたな
206 :デフォルトの名無しさん :2014/09/10(水) 07:01:46.89 ID:nz1QrfPP.net >>204 知らないって、幸せなことなんだなあw ある言語で永続データ構造が使えるからといって、 その言語の全てのデータ型が永続データ構造で実現されていることにはならないことぐらい 中学生レベルの論理を知っていればわかりそうなものなんだけどなあw copy on write的なデータ構造は多くの手続き型言語のライブラリで使われていて そこにはLISPで培われた永続データ構造の技術が使われてるよ。
207 :デフォルトの名無しさん :2014/09/10(水) 11:12:44.60 ID:2lSvEqyn.net どんどん言ってることがズレてくな
208 :デフォルトの名無しさん :2014/09/10(水) 11:51:44.84 ID:2N2PVK/b.net 関数ムラの住民は世間が狭いね
209 :デフォルトの名無しさん :2014/09/10(水) 22:45:00.45 ID:MIzNsnl2.net >>204 > copy on write的なデータ構造は多くの手続き型言語のライブラリで使われていて ほう、これまた面白い話が聞けた >>206 がいる異次元世界だと、その「copy on write的なデータ構造」を使う ライブラリが手続き型言語プログラマの間では「ふつうに(>>201 )」使われているんだ 関数型言語で「ふつうに」リスト操作している(>>172 )のと同様に 手続き型でも永続データ構造が使われているとは、 >>206 のいる異次元世界はプログラマにとって理想郷だね!!(棒
210 :桃白白 ◆9Jro6YFwm650 :2014/09/10(水) 22:56:17.03 ID:6zdXUVOl.net >>209 Stringとか
211 :デフォルトの名無しさん :2014/09/10(水) 23:05:15.07 ID:MIzNsnl2.net >>210 String は単純型だからデータ構造やライブラリには含まれない もし String を含めるのなら Integer もデータ構造の一種になってしまう
212 :桃白白 ◆9Jro6YFwm650 :2014/09/10(水) 23:08:58.07 ID:6zdXUVOl.net >>211 単純型ってなんすか? BigIntとか
213 :デフォルトの名無しさん :2014/09/10(水) 23:20:47.47 ID:MIzNsnl2.net >>212 単純型とは、他の型から構成されることのないデータ型であり、 文字列型の他には、論理型、文字型、列挙型、数値型がある 関数型言語の Lisp や論理型言語の Prolog だとアトムとも呼ばれる
214 :桃白白 ◆9Jro6YFwm650 :2014/09/10(水) 23:22:03.29 ID:6zdXUVOl.net >>213 他の型から構成されることがないってどういう意味っすか?
215 :デフォルトの名無しさん :2014/09/10(水) 23:32:19.53 ID:MIzNsnl2.net >>214 たとえばレコード型(C言語であれば構造体)は、 単純型、配列型、別のレコード型といった「他の(複数の)型から構成」される また配列型も整数型、文字型、レコード型といった「他の型(の反復)から構成」される そしてレコード型や配列型は、要素となった他の型に分解できる それに対して、単純型は「他の型から構成されることがない」 言い換えると、単純型は(他の型へ)分解できない根源的なデータ型になる >>213 で書いたアトムも、物理学の(分解できない)原子が語源になっている
216 :デフォルトの名無しさん :2014/09/10(水) 23:45:56.12 ID:ADC46RWM.net 単純型‥もう、アーキュムレータとかその他レジスタに載る型、ということにしては?
217 :デフォルトの名無しさん :2014/09/11(木) 06:06:05.80 ID:/5wQig/e.net >>211 Stringが内部データ構造を持っていたりライブラリで提供されている言語や処理系なんて山ほどあるだろ。 StringがCharのリストとして実現されている言語や処理系も多い。 関数ムラの住民はやっぱりムラの外の事情には疎いんだね。よーーーーくわかりましたw
218 :デフォルトの名無しさん :2014/09/11(木) 10:27:37.46 ID:ZRdF18oF.net >>217 関数型でもCharのリストで扱う言語あった気が
219 :デフォルトの名無しさん :2014/09/11(木) 12:11:59.58 ID:/5wQig/e.net むしろStringが単純型なのはLISP系ぐらいでは
220 :デフォルトの名無しさん :2014/09/11(木) 12:59:06.68 ID:ThP8Tlio.net >>216 型理論(型システム)的には全く無意味だからそれ
221 :デフォルトの名無しさん :2014/09/11(木) 12:59:52.98 ID:ThP8Tlio.net > 関数ムラの住民はやっぱりムラの外の事情には疎いんだね。よーーーーくわかりましたw 自分がバカっぷりをさらしてることはわからないんだねw
222 :デフォルトの名無しさん :2014/09/11(木) 13:06:24.74 ID:ThP8Tlio.net ていうか、関数型ムラに居て、HaskellのStringが[Char]だと知らない奴がいるもんかw あと、流石に効率が悪いことも多いってんで、最近はText型とその周辺の実装が進められてる。
223 :デフォルトの名無しさん :2014/09/11(木) 13:39:24.40 ID:/5wQig/e.net ハァ?誰もHaskellの話なんてしていないぞ。 そんなにHaskellの話がしたければHaskellスレに行けば? 「Stringは単純型だと言ったらいじめられた〜」とか言えば みんな同情してくれるだろw
224 :デフォルトの名無しさん :2014/09/11(木) 14:10:25.16 ID:AMEA56Qh.net 桃白白はVBScriptしか知らないからあの答えで合ってるの。
225 :デフォルトの名無しさん :2014/09/11(木) 17:15:48.36 ID:ThP8Tlio.net > みんな同情してくれるだろw おれは苛めてるんだ、と、自分を騙すのに必死なのかw
226 :デフォルトの名無しさん :2014/09/11(木) 17:18:44.69 ID:Eq/MhJWf.net Stringが単純型しかないLisp以外の言語まだー?
227 :デフォルトの名無しさん :2014/09/11(木) 19:02:59.76 ID:ZRdF18oF.net Stringがプリミティブな言語自体は存在するけど(手続き型ならBASICとかPerlとか) >>211 はStringは単純型、と言い切っちゃってるからな
228 :デフォルトの名無しさん :2014/09/11(木) 20:03:48.12 ID:Eq/MhJWf.net しかもBASICやPerlにしても文字列を内部実装として永続データ構造で保持してる処理系とか普通にあり得るし。例えばPerlのHaskell実装とか。
229 :デフォルトの名無しさん :2014/09/12(金) 00:22:55.80 ID:ke/j7I6c.net で?
230 :デフォルトの名無しさん :2014/09/12(金) 02:10:37.29 ID:KXHcVpz6.net 元々なんの話だったんだっけか、よく分からんくなってきた
231 :デフォルトの名無しさん :2014/09/12(金) 03:48:40.55 ID:5DSOPRX8.net 結論 ハスケル村民は中二病
232 :デフォルトの名無しさん :2014/09/12(金) 19:25:03.94 ID:i5Uyd5M3.net >>230 >>186 参照 関数型言語の関数型というのはただの手法であって言語という程のことではないらしい haskellは何言語と呼べばいいんだろう
233 :デフォルトの名無しさん :2014/09/12(金) 19:43:34.87 ID:ke/j7I6c.net 文脈のある文章を文脈から取り出してセンセーショナルに騒ぐ奴はバカ、でFA
234 :デフォルトの名無しさん :2014/09/12(金) 19:54:30.05 ID:i5Uyd5M3.net 関数志向宣言型プログラミング言語って呼べばいいのかな
235 :デフォルトの名無しさん :2014/09/12(金) 19:55:16.20 ID:i5Uyd5M3.net 誤字った 関数指向宣言型プログラミング言語
236 :デフォルトの名無しさん :2014/09/12(金) 20:06:23.28 ID:Iy5dUXcN.net 略して関数型言語
237 :1 :2014/09/13(土) 11:02:47.39 ID:NSrcGDnS.net connect4をみんな大好きhaskellに移植したぞ。 こんどこそ添削たのむな。 http://www.age2.tv/rd05/src/up4254.txt
238 :1 :2014/09/13(土) 19:54:59.71 ID:NSrcGDnS.net >>237 のコードは一手打つたびに盤面を丸コピーしてると思うんだが そこらへんコンパイラが上手いことやってくれてるの?
239 :デフォルトの名無しさん :2014/09/14(日) 00:53:22.93 ID:N78ccrO0.net 囲連星で
240 :デフォルトの名無しさん :2014/09/14(日) 07:25:06.11 ID:3VDbXkPO.net >>237 letのかわりにwhereで、 ifのかわりにパターンマッチで書き換えれば Haskellっぽくなる。
241 :1 :2014/09/14(日) 10:08:34.40 ID:rj6ubMt8.net >>239 そんなに囲連星AIがほしけりゃ自分で作れよ。なんで人にやらせようとするんだよ。 >>240 添削ありがとうございます。 whereは変数を定義する前に参照してるみたいで気持ち悪いです。 まあ、慣れの問題なんでしょうが。
242 :デフォルトの名無しさん :2014/09/14(日) 15:18:34.44 ID:sID153LP.net 最初のほうだけ読んだけど、 言語知らなすぎだろ。 それで言語作ろうなんて、10年早いわ。 もっとも、実用性なんてどうでもいい。 言語作ってみたいとか、作ることで、プログラミングというものを知りたいってのなら、 まったくもって問題無く、むしろ頑張れって感じだけど。
243 :1 :2014/09/14(日) 15:57:37.44 ID:rj6ubMt8.net >>239 ちなみに囲連星AIは昔作ったことある。 もっといえばゲ制作板の囲連星AIスレの380は俺だ。 ちなみに9路囲連星のGUIを作ったのも俺。 囲連星は一回やってもう挫折してるんだよ。 >>240 とりあえず、パターンマッチにしてみました。 letはそのまんま。だってwhereきもいんだもん。 http://www.age2.tv/rd05/src/up4284.txt.html >>242 まあな。俺の実力じゃ実用的な言語を作るのは無理だろうな。 でもそれはほとんどのプログラマがそうだろ。 実用的な言語つくれるプログラマなんて一握りだろ。 もっといえば実用的な言語って一人で作れるようなものじゃないだろ。
244 :デフォルトの名無しさん :2014/09/14(日) 16:15:43.91 ID:w3keaoOy.net 囲連星ってそんなに難しいか? やってみるか。
245 :デフォルトの名無しさん :2014/09/14(日) 16:39:35.29 ID:sID153LP.net >>243 自分がそうだからって、 「ほとんど」とか、他の人を巻き添えに足引っ張るな。 自分の未熟さを棚に上げる愚かな行為だ。 RubyのMazsとか、言語オタクだぞ。 そうじゃなきゃ作れないってことだ。
246 :1 :2014/09/14(日) 17:59:15.91 ID:rj6ubMt8.net >>244 がんばれ、応援するよ。LV3越えは俺の悲願でもあるから。 だれかほかの人でも達成してくれたらうれしい。 できあがったらゲ制作の囲連星AIスレで報告してくれ。 >>245 そこでMatzみたいなスーパースター引き合いに出してどうすんだよ? Matsは一握りかほとんどかで言ったら明らかに一握りだろ。 そのMatzにしたってRubyコミュニティの支えなしじゃここまでやれなかっただろ。 だいたいGoとかD言語みたいなスーパースターたちが作った言語だって はたして「実用」と呼べるほどのユーザーを獲得してるかどうか。 言語をつくるって大変なことだと思うよ。 まあ、自分の未熟さを棚にあげてるのはそうかもしれんが。
247 :1 :2014/09/14(日) 18:14:29.35 ID:rj6ubMt8.net あら、MatzがMatsになってた。 誤字すまん。
248 :デフォルトの名無しさん :2014/09/14(日) 18:30:48.41 ID:s+BV7Cb9.net 新言語かぁ‥誰しも夢見るね‥haskell が圏論というのであれば、今後新言語を作るとすれば何を足がかりにすればいいのか?
249 :デフォルトの名無しさん :2014/09/14(日) 19:26:12.34 ID:r0J72yK/.net Haskell自体は圏論ベースじゃないぞ。 モナドだけ。
250 :デフォルトの名無しさん :2014/09/14(日) 19:33:25.07 ID:s+BV7Cb9.net そうなのか‥懐かしい名前、大熊正先生の著書をヤフオクでえらい高い値段でgetしてしまった(無論、読めやしない‥専門書って大変だね‥)が、無意味だったようだね
251 :デフォルトの名無しさん :2014/09/14(日) 20:19:23.00 ID:NJi0vj84.net 集合論に基づく言語は、SIMDやメニーコアが発展していくうちに普通になると思うけど、 今は、C++をシンプルにした感じのスクリプト言語が欲しい。 まだ、集合論に基づく言語が手続き型を超える性能を出せる環境になってないから。
252 :1 :2014/09/14(日) 20:55:06.50 ID:rj6ubMt8.net 結局、ハードの作りが根本から変わらん限り C/C++を超える言語は現れないんじゃないかな。 超えるっていってもどういう意味で超えるのか微妙だけど。
253 :デフォルトの名無しさん :2014/09/14(日) 21:30:29.03 ID:s+BV7Cb9.net C の言語仕様にキャリーフラグを含めてほしかった‥ちょっと今苦戦中
254 :1 :2014/09/14(日) 22:27:09.05 ID:rj6ubMt8.net C言語の言語仕様だけでキャリーフラグって実現できるんだっけ? できるんだろうけど、ぱっと思いつかないな。
255 :デフォルトの名無しさん :2014/09/14(日) 22:52:20.28 ID:r0J72yK/.net これ参考になるかも ttp://d.hatena.ne.jp/tociyuki/20140906/1410012689
256 :1 :2014/09/14(日) 22:53:39.24 ID:rj6ubMt8.net 最悪、すべての演算結果をテーブル化しておけば実現できるなw 効率的にはどうやるんだろう?
257 :1 :2014/09/14(日) 22:54:40.97 ID:rj6ubMt8.net おおっとリロードしてなかった。
258 :デフォルトの名無しさん :2014/09/15(月) 00:55:12.74 ID:MGTym664.net ts
259 :240 :2014/09/15(月) 06:10:27.36 ID:8SU9zqnx.net >>243 たとえば、 let c = map digitToInt ( filter isDigit s) は let c = map digitToInt . filter isDigit $ "123" にできる。 さらに、 s_to_line :: String -> [Int] s_to_line = map digitToInt . filter isDigit と関数を定義しておいて、 let c = s_to_line s とすると、ググッとHaskellっぽくなる。
260 :1 :2014/09/15(月) 10:47:17.06 ID:bIq53OoI.net >>259 これが関数の合成ってやつか。 すごく…気持ち悪いです。 なれれば快感になりそうだが。
261 :1 :2014/09/15(月) 11:16:32.32 ID:bIq53OoI.net しかしOcamlよりhaskellのほうが書いててたのしいな。 なんでだろう?
262 :デフォルトの名無しさん :2014/09/15(月) 15:28:20.49 ID:kzUO2epp.net 写真には写らない美しさがあるから
263 :デフォルトの名無しさん :2014/09/15(月) 16:34:50.30 ID:kAk3iSbn.net リンダリンダ〜♪
264 :1 :2014/09/15(月) 16:46:42.27 ID:bIq53OoI.net だれか>>243 のコードのplayの関数を、一手打つごとに盤面を丸コピーしないで済むように改善してください。 よろしくお願いします。
265 :1 :2014/09/15(月) 20:32:54.71 ID:bIq53OoI.net >>259 修正しました。仮引数ないと違和感ありますね。 http://www.age2.tv/rd05/src/up4346.txt.html
266 :240 :2014/09/16(火) 09:53:54.34 ID:Qs6Ucf5H.net >>264 http://hackage.haskell.org/package/matrix-0.3.4.0/docs/Data-Matrix.html
267 :1 :2014/09/16(火) 19:15:18.40 ID:bFn0xUvd.net >>266 MatrixのsetElemは丸コピーじゃないの? 丸コピーじゃないなら参照透過性はどうなるの?
268 :デフォルトの名無しさん :2014/09/16(火) 19:28:35.09 ID:i9frET+F.net 参照透過性は、プログラマが気にすることではない。 コンパイラ、言語が気にすること。 純粋関数型言語は、参照透過性に違反できないのが原則。 純粋関数型でコンパイルが通れば参照透過性がある。
269 :1 :2014/09/16(火) 19:43:03.56 ID:bFn0xUvd.net >>268 それじゃ丸コピー?
270 :1 :2014/09/16(火) 20:03:52.99 ID:bFn0xUvd.net setElemの計算量オーダーが書いてないな。 ほかのは書いてあるのもあるのに。
271 :デフォルトの名無しさん :2014/09/16(火) 20:35:47.52 ID:+Ut5bl5+.net >>269 純粋関数型言語における配列の実装は、 一般的には B-Tree またはその亜種を用いるのが一般的 で、常識的には更新する要素とは無関係な部分ツリー(への参照)を そのまま(更新後の)新しい配列に引き継ぐから、丸コピーにはならない (Data.Matrixのソースを確認した訳じゃないんで、あくまで一般論であることに注意) また、配列を利用するアプリケーション側でも、必要な複数の更新操作を関数合成で まとめてから適用するのが一般的だから、更新のオーバヘッドもさほど気にならない 更に言えば、>>243 のように(ライブラリを用いず)自前でリストを配列に見立てて 配列操作を実装するのは自由な選択だけど、メモリ効率を考慮しなければならないケースであれば、 (>>243 のように)配列更新のたびにリストを丸コピーするのは、お馬鹿さんと言うしかない リストの一要素だけを更新する時、更新した要素の tail リストは更新後のリストと共有できるはずだ 最後に、こういったパズル/ボードゲーム系の全解探索問題を記述する場合、何も考えず ゲームの局面ごとに盤面全体を丸々コピーするコードを書いてしまうのは、純粋/非純粋な関数型に限らず 手続き型プログラミングであったとしても初心者レベルのコード設計力だと見なすしかない 通常、チェスや将棋のように膨大な空間を探索しなければならないゲームのプログラミングでは、 プレイの「一手(いって)」に関する情報だけを局面として記憶し、差分として管理する
272 :1 :2014/09/16(火) 20:55:03.92 ID:bFn0xUvd.net ふーむ。 たしかにツリーをつかえば丸コピーは避けられるかもしれないな。 勉強になりました。
273 :1 :2014/09/16(火) 21:47:36.14 ID:bFn0xUvd.net Data.Matrixがないって言われる… なぜ? $ ghc connect4_4.hs connect4_4.hs:3:8: Could not find module ‘Data.Matrix’ Perhaps you meant Data.Ratio (from base) Data.Ratio (needs flag -package haskell2010-1.1.2.0) Use -v to see a list of the files searched for. $ ghc --version The Glorious Glasgow Haskell Compilation System, version 7.8.3
274 :240 :2014/09/16(火) 22:18:12.61 ID:Qs6Ucf5H.net >>273 cabal install matrix
275 :1 :2014/09/16(火) 22:31:31.46 ID:bFn0xUvd.net >>274 ありがとうございます。コンパイルできました。 でも[[Int]]をMatrixに置き換えたらバグが発生。 ただいまデバッグ中です。
276 :デフォルトの名無しさん :2014/09/16(火) 22:50:04.77 ID:fJmUlCeF.net >>253 アセンブラ以外で言語仕様にキャリーフラグが関与する演算子があるのは TL/1 しか見たことない
277 :1 :2014/09/16(火) 23:22:16.78 ID:bFn0xUvd.net Matrix版できたっぽいのであげます。 http://www.age2.tv/rd05/src/up4372.txt Matrixのindexは1から始まるそうなのでそれに合わせて外部仕様も変更しました。 いままでは列の指定が0〜6だったのが1〜7になります。 今思えば外部仕様まで変えることはなかったような気もしますが後の祭り。
278 :デフォルトの名無しさん :2014/09/16(火) 23:34:02.05 ID:i9frET+F.net よく知られてるゲーム、GUIのあるゲームで頼む。 麻雀、OTHELLO、将棋、囲連星はwindowsGUIはある。
279 :1 :2014/09/16(火) 23:38:22.55 ID:bFn0xUvd.net 習作だから実用性はあんまり求めてないんだよなぁ。 connect4は小さい割に動いてるもの作ってる気になれるから気に入ってる。
280 :240 :2014/09/17(水) 06:12:56.94 ID:Rq9rJBGz.net >>277 結構よいのでは。 しつこいけど、whereは1度使ってみたらいいんじゃないかなあ。 letで頭から読む/書くという感覚もわかるけど、 whereを使うと、1つの関数定義全体を宣言的に読む/書く感覚がわかると思う。
281 :デフォルトの名無しさん :2014/09/17(水) 12:19:24.89 ID:pJCF9C7A.net >>268 >参照透過性は、プログラマが気にすることではない。(略) >純粋関数型でコンパイルが通れば参照透過性がある。 コンパイル通るかどうか気にする必要あるじゃんかw
282 :デフォルトの名無しさん :2014/09/17(水) 13:02:50.04 ID:Rq9rJBGz.net >>268 > 純粋関数型でコンパイルが通れば参照透過性がある。 え?純粋関数型で型検査によって参照透明性を確保しているのはHaskellぐらいでは。 Haskell以外の、例えばMirandaやClean等の他の純粋関数型言語では、 型システムに依存せずに言語機能を制約して参照透明性を確保している という理解なんだが。
283 :デフォルトの名無しさん :2014/09/17(水) 13:40:46.72 ID:Fq6HYI62.net 参照透過性は型とは関係ないだろ? 型があってもなくても破壊的代入があったらアウト。
284 :デフォルトの名無しさん :2014/09/17(水) 13:41:37.54 ID:pJCF9C7A.net ちょっと本題から外れるが。 たしかに本格的に型システムと一体化させたのはHaskellからだけど、 Mirandaから参照透過性に対して型システムは使い始めてる。 MirandaでKAOSってOSを記述した時のinteract型が、 Miranda本体にも取り入れられてる。 この時に導入されたcomp, returnがmonadタイプの定式化の元になった。 E. Moggiが"Notions of computations and monads"で定式化して。 Haskellを設計、開発することになったのは、 この辺を本格的にやろうと思うとオープンソースじゃないとやりにくいから。
285 :デフォルトの名無しさん :2014/09/17(水) 14:19:32.02 ID:Rq9rJBGz.net >>284 確かにMirandaの評価戦略でのIO絡みの例外的扱いは、 HaskellのIOモナドの原型っぽい感じだな。
286 :1 :2014/09/17(水) 19:25:16.95 ID:zOPUPbSB.net >>280 where使ってみました。 ただ、gameの中のletはどうやってwhereにすればいいかよくわからなかったのでletのままです。 http://www.age2.tv/rd05/src/up4389.txt
287 :240 :2014/09/18(木) 17:39:55.46 ID:gCmSXIgb.net >>286 doの中のletは仕方ない。そういうもの。 もう普通にHaskell入門レベルはクリアしてると思う。 不要な括弧が結構あるけど、それは単に慣れの問題だから構わないと思う。 おつかれさん。
288 :1 :2014/09/18(木) 19:52:18.04 ID:WHOt2iCh.net >>287 ありがとうございます。 haskell触ってみたけど、今のところ関数型言語や参照透過性の有難さはあんまり実感できてない。 CPUのコアがもっと増えてコンパイラの最適化が今より強力になったらどうかわからんが、 C/C++より効率的なコーディングをするのは難しそう。 かといって生産性が劇的にあがるかというとそんな感触もなかった。 RubyにはC/C++より生産性高いと思わせるなにかがあったが haskellとRubyを比べた時、はたしてhaskellのほうが生産性高いかといわれると? もうちょっとデカいアプリを組んでみる必要があるのかもしれんが。 とりあえず、haskellでコーディングされた実用的で有名なアプリがあれば教えてほしいです。
289 :デフォルトの名無しさん :2014/09/18(木) 19:55:50.99 ID:7eeU4PcQ.net Monadius 1985年5月29日、そのゲームは、全国のゲーマーに衝撃を与えた。 らしい。 僕はよく知らない。そのときまだ生まれたばかりだったからだ。 20周年をむかえたグラディウスと、 ゲームを、ゲームプログラミングを愛する人たちに感謝を込めて贈る。 http://www.geocities.jp/takascience/haskell/monadius_ja.html
290 :1 :2014/09/18(木) 20:11:37.12 ID:WHOt2iCh.net >>289 これはすごいかも。
291 :1 :2014/09/19(金) 19:22:36.10 ID:KT7u8M0C.net >そういうデータの一塊であるMonadiusが、 updateMonadius, renderMonadius, isMonadiusOverという演算に関してGameを成す、と宣言されています。 これが圏論ってやつ?
292 :デフォルトの名無しさん :2014/09/19(金) 19:58:12.78 ID:vmyXN9M9.net 数学得意なら圏論から攻めてもいいと思うけど、 モナドは圏論わからなくても使うことはできるので...
293 :1 :2014/09/19(金) 20:19:26.79 ID:KT7u8M0C.net 数学は好きだけど下手の横好きだな。 >>291 のことがわかればもうちょっとhaskell好きになれそうなんだけど。
294 :240 :2014/09/19(金) 21:47:04.42 ID:3WQN+no2.net >>293 それ自体は圏論じゃなくて型クラス。 型gがGameクラスであるためには そのupdate, render, isGameoverの3つのメソッドが必要だと宣言されていて、 Monadius型はGame型クラスのインスタンスです、 メソッドはそれぞれupdateMonadius, renderMonadius, isMonadiusOverになります、 というもの。
295 :1 :2014/09/19(金) 22:15:41.15 ID:KT7u8M0C.net >>294 よくわからんがC++のテンプレートやjavaのインターフェースともちょっと違う感じ?
296 :デフォルトの名無しさん :2014/09/19(金) 22:17:11.20 ID:uV7lv+mi.net これは最近よく目にするfilter-map-reduceとは違うの?
297 :240 :2014/09/20(土) 07:19:58.23 ID:p45kbQiW.net >>295 型クラスは値ではなくて型のクラスってところがユニーク。 Haskellの型クラスはJava等のインターフェースより柔軟に使える。 Java等のインターフェースとクラスの関係は、 クラスを定義する時に「このインターフェースを実装します」と宣言するけど、 Haskellの型クラスでは、型クラスと型をそれぞれ別々に定義した上で、 「この型はこの型クラスのインスタンスだよ」と宣言する。 つまり、既存の型や既存の型クラスを使って、後から 「この型をこの型クラスのインスタンスとして使うよ」ということができる。 実は、286のコードでも型クラスのメソッドが多数使われている。 Ord型クラスのメソッドの>とか<とか、Eq型クラスのメソッドの==とか。 あと、game関数やmain関数の型を見ると、IO型クラスを使っていることがわかる。
298 :デフォルトの名無しさん :2014/09/20(土) 12:34:10.95 ID:rTgfsjb+.net C++14で型クラス的なconceptってのが入りそうになったけど、 時期尚早ってことで見送られた。 次にStroustrupが簡略化した版が入る予定。
299 :デフォルトの名無しさん :2014/09/20(土) 17:49:48.64 ID:k+DS8D97.net >>1 は何をしたいんだ。 関数型言語は効率が悪そうたって、「集合論に基づいた言語」とかいうのはもっと効率が悪くなるだろうに。
300 :1 :2014/09/20(土) 22:48:20.83 ID:YTPHYjLC.net >>297 すいません。後付けできるってのがよくわからないです。 コンパイル時には明示的に宣言しないといけないのは型クラスもインターフェースも同じですよね? >>299 集合論に基づいた言語は教科書の章末問題をサクサクっとインプリメントすることを目的としてる。 実用性はあんまり求めない。
301 :デフォルトの名無しさん :2014/09/20(土) 23:24:10.24 ID:rTgfsjb+.net http://en.wikibooks.org/wiki/Haskell/Classes_and_types のA concerted exampleと同じことをtype classなしで書いてみれば? type classがあると細々としたことまで、 少ないコード量で強く型付けできることが分かるはず。
302 :デフォルトの名無しさん :2014/09/21(日) 13:51:15.50 ID:jEJWijVn.net >>288 > haskell触ってみたけど、今のところ関数型言語や参照透過性の有難さはあんまり実感できてない。 参照透明の良さっていうのは、逆から言うと、状態が沢山あるコードはクソだ、ってこと。 停止性問題で難題になったのは、状態が少し増えるだけで組み合わせの数が爆発すること。 再代入が減らせれば、コードの複雑性が減ることがあるから、参照透明がありがたい。 関数型の良さは、宣言型言語であること。参照透明は関数型言語の目的ではなく、それを必要としているというだけだ。 生産性が劇的に上がるかというと、c++でテンプレートメタプログラミングしてる人からそれを取り上げたら劇的に生産性が下がると言うだろうし、const をc++から取り除いても劇的に生産性が下がるだろう。 Ruby と haskell を比べても仕方ない。 一つのプロジェクトで一つの言語しか使えないわけではないのだから、部分によって、書きやすい言語、高速な言語、ライブラリの充実した言語を使い分ければよい。 そして Ruby でも関数型スタイルで一部を書くことができる。 なんかちょっと固定観念が強い気がする。 あとコンピュータサイエンスと言語の歴史を知らないのにあれこれ分かったつもりになってるように見えるのが不安。
303 :デフォルトの名無しさん :2014/09/21(日) 14:55:43.06 ID:hG2OFVWB.net 「集合論に基づいた言語」をつくるうえで参考になるかもしれないということで関数型言語の話が 出てきているんだろうけど、>>1 はそれについて、参考になったとか、自分が考えているのとはこう違うから 参考にならなかったという話はせず、効率やら生産性の話をするんだよな。 「集合論に基づいた言語」で効率や生産性の向上を目的としてないなら、関数型言語で効率や生産性の向上が なくてもどうでもいいことだと思うけど。
304 :デフォルトの名無しさん :2014/09/21(日) 15:30:26.77 ID:hG2OFVWB.net 無限集合を扱おうとすれば、関数型言語にあるような遅延評価か、論理型言語にあるような全解収集をするしかないだろ。 要素の重複を認めないのなら、生成されたものがすでに集合に含まれているかどうか調べるためのしくみも必要だし。 集合の包含関係はどのように調べるんだろ。 それとも数式処理のようなものを考えているのかな。
305 :1 :2014/09/21(日) 16:27:12.72 ID:iz+Z8HKh.net >>302 関数型言語には状態がないってのはなんとなくしっくりこないなぁ。 状態はあるけど考慮しなきゃいけないスコープが関数の引数に限られるってイメージなんだが。 あと、参照透過性を守ったって停止性問題が根本的に解決するわけじゃないよね? >なんかちょっと固定観念が強い気がする。 まあ、おれもいいおっさんだからな。 それなりに固定観念はあるだろう。 >あとコンピュータサイエンスと言語の歴史を知らないのにあれこれ分かったつもりになってるように見えるのが不安。 これは自覚症状ないんだが。たとえばどの辺が分かったつもりの発言になってる? >>303 言語を評価するとなったら効率か生産性かだろう。 集合論に基づいた言語では狭い領域の問題に限り(教科書の章末問題とか) 高い生産性を発揮することを目標にしてる。 関数型言語触ってみたけど>>286 のコードに関していえばヒントになるようなものはなかった。 型クラスとかは勉強すれば面白いのかもしれん。
306 :1 :2014/09/21(日) 16:55:50.54 ID:iz+Z8HKh.net >>304 無限集合は扱いが難しいので、できれば無しの方向で。
307 :デフォルトの名無しさん :2014/09/21(日) 19:35:49.05 ID:hG2OFVWB.net 無しの方向ってどうするの? 自然数全体の集合等を扱わないとか、内包的記法を扱わないとか。
308 :1 :2014/09/21(日) 20:23:58.88 ID:iz+Z8HKh.net 自然数全体の集合の部分集合は基本的に表現するのに無限のビットを必要とするので。 遅延評価とか使えばある程度ごまかせるかもしれないけど、 遅延評価つかっても無限集合の包含関係とかは計算不能な場合もあるので、無限集合は扱わない方向で。 内包的表記は有限集合だけに使えるようにするとか。
309 :デフォルトの名無しさん :2014/09/21(日) 20:27:48.01 ID:WCtTxfaP.net ∞という数・文字をあつかえばいい。 { 2n | n=1,・・,∞}は無限集合。
310 :デフォルトの名無しさん :2014/09/21(日) 20:40:29.63 ID:WCtTxfaP.net 無限大を扱うのも無限小を扱うのも似通ったもので。1/xで反転するので。 時空間で無限小を扱わない量子重力理論を思い出した。 時空の原子を追うループ量子重力理論 L.スモーリン(カナダ・ペリメター理論物理学研究所) 私たちは空間も時間も連続したものだと考えているが,実は大間違いかもしれない。 相対論と量子力学の統合を目指す新理論によると,「時空の原子」が存在する。 アインシュタインが果たせなかった難問解決の道筋が見えてきた。 量子力学と一般相対論の基本原理を注意深く組み合わせることで,「ループ量子重力理論」が生まれた。 この理論によると,空間は個別の小さな塊からできていて,最小の塊の体積はおよそ1立方プランク長(10-99cm3)だ。 時間の進みは飛び飛びで,その最小単位はおよそ1プランク秒(10-43秒)となる。 ループ量子重力理論は純粋に理論的な研究の成果だが,実際に検証できる可能性がある。 例えば,空間の構造が離散的だとすると,そこを伝わる光のスピードは波長によってわずかに異なる。 この観測が可能な天文衛星が計画されており,時空の離散的構造から生まれる効果が近い将来に確かめられるだろう。 http://www.nikkei-science.com/page/magazine/0404/loop.html
311 :1 :2014/09/21(日) 20:47:19.79 ID:iz+Z8HKh.net >>309 簡単にいうけど、実際に実装するのは結構難しいんじゃないかな。
312 :デフォルトの名無しさん :2014/09/21(日) 20:49:08.07 ID:WCtTxfaP.net 量子重力理論でフリードマン方程式に到達 ―築き上げられた「ミクロからマクロへの架け橋」 「ビッグバンの只中に何が起こっていたのか」ということについては、現行の物理学では説明を下すことができない。 この二つを統合させた「全方位的な」理論 が――量子重力理論が ――求められているところであり、研究が進められている。 この度、ドイツとカナダの研究チームによってPhysical Review Lettersに発表された重大な発見は、まさにこの路線に沿ったものだ。 発表された理論によれば、空間はこれ以上分割することのできない、ほんの小さな「土台、構成要素 (building blocks)≒ 素空間」からできているという。 この着想を出発点として彼らが到達したのは、宇宙論の方程式のなかでも最も肝要なものの一つとして見なされている「フリードマン方程式」だ。 今回の成果は、量子力学と相対論が実際に統合可能であるということを示している ―― http://livedoor.blogimg.jp/dogon23/imgs/a/4/a4fed584.jpg アインシュタインによる一般相対性理論では重力が扱われており、言うなれば「マクロな世界」を一般的に記述するのが相対論だ。他方、量子力学が扱うのは原子や素粒子といったような「ミクロの世界」だった。 両理論ともに、それぞれの縄張りの領域では成功を収めてきたが、プランクスケールのような極限的な状況においては破綻してしまう、という難点が指摘されていた。 水が原子から構成されているのとまったく同じように、空間はある種の「原子」から ――素空間から ――構成されているのではないか、とOriti氏は想像している。 そして、二つの理論を統合することのできるような新たな理論ではこの「空間の原子」を記述することが切に求められるというわけであり、その理論が冒頭でも触れた「量子重力理論」だ。 アインシュタインの相対論では、時空は連続的なものとして捉えられている。 しかし、Oriti氏らによる数学的なタスクでは、空間を極小の「素空間」へと分解して、これに量子力学を適用させることが試みられた。 それにより空間に、ひいては空間を記述する相対論に量子力学を応用してみる、というのがチームの企てだった。 http://livedoor.blogimg.jp/dogon23/imgs/7/2/7207d807.jpg http://blog.livedoor.jp/dogon23/archives/31545793.html
313 :デフォルトの名無しさん :2014/09/21(日) 22:44:17.86 ID:eogfeBgw.net >>308 >無限集合は扱わない >内包的表記は有限集合だけに使えるようにする こういうのはどうするんだ? p(a,b) : a,bは(0以外の)自然数で、aはbで割り切れる としたとき、 {x|p(x,1)} = {1,2,3,…} {x|p(1,x)} = {1}
314 :デフォルトの名無しさん :2014/09/22(月) 01:03:15.50 ID:SEYHtX5N.net >無限集合は扱わない方向で。 オートマトンが受理する列の集合が無限集合になることもあるけど それも扱わないのか? >>83
315 :デフォルトの名無しさん :2014/09/22(月) 01:29:01.36 ID:1b5tK9XE.net ZFC
316 :デフォルトの名無しさん :2014/09/22(月) 01:30:24.14 ID:1b5tK9XE.net ブール代数
317 :デフォルトの名無しさん :2014/09/22(月) 01:32:50.90 ID:1b5tK9XE.net 3値論理
318 :1 :2014/09/22(月) 06:51:14.13 ID:XoUFao4y.net >>313 両方扱わない。 それは、p(1,x)の計算結果がたまたま有限集合になってるだけで、 定義域は無限集合なので扱わない。 >>314 オートマトンが受理する列の集合を変数として扱うことはしない。 関数として受理するかしないかを判定することはもちろんできる。 >>315 ZFCから導き出される真の式の集合とかは変数として扱わない。 >>316 ブール代数は基本的に有限だよね? >>317 マイナーすぎじゃね?
319 :デフォルトの名無しさん :2014/09/22(月) 06:55:11.39 ID:3ofAPdb2.net >>318 では逆に、HaskellやPythonのリスト内包表記じゃダメな理由は?
320 :1 :2014/09/22(月) 08:32:07.69 ID:XoUFao4y.net 遅延評価が必要になる。 めんどくさい割に実用的じゃないと思う。 haskellの無限リストを使うときだって最後はtakeとか使って有限集合に落とすんでしょ?
321 :デフォルトの名無しさん :2014/09/22(月) 11:31:48.61 ID:mNTZ+4bu.net >>291 何の関係もない。
322 :デフォルトの名無しさん :2014/09/22(月) 11:34:43.17 ID:mNTZ+4bu.net >>305 >状態はあるけど考慮しなきゃいけないスコープが関数の引数に限られるってイメージなんだが。 それが関数に状態がないということ。 引数が同じなら同じ結果を返す。 数学的な関数の定義に等しい。
323 :デフォルトの名無しさん :2014/09/22(月) 12:49:44.48 ID:jhj0pzxy.net > haskellの無限リストを使うときだって最後はtakeとか使って有限集合に落とすんでしょ? takeのように単純な関数だとは限らない。 ゲーム木の探索の枝刈りのようなややこしい条件で止めたりするから意味がある。 まあただtwitterで、らくだの人と川の人が時々論戦しているように、デフォルトで なんでもかんでも遅延か、遅延にしたいものだけ明示的に遅延にするのが良いのか? は、まだ結論が出ていないとは思う。
324 :デフォルトの名無しさん :2014/09/22(月) 15:09:16.19 ID:SUbucwZ9.net 無限集合を扱わないで >教科書の章末問題をサクサクっとインプリメントする のはちゃんとできるのかな。 できるんだったら >>15 みたいなことを言わずに最初から有限集合に限定と言えば良いわけで。
325 :デフォルトの名無しさん :2014/09/22(月) 16:52:16.32 ID:4aSBsr7P.net 有限集合限定なら言語なんか作らずにライブラリで済むんじゃないか。 それにライブラリ作らなくても、Maximaなら要求よりももっと複雑なこともできる。
326 :デフォルトの名無しさん :2014/09/22(月) 17:18:16.63 ID:LvPIFofq.net A. 無知ゆえに(ありきたりな)発想が溢れている人、行動力がある人 B. 知識でがんじがらめになって発想が死んだ人 たいがいこのどっちかに当てはまってしまう。そして結局このスレもAとBとの対立構造に終始して終わる。
327 :1 :2014/09/22(月) 18:14:10.47 ID:XoUFao4y.net >>322 そういわれるとそんな気もしてきますね。 >>323 ゲーム木の探索で遅延評価使うとminmaxがαβになったりするんでしょうか。 さすがにそこまではない? >>324 無限集合を使って生産性が上がる例があるなら教えてほしいです。 無限集合は面白い概念だけど扱いが難しい。 正直>>15 のときは無限集合の実装の大変さの見通しが甘かったと言わざるを得ない。 >>325 >有限集合限定なら言語なんか作らずにライブラリで済むんじゃないか。 その可能性はありますね。 >それにライブラリ作らなくても、Maximaなら要求よりももっと複雑なこともできる。 Maximaは昔少しだけ触ったことあるけど色んな事が出来るっぽいですね。 素因数分解とかやらせてみたことあります。 >>326 まあ、最悪なにも形あるものは生み出せなくても私は勉強になってますけどね。
328 :デフォルトの名無しさん :2014/09/22(月) 19:40:23.96 ID:3ofAPdb2.net >>326 Aのほうが遥かにマシだな。 ありきたりでも行動していればそのうちありきたりじゃない発想が出る。 行動する人に対して既存の知識を振り回して笑うことしかできない奴は いつまでたっても何もつくれない。
329 :デフォルトの名無しさん :2014/09/22(月) 20:07:25.83 ID:SUbucwZ9.net >>327 生産性が上がる例とかいうのは知らんけど。 俺が何冊か見た集合論の教科書は無限集合を扱ったものばかりだったから、 無限集合を扱えない処理系で >教科書の章末問題をサクサクっとインプリメントする なんてできるのかな と思った。 無限集合を扱っている教科書を想定してたから>>15 になったんだろ?
330 :デフォルトの名無しさん :2014/09/22(月) 20:21:24.00 ID:4th1shUN.net あたし中卒やからね 仕事をもらわれへんのやと書いた 女の子の手紙の文字は とがりながら震えてる ガキのくせにと頬を打たれ 少年たちの眼が年をとる 悔しさを握りしめすぎた 拳の中 爪が突き刺さる
331 :1 :2014/09/22(月) 20:46:51.62 ID:XoUFao4y.net >>329 >>15 は>>13 で話振られたから答えただけ。 実は集合論の教科書はあんまり想定してなくて、離散数学の教科書を想定してた。
332 :デフォルトの名無しさん :2014/09/22(月) 21:29:11.48 ID:UZeuYMIm.net 集合を言語へどう使うか決まってないし、有限・無限とか細かい部分を決めても意味ないだろ。 スタンダードな言語に対して、集合が扱える仕組みが取り込めばいいだけなのかとか。
333 :デフォルトの名無しさん :2014/09/22(月) 21:48:28.53 ID:m1LWUU3t.net 集合論の教科書を想定せずに >発想から徹底的に集合論的思想で言語仕様を考える と言ってたのか… で、結局、有限集合限定だから >言語なんか作らずにライブラリで済む んじゃないか、と…
334 :デフォルトの名無しさん :2014/09/22(月) 21:54:05.38 ID:LvPIFofq.net ライブラリを作ってみてライブラリではここが不満だって気づいてから言語作り始めても遅くない。 そういう下地があると1ヶ月くらいでコンパイラを書ける。凡人でも。
335 :デフォルトの名無しさん :2014/09/22(月) 21:56:13.85 ID:Q+rXpvQc.net >>330 ファイト!
336 :デフォルトの名無しさん :2014/09/22(月) 21:58:03.07 ID:M8xWvQpL.net >>332 >有限・無限とか細かい部分を決めても意味ないだろ。 一番大きい部分だろw
337 :デフォルトの名無しさん :2014/09/22(月) 22:23:43.15 ID:UZeuYMIm.net >>336 どういう用途に使うかに強く依存する。 たとえば、プログラムコードは有限だから、それを有限集合で表現するのは可能だろう。 最初に何に使うのかが決まらないと、有限・無限はどうするか決まらない。
338 :デフォルトの名無しさん :2014/09/22(月) 22:31:18.61 ID:M8xWvQpL.net >>337 >たとえば、プログラムコードは有限だから、それを有限集合で表現するのは可能だろう。 何言ってるかさっぱり分からん。 >有限・無限とか細かい部分を決めても意味ないだろ。 とどう関係するんだ?
339 :デフォルトの名無しさん :2014/09/22(月) 22:51:19.51 ID:UZeuYMIm.net 任意のプログラムコードを、ある自然数に対応させることは可能のはずだ。この値は有限値で。 具体的には、ゲーデル文構成のようにしたらいいと思うが良くはわからん。 ゲーデルの不完全性定理 - Wikipedia ゲーデルの不完全性定理とは、数学基礎論における重要な定理の一つで、クルト・ゲーデルが1930年に証明したものである。 ゲーデル文の構成 ゲーデル数というテクニックを使って間接的に自己言及を可能とし、ゲーデル文を構成する。 コンピュータでは全てのデータを一意な数値で表しており、特に文字列や論理式そして論理式の列も数値で表す。 このように、論理式を数値で表す行為を論理式のゲーデル数化といい、命題Pに対応する数値をPのゲーデル数という。
340 :デフォルトの名無しさん :2014/09/22(月) 22:56:41.54 ID:UZeuYMIm.net ゲーデル数 - Wikipedia ゲーデル数は、数理論理学において何らかの形式言語のそれぞれの記号や整論理式に一意に割り振られる自然数である。 一般化 計算可能性理論において、「ゲーデル数化」は上述よりさらに一般化した意味を持つ用語として使われる。 1.形式言語の構成要素に自然数を割り当てて、形式言語の構成要素の操作を、数を操作するアルゴリズムでシミュレートできるようにする。 2.より一般化して、枚挙可能な数学的オブジェクトに自然数を割り当てて、その数学的オブジェクトにアルゴリズム的操作ができるようにする。 これは数というよりも文字列を操作する計算模型(チューリングマシンなど)に必須の考え方である。 チューリングマシン - Wikipedia チューリング機械とは次の7つ組である。 http://upload.wikimedia.org/math/6/3/d/63d3280aa62307d33bea8f0e64f4dac7.png Q は有限集合であり、その元を状態という。 Γ は Q に交わらない有限集合であり、字母とよばれる。その元を記号という。 b は Γ の元であり、空白記号とよばれる。 Σ は Γ - {b} の部分集合であり、入力字母とよばれる。その元を入力記号という。 δ は Q × Γ から Q × Γ × {left, right} への写像であり、遷移函数とよばれる。δ(q, a) = (q', a', m) は、 「現在の状態が q であり、着目位置にある記号が a であれば、状態を q' に移し、着目位置に記号 a' を書き込んでから、着目位置を m 方向に1つずらす」と読む。 qinit は Q の元であり、初期状態とよばれる。 qacc は Q の元であり、受理状態とよばれる。
341 :デフォルトの名無しさん :2014/09/22(月) 23:19:51.98 ID:M8xWvQpL.net お前アホだろ。 >プログラムコードは有限だから ってコード長が有限ってことを言いたかったのかよ。
342 :デフォルトの名無しさん :2014/09/22(月) 23:51:04.16 ID:UZeuYMIm.net 言語の開発以前に、無限にするか、有限にするか決めたとして。 有限の範囲ではおさまらない具体的な例・モデルってあるのか? 既存のコンピュータ、ノイマン型は、有限集合で操れるから具体的にイメージ出来ない。
343 :デフォルトの名無しさん :2014/09/23(火) 00:04:48.04 ID:FXTBDWVe.net とりあえず有限長の語の集合が無限集合になりうることくらいは理解してくれ。 証明が無限を扱うことと、証明長が有限なことは全然別の話。 プログラムにしても同様。
344 :デフォルトの名無しさん :2014/09/23(火) 00:11:51.00 ID:dVlUahkv.net >>343 それは分かってて。 さきに無限を使うと選択した場合、具体的な利用法が不明。 既存のプログラム、有限集合で扱える範囲を超えなかったら意味が無い。
345 :1 :2014/09/23(火) 00:23:18.08 ID:oT3Rknt8.net >>344 計算不能な集合を扱いたいの?
346 :デフォルトの名無しさん :2014/09/23(火) 00:32:18.88 ID:dVlUahkv.net 言語を開発する上で、既存の有限集合に基づくモデルで十分だという立場。 無限を扱うメリットを知りたい。
347 :デフォルトの名無しさん :2014/09/23(火) 00:50:04.92 ID:dVlUahkv.net 無限小、無限大を取り込んでない、自然数に基づく数学に、あとから無限小、無限大を取り入れても矛盾しない。 超準解析 - Wikipedia 超準解析ではイプシロン-デルタ論法によって一度は数学から追放されたと思われた、無限小や無限大という極限に関する古典的で 直観的な感覚、すなわち、いわゆる実数論にもとづかないライプニッツ流の古典的な微積分を数学的に厳密に定式化し、取り戻すことができる。 このような古典的な微積分におけるオリジナルな無限小解析学とは区別されることもある。 アブラハム・ロビンソンによって考案された。超準解析の基本的な手法である超積はアラン・コンヌらによって作用素環の研究に応用されてもいる。 超実数は実数を拡張した数概念である。実数体に無限小・無限大を加えたものは体をなし、超実数体と呼ばれる。 超実数体は *R, R* などと表記される。その元を超実数という。 Rubyによる 超準解析 クラス.(HyperRael,MathExt) 超実数体とは,(大雑把に云えば) 実数体にライプニッツ的な無限小を添加して出来る体のことだ. 微分等, 通常の実数では limit を使う場面で, 超実数体内部の四則演算として直接求めることが出来る. 超準的な計算では, 無限小や∞の強さもわかるので無限小/無限小, 無限小*∞, ∞/∞ 等の計算が矛盾無く解釈可能となる. ただし単なる体なので, 真の0(無限小でなく) については, 0*∞=0 で, 0/0 や 1/0 は定義されない. この点は IEEE754 的な浮動小数点計算で 1.0/0.0 で Infinity を返すような気持の悪さは解消できる. http://www.math.kobe-u.ac.jp/~kodama/tips-HyperReal.html
348 :デフォルトの名無しさん :2014/09/23(火) 00:58:09.60 ID:IDDuvAyc.net んなもん、チューリング完全な言語は能力同等なんだから 無限をその言語機能で直接書きやすく実行効率よくするかどうかの判断しだいだよ で、1はもう無限を直接扱うのはあきらめたんでしょ 今度は有限の制約があっても、1が元々やりたかった範囲がカバーできてるのかって問題になるわけだが、 「やりたかった範囲」がぼんやりしてるからこれ以上はわからんわな
349 :デフォルトの名無しさん :2014/09/23(火) 01:02:03.65 ID:IDDuvAyc.net おっと書きわすれた。まあ俺もみんながいってるように、 まず既存言語+ライブラリでやりたいことがどの程度できるのか確かめる のがいいと思うけどね
350 :デフォルトの名無しさん :2014/09/23(火) 11:31:06.71 ID:5tA+8B0p.net 無限集合を扱わない代わりにストリームを集合として扱えるようにしようぜ
351 :デフォルトの名無しさん :2014/09/23(火) 11:38:18.07 ID:yLd7Mbmy.net 無限集合を扱うのが困難なように言っているが、どういう操作を実装するか次第だろう。 例えば分数ライブラリがあるが、必要になればいくらでも循環小数や無理数の桁を取り出せ、しかし普段は分子と分母を保存しておくだけ。 それをさらに除算以外の演算もサポートした、値を式で保持するライブラリもある。 実際に何かの集合を扱うたびに本物のコンテナを生成するよりもマシな気がするけど。 >>305 > 関数型言語には状態がないってのはなんとなくしっくりこないなぁ。 変化しないものは状態といわない。 例えば人間には生と死という状態があるが、親が人間かどうかというのは変更がないから状態とはしない。 プログラムでいえば再代入のあるものが状態だ。 c/c++のconst変数は建前では参照透明だ(キャスト、mutableがであるので実際は違う)。 本当に関数型言語に状態がないかどうかは言語によるし、システムコールによる副作用があっても参照透明と呼ぶのはレトリックと言われても仕方ない気もする。 特定の言語自体の価値よりも、関数型プログラミング的テクニック全体に価値がある。c++でもPythonでも使える。 > あと、参照透過性を守ったって停止性問題が根本的に解決するわけじゃないよね? 難題とか複雑性が減るとかいう表現を使ったのは、停止性問題の証明には関係ないからだよ。 > これは自覚症状ないんだが。たとえばどの辺が分かったつもりの発言になってる? >288 を読んで知ったかぶりらしく思わない人がどれだけいただろうか。
352 :デフォルトの名無しさん :2014/09/23(火) 12:03:18.67 ID:9ll4fKxj.net >>326 は嘘で、無知で発想が支離滅裂で実行力もない人が多いみたいです。
353 :デフォルトの名無しさん :2014/09/23(火) 16:14:06.99 ID:49Grt2TR.net 実装に寄らないクラス定義、メソッド、オペレータ、その処理の定義決めればいいんじゃね オペレータオーバーロードできない処理系ではオペレータの代わりにメソッド実装でいいし、しっかり概念が定義されてたらどの言語にも移植できるやん
354 :1 :2014/09/24(水) 20:26:39.07 ID:sdype2Aq.net うーん。とりあえず、集合のリテラルがある言語、またはリテラルを自作できる言語ってある?
355 :デフォルトの名無しさん :2014/09/24(水) 20:34:18.13 ID:Z2e1BcPM.net C++11
356 :デフォルトの名無しさん :2014/09/24(水) 20:46:24.29 ID:c/ueWxaZ.net Pascalの型に集合はあったけど、リテラルあったっけ?
357 :1 :2014/09/24(水) 21:32:20.18 ID:sdype2Aq.net C++11すげぇw 正気の沙汰とは思えないw しかしこれ、setみたいなテンプレート型のリテラルもちゃんと作れるのかなぁ?
358 :デフォルトの名無しさん :2014/09/24(水) 21:47:35.83 ID:icQzJbDu.net つうかC++11使ってリテラル定義しなくても、初期化子書けばいいだけ。
359 :1 :2014/09/24(水) 21:59:47.35 ID:sdype2Aq.net std::initializer_listなんてものもあるのか。 世の中知らないうちに便利になってるな。
360 :デフォルトの名無しさん :2014/09/24(水) 22:19:34.82 ID:u+CQqrHx.net VDM http://en.wikipedia.org/wiki/Vienna_Development_Method Z http://en.wikipedia.org/wiki/Z_notation
361 :デフォルトの名無しさん :2014/09/25(木) 22:46:08.06 ID:paFK2VHq.net >>1 >>360 あーまだそんなこと言ってるのか
362 :1 :2014/09/26(金) 20:57:23.89 ID:TQ6i6UUU.net C++11結構面白そうだが完全準拠したコンパイラが無いっぽい?
363 :デフォルトの名無しさん :2014/09/26(金) 21:17:42.44 ID:v6QeAlLd.net お前のOSにゃ無いかもしれんな
364 :1 :2014/09/26(金) 21:24:17.23 ID:TQ6i6UUU.net とりあえずVisual Studio 2013 Express でいじってみてるけど結構楽しい。 int _tmain(int argc, _TCHAR* argv[]) { set<set<int> > a = { { 1, 2 }, { 3 }, { 4, 5, 6 } }; for (auto i : a){ for (auto j : i) cout << j << " "; cout << endl; } return 0; } とか書けていい感じ。
365 :デフォルトの名無しさん :2014/09/26(金) 21:37:43.18 ID:rLR78veI.net >>1 はC++のように集合が扱える言語が実現したいのか? 一部のスクリプト言語だったらかなり以前からできていなかったか。 CでもC++でも以前から、ライブラリで拡張したら集合は扱えたはずだろ。
366 :1 :2014/09/26(金) 21:56:27.24 ID:TQ6i6UUU.net >>365 個人的にはもうちょっと言語の設計が根本から変わるようなものが 集合にはあるんじゃないかと思ってるんだが。 それがなんだかは分からないw いまのところ集合を普通のライブラリとして用意する以上のアイディアは出てない。
367 :デフォルトの名無しさん :2014/09/26(金) 22:40:52.33 ID:mU/FSdzC.net (>>856 の続き) 始めは「考えられるリスクの低減」から ・ライブラリや共通部品の多くは(アルゴリズムやデータ変換を実現する単純なものもあるが) データベース/ファイル/ネットワーク/プロセス間通信といったプログラムの 外部インターフェイス処理が多くを占める これらを実装するには、プログラマにシステムコールや標準ライブラリ(>>829 )、 そして社外のライブラリや社内の共通部品等等、幅広い知識が求められる これを経験の浅いメンバに負わせるのは無謀 ・ライブラリ/共通部品の実装技術は機能仕様(=ビジネスルール)には依存しないから、 類似のシステム開発プロジェクトがあれば、類似の実装になる もしライブラリ設計担当がいくつかのプロジェクトを経験したベテランであれば、 過去の(失敗を含めた)経験から、既存の設計やコードを改造母体にして短期間で設計できる これと同じことを経験の浅いメンバに期待するのは無茶 ・万が一、ライブラリ/共通部品の開発日程が遅延して結合テストに間に合わなかったり、 結合テストでバグが多発する事態になれば、その影響はプロジェクトの全体に及ぶ もしモスク(>>856 )の中位/上位層であれば影響範囲は限定的だし、 その炎上の火消しのためにライブラリ/共通部品を担当させて余力のあるベテランを投入できる (当然、ライブラリ/共通部品設計には日程厳守(or 前倒し)と高品質(=バグ0)をベテランに要求する)
368 :1 :2014/09/26(金) 22:44:11.22 ID:TQ6i6UUU.net >>367 仕事でやってんじゃないんだから好きにさせろ。
369 :367 :2014/09/26(金) 22:44:51.94 ID:mU/FSdzC.net >>367 は誤爆だから無視してくれ、スマソ
370 :1 :2014/09/26(金) 22:55:37.85 ID:TQ6i6UUU.net 誤爆とは思えないほどスレの流れに合ったレスだったが。 まあいいや。
371 :デフォルトの名無しさん :2014/09/27(土) 12:16:01.73 ID:Tn3/IHEN.net オメガってZFに基づいた言語がアメリカにあったはずだが見つけられない。 集合はsetとclassの型付け。 上にある仕様記述言語Zとは別。
372 :デフォルトの名無しさん :2014/09/28(日) 20:41:53.96 ID:T/KmqFBE.net >>1 >>360 についてはどうなのよ?
373 :1 :2014/09/28(日) 21:20:59.19 ID:ngbZk+Gk.net >>371 すまん。あんまりちゃんと読んでない。 wikiだけじゃよくわからんというのが素直な感想。 それに英語は大の苦手。
374 :1 :2014/09/28(日) 21:21:51.62 ID:ngbZk+Gk.net 安価ミス >>372 ね
375 :デフォルトの名無しさん :2014/09/28(日) 22:47:39.25 ID:qFZf/al/.net >>373 http://homepages.cs.ncl.ac.uk/cliff.jones/publications/Jones1990.pdf http://www.cs.ncl.ac.uk/publications/books/papers/100.pdf http://spivey.oriel.ox.ac.uk/~mike/zrm/zrm.pdf http://staff.itee.uq.edu.au/ianh/Papers/SCS2.pdf 英語が苦手なのに >しかたないのでこのスレは>>4 とかの言語を勉強するスレにするか。 と書いたのか。
376 :1 :2014/09/28(日) 23:24:45.68 ID:ngbZk+Gk.net >>375 英語苦手なのでこれを読むのは結構時間かかると思う。 まあ、ぼちぼち頑張る。
377 :デフォルトの名無しさん :2014/09/28(日) 23:48:18.69 ID:qFZf/al/.net >>376 http://homepages.uel.ac.uk/A.Kans/MSc%20week3.pdf http://www.cs.nott.ac.uk/~rxq/files/4FSPnotation.pdf http://formal.iti.kit.edu/~beckert/teaching/Spezifikation-SS04/11Z.pdf
378 :1 :2014/09/29(月) 00:04:52.39 ID:O3Lh9EkL.net >>377 こっちのほうが入門っぽいの? まあ、あんまプレッシャーかけんなや。
379 :デフォルトの名無しさん :2014/09/29(月) 01:12:43.07 ID:1qhCFqkI.net >>360 についてどう思うかたずねられる →「wiki(pedia)だけじゃよく分からん」 詳しく書かれている文書を提示される →「読むのに時間がかかる」 もっと短い文書を提示される →「プレッシャーかけるな」
380 :デフォルトの名無しさん :2014/09/29(月) 13:28:38.13 ID:AXPWss48.net >>1 センスは悪くないが、致命的に勉強が足りんな
381 :1 :2014/09/29(月) 18:35:35.54 ID:O3Lh9EkL.net >>379 このスレで提示されたもの、俺が全部勉強しなきゃいかんのかと思うとちょっと怖いんだが。 >>380 勉強不足なのは認める。
382 :デフォルトの名無しさん :2014/09/29(月) 20:16:07.80 ID:onaWAXdx.net どっちに進んだらいいのか分からないんだから、提供された情報を手がかりにして、 wikiだけじゃ分からんとか言わずに自分で情報をさがして勉強するしかないだろ。 情報を提供してもらうためにスレを立てたんだろ。
383 :1 :2014/09/29(月) 20:43:37.99 ID:O3Lh9EkL.net >>382 スレたてた時は軽い気持ちだった。 なんかこんなガチな感じのスレになるとは思ってなかったと言わざるを得ない。
384 :1 :2014/09/29(月) 20:52:49.67 ID:O3Lh9EkL.net >>377 ちょっとだけ読んでみただけだから誤解があるかもしれないけど、 これは仕様をガチガチに固めるためのもの? こんなこと言うと批判がありそうだけど俺としてはbashやRubyみたいに緩い感じでコーディングして 仕様変更があってもちょちょっとハッキングすれば何となく動いちゃうみたいのが好みなんだけど。
385 :デフォルトの名無しさん :2014/09/29(月) 22:24:17.39 ID:MPdknRrK.net >>383 >>365 の言うとおりだけど、不勉強だから、 「発想から徹底的に集合論的思想で言語仕様を考える」って大風呂敷を広げてしまったわけだ。
386 :1 :2014/09/29(月) 22:46:32.46 ID:O3Lh9EkL.net >>385 まあ、ぶっちゃけ俺には>>365 を超えるような大したアイディアがあったわけじゃないな。 みんなで雑談してるうちに面白い話が聞けたらいいなぐらいの気持ちだった。
387 :デフォルトの名無しさん :2014/09/29(月) 22:53:43.66 ID:6QlMlDt4.net Python の set とかってイメージしてる "集合" とはどういう関係にあるのかな
388 :デフォルトの名無しさん :2014/09/29(月) 23:54:29.23 ID:4aZKHf7r.net Zは仕様記述言語だよ。 Notationと言われているように、日本語だと記法と言ってもいいかもしれない。
389 :デフォルトの名無しさん :2014/09/30(火) 00:05:52.09 ID:lw4FII9v.net >>386 大風呂敷を広げている自覚があるならたためばいいのに。 >>365 には「そのとおりだ。不勉強だから『発想から徹底的に集合論的思想』などと大風呂敷を広げてしまっていた」と言い、 >>360 には「情報ありがとう。でも考えているのは>>365 のようなものだからVDM等とは方向が違う」とでも言えばよかったのに、 「言語の設計が根本から変わるようなもの」とか言い出すし。
390 :デフォルトの名無しさん :2014/09/30(火) 00:27:57.32 ID:QoKiTOmo.net 過去の発言をあげつらうとか無粋なことを‥ そのときどきで感想がぽつぽつ上がってそこから何かが生まれればよし、そうでなくてもいいので、こうしてお付き合いしているわけだし‥
391 :デフォルトの名無しさん :2014/09/30(火) 00:47:37.34 ID:63XDoi4/.net 1の興味がどっちに向いてるのかはっきりさせとかないと、誰かが>>360 のように情報を出してくれても、 1は興味を持てず理解もできず、情報を出してくれた人を無視することになるわな。
392 :デフォルトの名無しさん :2014/09/30(火) 04:58:34.96 ID:AOM1YMTX.net 一次元で言ったら (1-5) | ( 2-6) | (3-9) | (9-10) = (1-6, 3-10) こういうの返すとか 2次元だと、GDIなんかでもよくあるリージョン計算とか 三次元にも応用してとか 言語にこだわらず、集合表記決めて興味持った人が各言語で実装するのがいい
393 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/09/30(火) 07:28:17.49 ID:JjKI4EMd.net ひらがな電卓Calc-Hだと、 「ろくのやくすうはなんですか」とか 「じゅうにいかのそすうは」とか 「よんのばいすうはにでわりきれるか」とか 「いちいじょうのろくのばいすうは、ごよりおおきいさんのばいすうか」 といった質問に答えられるんだけど。参考までに
394 :デフォルトの名無しさん :2014/09/30(火) 12:59:47.25 ID:X/itkzZm.net >>381 勿論勉強なんか最低限でよい。 ただ集合言語を論じるなら、「Z」と「集合論プログラミング」(ググれ) のさわりだけはおさえとけ(それだけでいいよ)
395 :デフォルトの名無しさん :2014/09/30(火) 15:20:16.06 ID:3YX+fixm.net さわりは音楽でいうサビかイントロか。 イントロと間違う人も多いだろう。
396 :デフォルトの名無しさん :2014/09/30(火) 16:07:43.18 ID:tX5UXYDw.net そりゃサビだろ 最低限なんだから大事なところ押さえないと
397 :1 :2014/09/30(火) 20:27:22.22 ID:p23v2Yf3.net >>389 まあ、大風呂敷を広げた方が話が盛り上がるかと思って。 >>391 正直すべてのレスをフォローするのはしんどいかも。 方向性はまだ固まってないです。 >>393 結構、ことばがわかりません。ていわれる。 いまのでも結構すごいがこれを実用までもっていったらかなりすごいと思う。 >>394 Zはオブジェクト指向でいうUMLみたいなもん? 集合論プログラミングはぐぐったけどCiNiiの論文がヒットした。 プレビュー読んでみたけどアルゴリズムを自動生成するの? 確かにすごいし理屈も通ってると思う。 これの処理系がすでにあるなら触ってみたいけど、 自分で実装しようとは思わないw。大変すぐるw。
398 :1 :2014/09/30(火) 21:50:21.63 ID:p23v2Yf3.net 集合論プログラミングは確かに言語の設計が根本から変わってると思う。 こういう情報が得られるだけでもスレをたてた甲斐があるというもの。
399 :デフォルトの名無しさん :2014/09/30(火) 22:19:13.15 ID:ic/LPcqx.net >>398 わざわざスレを立てなくても 集合論 プログラミング でググればすぐ見つかるんだけど。 「発想から徹底的に集合論的思想で言語仕様を考える」と言っておきながら その程度の検索すらしてなかったんだな。
400 :1 :2014/09/30(火) 22:29:12.29 ID:p23v2Yf3.net >>399 まあな。
401 :デフォルトの名無しさん :2014/09/30(火) 23:59:40.07 ID:izhA5Hzv.net >>397 アルゴリズムの自動生成をするわけではなく、論理式を使って書かれた 仕様を元にして人間がプログラムを作っていくもので、VDMやZと同じ 方向なんだけど、感想がずいぶん違うな。>>384 >>398
402 :1 :2014/10/01(水) 06:02:07.09 ID:0+f79Okt.net >>401 VDM 書いたものが実装にならない 集合論プログラミング 書いたものが実装になる と思い込んでたからな。 どっちも書いたものが実装にならないならあんまり俺の趣味じゃないなぁ。 集合論プログラムは書いたものが実装になってもよさそうなほど 論理を詰めていたように見えたが気のせいだったか。
403 :デフォルトの名無しさん :2014/10/01(水) 09:03:58.23 ID:Srlu7drV.net >>402 VDMは実行可能だ
404 :デフォルトの名無しさん :2014/10/01(水) 11:04:19.89 ID:PsfjCcq+.net >>398 やっぱりアンタはセンスが良い。というかこれから何かできる人だ。 集合論プログラミングはZなんかに比べるとマイナーだが、Zより実質がある。 実装もできる。アンタが土台にするべき言語はこれじゃないかな? 検索してないとかなんとかというノイズは無視していいよ。
405 :デフォルトの名無しさん :2014/10/01(水) 14:56:19.11 ID:BreyGGJ4.net >>402 論理式を使って、プログラムに自動的に変換できそうなほど詳細な仕様を書くのは、 >緩い感じでコーディングして仕様変更があってもちょちょっとハッキングすれば >何となく動いちゃうみたいの とはかなり違うわな。
406 :1 :2014/10/01(水) 19:43:26.77 ID:0+f79Okt.net >>403 どうゆう意味で実行可能なの? 他のプログラムの外付けアサート的な動作しかできないのかと思いこんでいたが。 VDM単体で動くの? >>404 俺をおだてても木には登れんぞ。 集合論プログラムのコンパイラを作るなんて俺の実力じゃとても出来そうもない。 ユーザーとしてなら使ってみたいが。 >>405 仕様を詳細にするのはやり方がまずいと柔軟性のないプログラムになると思う。 抽象度の高いプログラムで仕様を満たせるならそっちの方がいいと思う。
407 :デフォルトの名無しさん :2014/10/01(水) 19:49:09.29 ID:OzkCABBw.net >>406 インタプリタで実行できる
408 :1 :2014/10/01(水) 20:28:28.86 ID:0+f79Okt.net >>407 まじで。英語だからちゃんと読んでないけど>>360 のwikiにsqrtの例で SQRT(x:nat)r:real post r*r = x とかいうのがあったからこりゃ単体じゃ実行できないなと思ったんだけど。 早計だったか。
409 :デフォルトの名無しさん :2014/10/01(水) 20:39:41.94 ID:OzkCABBw.net >>408 VDMには実行できるexplicit specと実行できないimplicit specがある。 その例は実行できないimplicit specのほう。 このリンク先のはみな実行できるexplicit spec http://www.vdmtools.jp/doc/tips/vdmIdiom.html
410 :1 :2014/10/01(水) 21:57:06.59 ID:0+f79Okt.net >>409 なんか、サンプルプログラムよんでもイメージが湧きづらい。。。 文字列操作の前後のスペースをトリミングとか何やってるのかよく分からん。 [ p | p in set inds org & org(p) <> ' ']がorgの空白でない文字のインデックスの集合で パターンマッチでその集合の先頭と末尾を取り出してる。 sがorgの空白じゃない最初の文字のインデックスでeがorgの空白じゃない最後の文字のインデックス でorg(s,...,e)で頭とおしりの空白を取り除いた文字列を返してるってこと?
411 :1 :2014/10/01(水) 22:21:29.56 ID:0+f79Okt.net []は集合じゃなくて列か。
412 :デフォルトの名無しさん :2014/10/01(水) 23:50:12.62 ID:PsfjCcq+.net >>409 クソVDMなんか持ってくるんじゃねえよ。 お前はセンス悪い。
413 :1 :2014/10/02(木) 12:38:59.14 ID:CtSzUDAx.net あれ?乗っ取られてる?立てただけでちょっと居なくなったすきに…
414 :1 :2014/10/02(木) 18:33:20.87 ID:McIgqFFk.net >>413 は偽物。 といっても俺も本物だと証明できるものはなにも持ってないな。 まあ、何が本当かは皆さんの判断に任せるとしましょう。
415 :デフォルトの名無しさん :2014/10/02(木) 19:01:12.47 ID:J690LAeG.net ここって>>1 となれ合うスレ化してるから、馴れ合ってる1こそが1
416 :デフォルトの名無しさん :2014/10/02(木) 19:52:03.79 ID:sULo4gIN.net >>414 トリップっていうのをつけたら? http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1241152992
417 :1 :2014/10/02(木) 20:07:14.68 ID:McIgqFFk.net >>416 今からトリップつけても過去のスレに対してはなんの証明にもならんけどな。 今からでもみんなが付けろっていうなら付けるが。
418 :デフォルトの名無しさん :2014/10/02(木) 20:38:47.31 ID:sULo4gIN.net >今からトリップつけても過去のスレに対してはなんの証明にもならん それは>>415 のように考えるしかない。
419 :1 :2014/10/02(木) 20:45:42.53 ID:McIgqFFk.net >>418 まじでw
420 :1 :2014/10/03(金) 20:31:44.20 ID:dWJ2kSUt.net Rubyだとトリミングはstr.stripで一発だな。 ライブラリつかわんでもstr.gsub(/^ +/,"").gsub(/ +$/,"")でワンライナーか。 この比較がフェアかどうかは微妙だが、Rubyと比べてVDMは読むのしんどいな。 慣れてないだけかもしれんが。
421 :デフォルトの名無しさん :2014/10/03(金) 22:20:11.35 ID:wImYRAo7.net >>420 的外れな比較だな。
422 :1 :2014/10/03(金) 22:25:06.66 ID:dWJ2kSUt.net >>421 やっぱそうか。そんな気はした。 でもこういったこまごまとした道具がきっちりそろってるのもRubyの魅力なんだよな。
423 :デフォルトの名無しさん :2014/10/04(土) 04:41:52.82 ID:TsYLxX57.net で、文字列をトリミングするのが君のいう集合論ベースの言語なのかい?
424 :1 :2014/10/04(土) 09:55:23.27 ID:jzKUq2O9.net >>423 トリミングについてはちょっとふれただけだろ。 そんなに粘着した覚えはないぞ。
425 :デフォルトの名無しさん :2014/10/04(土) 12:53:49.48 ID:TsYLxX57.net 言ってることがブレブレなんだよ。 集合論から徹底的にと言ってみたり有限集合だけと言ってみたり 言語仕様だと言ってみたり便利なライブラリだと言ってみたり 美しい言語だと言ってみたり処理速度がどうのと言ってみたり で、今度は文字列操作ユーティリティライブラリの充実度か。 結局何がしたいんだ?
426 :デフォルトの名無しさん :2014/10/04(土) 13:00:56.11 ID:by55sH8H.net 有限集合のみだと素朴集合論以下だしな。
427 :デフォルトの名無しさん :2014/10/04(土) 13:34:13.41 ID:s6wyGDsN.net >>425 そんなに結論を急ぐのはなんでなの?
428 :デフォルトの名無しさん :2014/10/04(土) 14:11:28.47 ID:TsYLxX57.net 結論どうこう以前に こうまで毎回後だしジャンケンばかりでは 永遠にグダグダだろ
429 :デフォルトの名無しさん :2014/10/04(土) 16:04:23.04 ID:+NqOnrEc.net 個人のチラ裏にそんな文句つけてやるなよ
430 :デフォルトの名無しさん :2014/10/04(土) 16:08:30.01 ID:aLeuItWT.net ID:TsYLxX57の書き込みに文句をつけるのもなしの方向で
431 :1 :2014/10/04(土) 16:10:38.32 ID:jzKUq2O9.net >>425 何がしたいかといわれると、建前では教科書の章末問題のようなものを サクサクインプリメントできる言語をつくりたいだが、本音を言えば>>386 だな。 まあ、集合論に基づいた言語自体、まだ形がほとんど何もできてない状態だから 議論がぶれるのはある程度しかたないな。 >>428 後出しジャンケンといわれても困るんだが。
432 :デフォルトの名無しさん :2014/10/04(土) 16:17:38.75 ID:aLeuItWT.net 何の教科書だよ。 集合論に基づいた言語と言うから集合論の教科書かと思ってたら 集合論の教科書は想定してなかったとか言い出すし。
433 :1 :2014/10/04(土) 16:23:04.72 ID:jzKUq2O9.net >>432 まあ、主に離散数学だな。
434 :デフォルトの名無しさん :2014/10/04(土) 18:36:28.77 ID:TedbKwqo.net zfcに基づいたプログラミング言語は理論上作成可能?
435 :デフォルトの名無しさん :2014/10/04(土) 19:35:13.51 ID:WpG7hkwu.net 論理言語なんてPrologでええやん
436 :デフォルトの名無しさん :2014/10/04(土) 19:46:48.95 ID:TsYLxX57.net 基づくというだけなら既存のスクリプト言語のsetクラスでも、基づいているとは言えるんじゃね? ZFCで表現可能な全ての集合を扱える、という条件なら、無理だろ。
437 :デフォルトの名無しさん :2014/10/05(日) 18:24:35.09 ID:jh4sXRSC.net >>434 そりゃ可能だよ。既にだれか作ってたような
438 :デフォルトの名無しさん :2014/10/06(月) 01:43:06.63 ID:NlMQaHfx.net 選択公理は無理だろ。 無限公理もキツイと思う。
439 :デフォルトの名無しさん :2014/10/06(月) 12:01:11.94 ID:DaOiROEZ.net 選択公理って、よーするに、どんな集合からでも「その要素を一つ選んで取り出す」ことができる、 とする公理でしょ。コンピュータでそれを原理として使えない理由ってある? (本物の実数の濃度を持った集合を表現できない、とか?)
440 :デフォルトの名無しさん :2014/10/06(月) 12:36:12.97 ID:Fl7PIp2q.net 「無限集合の無限集合」をどう扱うよ?
441 :デフォルトの名無しさん :2014/10/06(月) 12:55:54.86 ID:DaOiROEZ.net (ポインタで表される)一つの要素であることに変わりは無いと思うけど
442 :デフォルトの名無しさん :2014/10/06(月) 13:25:58.86 ID:Fl7PIp2q.net …解らないなら解らないと正直に言えばいいのに…
443 :デフォルトの名無しさん :2014/10/06(月) 15:33:29.23 ID:DaOiROEZ.net 説明できないなら(以下略
444 :デフォルトの名無しさん :2014/10/06(月) 15:44:15.26 ID:Chlrt5UY.net 選択公理は選択する方法があるとは主張するけど、選択する方法を具体的に出す訳じゃないから無問題
445 :デフォルトの名無しさん :2014/10/06(月) 22:35:03.81 ID:NlMQaHfx.net >439 可能無限なら扱える。実無限は無理。 >441 自然数で番号付けできているから、実数は扱えない。 >444 実数は選択できないよ。
446 :デフォルトの名無しさん :2014/10/06(月) 22:39:52.81 ID:DaOiROEZ.net 哲学屋が語る論理の本で勉強したなw
447 :1 :2014/10/06(月) 23:54:52.31 ID:FKIcXs6f.net なんか計算不能な問題に取り組ませたい奴がいるっぽいな。 >>48 と同じ奴か?
448 :デフォルトの名無しさん :2014/10/07(火) 00:54:44.71 ID:EYnjWx9Z.net スレタイに釣られるとそうなるよ
449 :デフォルトの名無しさん :2014/10/07(火) 05:00:08.90 ID:p/BL+CDX.net DaOiROEZの半可通っぷりが最高w
450 :デフォルトの名無しさん :2014/10/07(火) 10:56:48.49 ID:+SCn7tHo.net ZFの範疇でさえ消化できてないのに、実無限なんて飛躍しすぎ。
451 :デフォルトの名無しさん :2014/10/07(火) 11:06:53.72 ID:SMQvkaFY.net どうせなら、量子コンピューターで使う言語にまでにして欲しいな。
452 :1 :2014/10/07(火) 21:14:56.86 ID:QnZoLRl/.net 量子コンピュータってまだ有効なアルゴリズムが2つ3つしか発見されてないんじゃなかったけ。
453 :デフォルトの名無しさん :2014/10/07(火) 21:30:05.48 ID:waP9/Nh6.net 量子状態を集合的に扱うと便利。
454 :デフォルトの名無しさん :2014/10/07(火) 21:41:15.48 ID:9NXt3xp/.net >450 少ない公理だけでやるんだったらProlog (HornCNF) で十分だと思う。 というかPrologがろくに検討されていないのはなぜ?
455 :1 :2014/10/07(火) 22:20:49.79 ID:QnZoLRl/.net Prologもやってみる価値あり?
456 :デフォルトの名無しさん :2014/10/08(水) 04:21:45.13 ID:prFbm0Ro.net 公理論ベースのプログラミング言語というのにPrologを検討してないとか意味わからなすぎ
457 :デフォルトの名無しさん :2014/10/08(水) 11:09:43.78 ID:OludtdBn.net 単なる述語論理じゃないか。
458 :デフォルトの名無しさん :2014/10/08(水) 12:20:34.72 ID:dWGNDTcI.net >>1 ってそもそも集合論、公理的集合論を系統的に学んだこと無いだろ?
459 :デフォルトの名無しさん :2014/10/08(水) 12:47:37.54 ID:h0nYZNts.net 既存の言語に有限集合演算を追加するところから始めれ。 クソスレが一個増えただけで終わる前に。
460 :デフォルトの名無しさん :2014/10/08(水) 18:43:36.24 ID:UKHmkXIf.net ここは元々>>1 の勉強スレ
461 :1 :2014/10/08(水) 18:47:59.90 ID:hP0aEtf7.net >>458 ばれたか。ZFCとか名前くらいは聞いたことあるけど どうやって論理を展開していくのとか知らない。 >>459 出来ればもうちょっと面白いアイディアが欲しい。 クソスレも板の賑わいってことで。
462 :デフォルトの名無しさん :2014/10/08(水) 20:19:42.08 ID:rTFjlrrq.net 1が今まで読んできた教科書教えて
463 :1 :2014/10/08(水) 20:46:16.58 ID:hP0aEtf7.net あんまりいうと個人情報とか洩れるかもしれんので一つだけ。 もう捨てちまって手元にないがこれかな。 http://www.amazon.co.jp/dp/4274130053
464 :デフォルトの名無しさん :2014/10/08(水) 22:26:27.29 ID:rTFjlrrq.net じゃあ個人情報が漏れない程度の大雑把さで何を学んできたか教えて
465 :1 :2014/10/08(水) 22:32:55.73 ID:hP0aEtf7.net そんな漠然としたこと聞かれても。 まあ、情報系の学部出身だよ。
466 :デフォルトの名無しさん :2014/10/08(水) 23:00:13.01 ID:TzLBQJ9w.net 人生……かな
467 :デフォルトの名無しさん :2014/10/08(水) 23:04:08.42 ID:rTFjlrrq.net >>59 を見てどの程度の知識があるのか気になったのよ 数学科ではないのね
468 :1 :2014/10/08(水) 23:24:26.28 ID:hP0aEtf7.net 数学科ではないな。 まあ、俺は数学ガチ勢ではないってことで。
469 :デフォルトの名無しさん :2014/10/08(水) 23:51:56.29 ID:TxL/GihU.net >>465 それにしてはレベルが低いな。
470 :デフォルトの名無しさん :2014/10/09(木) 14:59:21.86 ID:+VtBJxY5.net >スクリプト言語でありながら、速度も求めた Julia という言語。 > Julia は科学技術計算向けだが、汎用的な用途にも使える。 http://julialang.org/ 集合論とはちょっと違うが、こういう言語を作るのって、プログラミングとはまた別の頭の良さが必要なんだろうなあ・・・
471 :デフォルトの名無しさん :2014/10/09(木) 18:53:47.65 ID:0qGZB94E.net >>463 こんなの学部一、二年だろ? http://www.amazon.co.jp/Constraint-Logic-Programming-Selected-Research/dp/0262023539 こういうの読みなよ。
472 :デフォルトの名無しさん :2014/10/09(木) 19:18:35.22 ID:tOThY/oR.net constraint logic programming‥ メジャーなもののなかで一番近い言語はなんですか
473 :デフォルトの名無しさん :2014/10/09(木) 19:25:16.95 ID:0qGZB94E.net これのOzだよ。 http://www.amazon.co.jp/dp/4798113468/
474 :1 :2014/10/09(木) 20:10:14.35 ID:o/OZDU1F.net >>469 こんなもんじゃね? >>470 インタプリタでCに迫る速度とかホンマかいな? まあ、速くて書きやすいのはいいことだ。 >>471 わざと難しそうなの持ってきてない?
475 :デフォルトの名無しさん :2014/10/11(土) 12:51:05.92 ID:8yVA6sZ1.net この板でハッとさせられるような事言う奴滅多にいないんだよな。 たまに居ると思ったら5年前の自分の書き込みだったw
476 :デフォルトの名無しさん :2014/10/11(土) 13:27:28.71 ID:77jPKn4U.net >>475 つまり、おまえは5年間進歩してないんだな。
477 :デフォルトの名無しさん :2014/10/11(土) 15:22:20.55 ID:zm2pT6ST.net とっくに出てると思うけど、SQLがまさに集合論をベースとしてる 今ではC#がLINQという名前で取り込んでるな
478 :デフォルトの名無しさん :2014/10/11(土) 16:17:13.48 ID:dB8AJmwd.net それは集合論ではない。 集合や集合演算を扱えるだけ。
479 :デフォルトの名無しさん :2014/10/11(土) 17:10:54.15 ID:LAagPdIX.net >>477 それSQLじゃなくてRDBシステムが集合論つかってるってことじゃないのか?
480 :デフォルトの名無しさん :2014/10/11(土) 18:08:16.60 ID:F3plGA7W.net 集合操作だから集合論とか言うの止めてくれないか
481 :デフォルトの名無しさん :2014/10/11(土) 20:16:24.89 ID:77jPKn4U.net SQLは集合論つーより代数論だ。
482 :デフォルトの名無しさん :2014/10/11(土) 20:16:36.33 ID:oD37Hh5X.net 別に素朴集合論に単純な型を付けたようなもので普通に用は足りるだろ。 公理的集合論だからといって現実的には何かできることが増えるわけじゃないぞ。 単に数学の基礎を議論する時に必要というだけで。
483 :デフォルトの名無しさん :2014/10/11(土) 20:18:28.72 ID:77jPKn4U.net >>482 その程度のものなら既存で腐る程あるだろ、って話を何度ループすれば気が済むんだ?
484 :デフォルトの名無しさん :2014/10/11(土) 22:48:51.28 ID:oD37Hh5X.net で、集合論に何を夢見てるんだ?
485 :デフォルトの名無しさん :2014/10/12(日) 00:31:12.35 ID:xA+0V9C8.net 素朴集合論ってカントールの集合論のことだぞ。 中学生が習うやつじゃないぞ。
486 :デフォルトの名無しさん :2014/10/12(日) 02:13:46.33 ID:UDZcvZvs.net カントンが手術したらモテモテになると勘違いしている様>>1
487 :デフォルトの名無しさん :2014/10/12(日) 20:49:20.54 ID:MyToBo/B.net だから「単純な型を付けたようなもの」って言ってるだろ。 その意味がわかってない?
488 :デフォルトの名無しさん :2014/10/12(日) 20:55:04.62 ID:g8Gog7KJ.net お前が分かってない。
489 :デフォルトの名無しさん :2014/10/12(日) 21:08:23.19 ID:Sn9uUxXA.net なんとなくだけど、結論を急いで、できないとか意味がないとか言って、一切の建設的な意見を出さず、妨害だけする人って居るよね?
490 :デフォルトの名無しさん :2014/10/12(日) 21:17:15.44 ID:g1iKtf1h.net そりゃこの広い世界のどこかにはそういう人も居るかもしれないね
491 :デフォルトの名無しさん :2014/10/12(日) 21:35:02.06 ID:xA+0V9C8.net 素朴集合論に型を付けたらうまくいくんじゃね? とやってみたら恐ろしく複雑で不自由になったのがフレーゲのタイプ理論。 その後100年近く塩漬け状態。 それなら集合とクラスの二つだけに分けて、後はあまり強く型付けしなければ、 カントールの楽園から追放されないんじゃね? というのがツェルメロの公理的集合論。 集合論、集合論と言っている人は、 無限公理や正則性公理を積極的に言語で使うつもりがあるのかな? ↓必要なのはここまでなんじゃないのかな。 http://ja.wikipedia.org/wiki/%E9%9B%86%E5%90%88%E3%81%AE%E4%BB%A3%E6%95%B0%E5%AD%A6
492 :デフォルトの名無しさん :2014/10/12(日) 22:31:37.21 ID:NJmCyxXF.net >>489 どのレス?
493 :デフォルトの名無しさん :2014/10/12(日) 22:35:38.76 ID:A+IMFSgX.net S Set T Theory P Programming Aはどうしよう。
494 :デフォルトの名無しさん :2014/10/12(日) 22:38:10.76 ID:Km5KyqRm.net advanced application applied
495 :デフォルトの名無しさん :2014/10/12(日) 22:44:43.09 ID:Km5KyqRm.net the set theory applied programming (STAP) language 略してSTAP言語
496 :デフォルトの名無しさん :2014/10/13(月) 00:27:06.12 ID:ivWOljm1.net で、できたの?
497 :デフォルトの名無しさん :2014/10/13(月) 00:34:39.55 ID:hWTf/9FL.net 200回ぐらい。
498 :デフォルトの名無しさん :2014/10/13(月) 05:17:51.25 ID:zgXTsI5w.net >>489 既存研究のサーベイが皆無なバカが悪い
499 :デフォルトの名無しさん :2014/10/13(月) 09:30:42.66 ID:7i+sJhXA.net >>496 ありま〜す
500 :デフォルトの名無しさん :2014/10/13(月) 17:01:25.51 ID:6ak88RQb.net 1.動機 2.仕様 3.実装 と進む。前段階へのフィードバックもある。 まだ1.の整理がつけられてない状況。
501 :デフォルトの名無しさん :2014/10/13(月) 18:07:14.67 ID:UPM0IlOC.net まずどんな出力を得たいかを書く 次にそれを得るのに入力に何が必要かを書く これで仕様決めまで終わるよね 入出力が決まってれば実装手段なんて何でもいい
502 :デフォルトの名無しさん :2014/10/13(月) 19:11:43.08 ID:PQyRtfoA.net こういう状態 >>425 >>428
503 :デフォルトの名無しさん :2014/10/13(月) 20:12:54.48 ID:EYFsbw6u.net オブジェクトは全て集合で ペアノの公理を入力したらそれに則って足し算ができるようになる言語は どうかな?
504 :デフォルトの名無しさん :2014/10/13(月) 20:22:39.44 ID:5XmBCMSV.net 足し算しかないのはプレスバーガー算術といって、完全理論だよ (どの命題も肯定か否定かどちらか一方が証明可能って意味) 足し算とかけ算の混じったペアノ算術は不完全理論だけど
505 :デフォルトの名無しさん :2014/10/13(月) 22:25:59.32 ID:6ak88RQb.net >>503 ノイマンの自然数の構成も必要だぞ。
506 :デフォルトの名無しさん :2014/10/14(火) 09:11:24.51 ID:0Ml7fYIK.net 集合への四則演算は濃度に変化無しだよな? 即ち、四則演算はしなくていいって事。
507 :デフォルトの名無しさん :2014/10/14(火) 13:04:54.64 ID:vbP2sDzC.net 濃度を増やすことが目的じゃなくて 計算結果を求めるのが目的だろうが
508 :デフォルトの名無しさん :2014/10/14(火) 14:33:07.44 ID:zPTDiwn8.net これとかいいんじゃね http://peace.2ch.net/test/read.cgi/tech/1407673636/
509 :デフォルトの名無しさん :2014/10/14(火) 17:47:21.71 ID:+5iJxgCE.net 外野として面白く見守ってるだけでいうのもアレだけど 具体的に章末問題をひとつ持ってきて「これをこう書きたい」っていうのがみたい! 1さんだけじゃなくてここに居る皆さんで「こう書いたら気持ちよさそう〜」とかでいいからサ
510 :デフォルトの名無しさん :2014/10/14(火) 19:09:39.61 ID:bR6+1Vd4.net 0=φ 1={φ} 2={φ{φ}} 3={φ{φ}{φ{φ}}} 4={φ{φ}{φ{φ}}{φ{φ}{φ{φ}}}} は良いとして、このノイマンの表現法で通常の4則演算ってどういう意味があるの? 2+2=4 ってこの右側の集合の記法でどうやってでてくるんだ??
511 :デフォルトの名無しさん :2014/10/14(火) 20:03:06.07 ID:ehQP27NF.net ラムダ ペアノ でググれ
512 :デフォルトの名無しさん :2014/10/14(火) 20:40:10.02 ID:bR6+1Vd4.net >>511 ラムダとペアノの奴っていうのは 後者関数と射影関数を使って原始帰納法から原始帰納的関数を定義する方法で 加算を定義するというものと内容的に同値だろうから、 この自然数を包含関係で表現してみた集合に対する演算の定義とは違わないか?
513 :デフォルトの名無しさん :2014/10/15(水) 07:50:36.68 ID:xIPL4/1H.net >>510 それはまず 0:=φ succ(x):=x∪{x} があって、そこから 1:=succ(0)=φ∪{φ}={φ} 2:=succ(1)={φ}∪{{φ}}={φ∪{φ}} … と順に定義していくから 結局はペアノの焼き直しに過ぎない
514 :デフォルトの名無しさん :2014/10/16(木) 00:40:06.63 ID:txhx6QUq.net >>510 四則演算の意味は四則演算w ペアノの公理に出てくるプリミティブを定義しないといけないから、 succは>>513 、lessは∈に帰着させる。 たぶんlessを先に考えたのだろう。
515 :デフォルトの名無しさん :2014/10/17(金) 13:53:23.37 ID:dWEICMsc.net >>511 ノイマンの集合モデルとチャーチのラムダ式モデル(チャーチ数)は、ペアノの自然数の別のモデル。
516 :1 :2014/10/17(金) 22:20:25.82 ID:XLlp2k/U.net 最近書き込むネタがないな。 >>509 なんかお題くれ。
517 :デフォルトの名無しさん :2014/10/17(金) 22:55:41.78 ID:ZbpwpO5Z.net >>516 一つの海によって隔てられた2つの国の領土が与えられたときに、海上に2国の中間線を引くプログラムを作れ ここで、中間線とは2国の海岸線から等距離になるような線のことである
518 :1 :2014/10/17(金) 23:03:16.81 ID:XLlp2k/U.net まためんどくさそうな問題を。。。 海岸線のデータは多角形で与えられるの? 入力データ作るだけもでかなり面倒だなぁ。
519 :1 :2014/10/17(金) 23:20:00.94 ID:XLlp2k/U.net できれば100ステップくらいで実装できるの希望。
520 :1 :2014/10/17(金) 23:30:05.44 ID:XLlp2k/U.net 垂直二等分線がカギになるのかな。 どっちにしろむずかしすぎ。
521 :デフォルトの名無しさん :2014/10/17(金) 23:53:33.32 ID:Dp+Vl0QI.net 関数型言語(笑)でいいと思うよ
522 :デフォルトの名無しさん :2014/10/18(土) 00:33:49.53 ID:8XT1TYTP.net >>516 どの教科書に載っているどういう問題をどのように書ける言語にしたいのか、1が言わなきゃどうしようもない。 >>62 >>75 >>83 >>300 >>305
523 :1 :2014/10/18(土) 09:56:05.69 ID:JlR7w5XX.net >>522 教科書は離散数学とかアルゴリズムのやつで。 どのように書ける言語にしたいかはまだアイディアないってことで。 みんなで雑談するうちになんか出てくればいいなと思ってる。
524 :デフォルトの名無しさん :2014/10/18(土) 12:22:35.42 ID:/oNwCDSd.net >>517 実際のデータをおいている場所をご存知のかたはおられませんか?
525 :デフォルトの名無しさん :2014/10/18(土) 14:38:07.57 ID:8EPYxHvD.net >>523 (まだ手元にある>>463 )教科書や扱いたい問題を「いくつか具体的に」示せ、 言語仕様も叩き台になるものを示せ、 1がそうしたことすらやらないんじゃどうしようもない、 ってことだろうに。 http://www.weblio.jp/content/%E3%81%9F%E3%81%9F%E3%81%8D%E3%81%A0%E3%81%84
526 :デフォルトの名無しさん :2014/10/18(土) 14:48:23.34 ID:MO+ZAloR.net SymPyでいいよ。 http://docs.sympy.org/latest/modules/sets.html
527 :1 :2014/10/18(土) 19:42:31.60 ID:JlR7w5XX.net >>524 データ出されてもこんな問題多分とけんぞ。 仮に解けたとしても相当時間かかる。 >>525 もう俺はネタもってない。 >>526 無限あつかうのか。よくこれでまともに動くな。驚くわ。
528 :デフォルトの名無しさん :2014/10/18(土) 21:20:22.32 ID:zBDuzTiF.net >>527 自分の持ってる本に載ってる問題の中から一つ挙げてくれるだけでもいいと思うよ あと、他人の協力を必要としてるのに他人の出した問題にケチをつけるのはよくないよ
529 :1 :2014/10/18(土) 21:42:25.30 ID:JlR7w5XX.net >>528 ケチつけるというか、難易度が半端ないんだが。 もうちょっとお手軽に楽しめるお題を期待していた。 それと本からじゃないけど暇つぶしに一個出題。 一本の紐がありこれを次の操作を9回繰り返して切断する。 操作「今ある紐の断片からランダムに一つ選択し三等分する。」 この操作を行った後、紐の断片をランダムに2つ選択する。 2つの断片の長さが等しい確率を求めよ。 ※未解決な問題 操作をn回行った後断片をランダムに2つ選択したとき長さが等しい確率をp(n)とおく。 lim[n→∞]p(n)はいくつになるか。
530 :デフォルトの名無しさん :2014/10/18(土) 22:05:05.10 ID:nO1Wa2kk.net これに計算機必要なの?
531 :1 :2014/10/18(土) 22:12:35.28 ID:JlR7w5XX.net >>530 手計算でやりたいなら止めないが。
532 :デフォルトの名無しさん :2014/10/18(土) 23:08:22.47 ID:e6RQ0dr6.net 継続中 >>425 >>428 今度はプログラミング言語と関係ない問題をだしてみたり
533 :1 :2014/10/18(土) 23:22:35.69 ID:JlR7w5XX.net >>532 まあ、ネタもないしな。 このスレは基本雑談ってことで。
534 :デフォルトの名無しさん :2014/10/19(日) 09:37:05.49 ID:29Wx6lEI.net あらら。 集合論関係無く、集合操作したかったってことでしょ? で、聞いてみたら既にいろんな言語(ライブラリ)が存在したと。
535 :1 :2014/10/19(日) 17:36:40.59 ID:juftpz1M.net >>534 まあ少し面白い話にならないかと期待してた。 具体的なアイディアはないんだが。
536 :デフォルトの名無しさん :2014/10/19(日) 17:46:26.61 ID:SfAoaW7H.net >>535 まだ手元にある離散数学やアルゴリズムの教科書や、それに載ってる演習問題を挙げる 程度のことすらしないのはなぜ? その程度で >>463 個人情報とか洩れる わけがないのに。
537 :1 :2014/10/19(日) 19:25:17.13 ID:juftpz1M.net >>535 ×まあ少し ○もう少し >>536 じゃあ、まあ、教科書から一個出題。 ニ?ゲームはスティックの山の集まりを用いたゲームである。 一つの手番でプレーヤーはどれか一つの山から1個以上のスティックを取ることができる。 プレーヤーは交互に順番に手番を行う。そして最後のスティックを取るプレーヤーを負けとする。 いま、ニ?ゲームの局面としてs_1,s_2,...,s_k本のスティックからなるk個の山が与えられているとする。 与えられた局面に対し、先手必勝かどうかを判定せよ。
538 :1 :2014/10/19(日) 19:29:53.16 ID:juftpz1M.net あれ、文字化けしてんなぁ。 ニムゲームね。
539 :1 :2014/10/19(日) 21:14:49.94 ID:juftpz1M.net ちなみに>>529 の問題はRubyで689byteで実装できた。 もっと短くかける言語があるよ!という人がいたら教えて。
540 :デフォルトの名無しさん :2014/10/19(日) 21:24:53.85 ID:CFixaMQx.net >>537 まだ手元にある離散数学やアルゴリズムの教科書を何冊か挙げる程度のことすらしないのはなぜ?
541 :1 :2014/10/19(日) 21:38:28.27 ID:juftpz1M.net >>540 これとか。 http://www.amazon.co.jp/dp/4320029488/ もう捨てちまってあんまり持ってないんだよ。
542 :デフォルトの名無しさん :2014/10/19(日) 22:07:12.36 ID:C9CvfGxs.net 教科書捨てる奴ってw 学術的な研究はとっとと諦めた方がいい。向いてない。
543 :デフォルトの名無しさん :2014/10/19(日) 22:15:08.20 ID:lrejmkiS.net >>541 「あんまり」じゃなくて「一冊しか」だろ。
544 :1 :2014/10/19(日) 22:20:34.02 ID:juftpz1M.net >>542 まあな。 >>543 そう責めるな。
545 :デフォルトの名無しさん :2014/10/19(日) 22:28:38.99 ID:N1Fbmuag.net >>541 捨てたんじゃなくて元からその一冊しか持ってなかったんだろ。 で、その本を読んで「集合ってスゲー」と思い、勢いでこのスレを立ててしまったと。
546 :1 :2014/10/19(日) 22:38:57.73 ID:juftpz1M.net >>545 学生のころ使ってた教科書はほとんど捨てたよ。 まあ、勢いでスレたてたのは認める。
547 :デフォルトの名無しさん :2014/10/20(月) 09:04:25.01 ID:jBlrymD4.net >>533 > このスレは基本雑談ってことで。 君は軽い気持ちで立てたスレかもしれないが、多くの住民はム板にクソスレを立てるべきではないと感じている。 だから君への風当たりが強いのである。 雑談なら雑談スレやブログやVIPでやればよい。まあ、このスレを使い切った後にな。
548 :デフォルトの名無しさん :2014/10/20(月) 10:17:53.34 ID:UiYQrarC.net だから、巡回セールスマン問題とかの為に、量子コンピューター用の言語にすればいいのに。
549 :デフォルトの名無しさん :2014/10/20(月) 12:52:46.72 ID:C1FZ+AtI.net とりあえず圏論を学習してからにしてくれ
550 :デフォルトの名無しさん :2014/10/20(月) 18:45:10.40 ID:9HS8Ctp3.net >>546 で、結局何がしたいの?後出しジャンケンがしたかっただけ?
551 :1 :2014/10/20(月) 19:25:51.34 ID:TfUqLiTt.net >>547 まじで。 >>548 量子コンピュータでNP完全問題って多項式時間でとけるようになったのか。 時代は進歩してるな。 >>549 じゃあ、>>549 が教えてくれ。 >>550 後出しジャンケンといわれても困るんだが。
552 :デフォルトの名無しさん :2014/10/20(月) 20:21:35.78 ID:4bxYYw/L.net 教科書捨てるくらいだから頭の中空なんだろ。アイディアもない。 普通ならアホなアイティアで収拾つかなくなってなきゃいけない。 そういうカオスが偶然ぷよぷよみたいに連鎖して新しい発想になる。 才能無い人が努力やコミュ力で才能ある人を打ち負かすっていう 根性論はもう見飽きた。
553 :1 :2014/10/20(月) 20:43:37.79 ID:TfUqLiTt.net >才能無い人が努力やコミュ力で才能ある人を打ち負かすっていう アニメかなんかか?
554 :デフォルトの名無しさん :2014/10/20(月) 20:58:59.44 ID:4bxYYw/L.net デスマーチとかやってるのは才能ないやつ(納期ギリギリまで上流工程やってる上司+素人同然のコーダー)を寄せ集めてやってるからだと思う。 だから デスマーチ=根性論 と思っている。断っておくが、アニメの話でもある。
555 :1 :2014/10/20(月) 22:04:32.06 ID:TfUqLiTt.net なぜに突然デスマーチ? カオスだ偶然だで新しい発想は出ないと思うぞ。 根性からはでるかもしれんが。 まあ、新しいものってのはセオリーに裏打ちされてるもんだよ大抵。
556 :デフォルトの名無しさん :2014/10/20(月) 22:15:50.47 ID:4bxYYw/L.net ある世界Aには学術体系、理論体系が構築されている。 もう一つの世界Bがゴチャゴチャのカオスだとする。 AとBの間には写像のように紐付けがされている。 発想は世界Bから生まれる。 世界Bが空なのが1だ。
557 :1 :2014/10/20(月) 23:08:08.26 ID:TfUqLiTt.net >>556 まじでそんな世界観で生きてんの? アニメの見すぎじゃね?
558 :デフォルトの名無しさん :2014/10/20(月) 23:17:33.77 ID:4bxYYw/L.net 世界Bが空というのは「頭が空」という意味だから言い過ぎた。すまん。 >>1 の発想が尽きたのは、 世界Aの一部と世界Bが一対一対応で同じだからか、 世界Bがあまりに小さいからだと考えられる。
559 :デフォルトの名無しさん :2014/10/21(火) 04:55:39.53 ID:55M9GoPd.net >>551 クレクレ言うから条件に合いそうなものを提供すると、 別の条件を出してソレジャナイと言う。 かといって、自分から何かを提供するわけでもない。 ひたすらクレクレ言い続けて、ソレジャナイと返し続ける。 そういうのを後出しジャンケンと言う。
560 :デフォルトの名無しさん :2014/10/21(火) 05:07:05.92 ID:rC2hZRaT.net 後出しかぁ どうせなら中出しの方がいいな
561 :デフォルトの名無しさん :2014/10/21(火) 08:21:27.32 ID:7wZlZLdP.net ジャンケンドピュッ
562 :デフォルトの名無しさん :2014/10/21(火) 11:02:34.86 ID:yoqXS5RA.net このチラ裏まだやってたのか まだ見限ってない人がいるんだな
563 :デフォルトの名無しさん :2014/10/21(火) 14:21:29.74 ID:3SFXCOz9.net >>559 本当にそれのくりかえしだもんな。
564 :1 :2014/10/21(火) 19:14:06.10 ID:+255aWxA.net >>559 >>563 今の状態で後出しジャンケンというなら、今後も後出しジャンケンは続くとしか言えないな。 まあ、愛想をつかすというなら>>559 >>563 の勝手だよ。
565 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/10/21(火) 20:10:33.19 ID:tyo0JEbH.net >>1 ネタ切れか? まずは、命題論理を実装した言語を作ってもらいたい。 a = true; b = false; c = a && b; println c; //false さあ、できるかな?
566 :デフォルトの名無しさん :2014/10/21(火) 20:13:11.64 ID:rAN/sZsH.net 後出しジャンケン継続宣言w
567 :1 :2014/10/21(火) 20:34:57.34 ID:+255aWxA.net >>565 C++でいいんじゃないか。 >>566 まあ、俺の技量には限界があるからな。
568 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/10/21(火) 20:46:47.47 ID:tyo0JEbH.net >>1 は、大学か独学でコンパイラやスクリプト言語の作り方の勉強をしたのかね?
569 :1 :2014/10/21(火) 21:00:41.61 ID:+255aWxA.net >>568 さわりだけ。 ぶっちゃけ、ひらがな電卓はかなりすごいと思う。
570 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/10/21(火) 21:08:49.12 ID:tyo0JEbH.net 新しく言語を作るなら、バックエンドはGCC系、LLVM系、他言語変換系(Java,JS,C,C++)のいずれかが妥当だろうな。
571 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/10/21(火) 21:21:00.17 ID:tyo0JEbH.net GCCで作るなら、GDCのソースを読むべし。 GDC (D Programming Language for GCC)
572 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/10/21(火) 21:27:37.89 ID:tyo0JEbH.net 言語変換で作るなら、Pascal⇔C変換プログラムのソースを読むべし。
573 :1 :2014/10/21(火) 21:28:12.21 ID:+255aWxA.net LLVMとか多分無理。 他言語変換系がいいかな。 個人的にはRubyが好みなんだが。
574 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/10/21(火) 21:57:41.40 ID:tyo0JEbH.net Ruby上で推論・数式処理・計算をする実行時モジュール作ればいいんじゃね?
575 :1 :2014/10/21(火) 22:36:26.49 ID:+255aWxA.net なぜに突然、推論、数式処理がでてくるのかわからんが。 わざと面倒くさそうなの持ってきてない?
576 :デフォルトの名無しさん :2014/10/22(水) 05:45:57.21 ID:wja3nREO.net 集合論扱うのに必須だからだろ
577 :デフォルトの名無しさん :2014/10/22(水) 05:48:31.37 ID:wja3nREO.net ルビ厨ってこんなんばっかり 威勢のいいこと言うだけで自分は何もしない 他人や他言語の成果に乗っかるだけ
578 :デフォルトの名無しさん :2014/10/22(水) 15:09:01.24 ID:WTBQKchq.net Rubyまでとばっちりw
579 :デフォルトの名無しさん :2014/10/22(水) 18:30:22.20 ID:kKncjr9Q.net >>559 「わざと難しそうなの持ってきてない? 」「わざと面倒くさそうなの持ってきてない?」と言ってみたり >>474 >>575
580 :デフォルトの名無しさん :2014/10/22(水) 19:56:19.33 ID:fCfdG1e1.net >>517 二つの海岸線を曲線L1, L2とおいた時に、あるp(x,y)∈L1と曲線L2との中間点を pとpを通る傾き-dx/dyの直線lとL2との交点との間にひかれる線分の中点とすると、 二つの海岸線の中間線はこの中点を集めたものになる?
581 :デフォルトの名無しさん :2014/10/22(水) 22:36:02.17 ID:iNJY0L1E.net 設問の矛盾が問題ややこしくしているだけ。 その矛盾とは湾だ。湾を除外すれば簡単になる←このへんの要領の良さが仕事では重要。 まず陸地に外接する凹みのない多角形を生成すればいい。 次に各国の外接多角形どうしから等距離の点の軌道を求めればよい。
582 :デフォルトの名無しさん :2014/10/22(水) 22:41:47.09 ID:iNJY0L1E.net 国Aの外接多角形上の点を定めれば、そこから国Bへの最短距離の線分が定まる。その中間点は明らかに 国Bから同様の手順で求めた中間点と同じだ。だからその軌道で中間線は定まる。
583 :デフォルトの名無しさん :2014/10/22(水) 22:49:57.00 ID:iNJY0L1E.net なお凸な外接多角形を用いない場合、中間線は定まらない。
584 :デフォルトの名無しさん :2014/10/22(水) 23:34:03.55 ID:iNJY0L1E.net 設問(仕事における設計)を改変したことで怒られることはありえるので、アホ設計者に相談するのが先決である。
585 :デフォルトの名無しさん :2014/10/22(水) 23:58:12.26 ID:iNJY0L1E.net 定まらなくもないか、凹の部分の曲率が、相手国から引いた最短距離を半径とする円より小さいならば定まる。
586 :デフォルトの名無しさん :2014/10/23(木) 01:20:06.15 ID:mtwqOq23.net ああそっか、最短距離でいいのか…いらんこと考えて複雑にしてたthx http://pastebin.com/LqkjJc5k
587 :デフォルトの名無しさん :2014/10/23(木) 01:51:05.76 ID:B12M++5h.net 何がムカつくって、>1が何もするつもりが無さそうなのに成果だけクレクレ言っているところだよな。 >1はPrologについて調査したのか?
588 :デフォルトの名無しさん :2014/10/23(木) 02:14:57.76 ID:TE8bWo7Y.net 最短距離じゃない。線分とそれを微小移動させた線分とが作る平行四辺形の密度が全海域に渡って一定となるように微小移動(速度関数)を決めればいいのか。 微分積分の問題。
589 :デフォルトの名無しさん :2014/10/23(木) 02:16:30.21 ID:TE8bWo7Y.net 平行四辺形じゃなくて四角形 ,ねじれて2つの三角形になることもある。
590 :デフォルトの名無しさん :2014/10/23(木) 02:20:07.97 ID:TE8bWo7Y.net ねじれて2つの三角形になることもある→ない。
591 :デフォルトの名無しさん :2014/10/23(木) 04:45:24.37 ID:xJ2edcK8.net で、それのどこが集合論?
592 :デフォルトの名無しさん :2014/10/23(木) 04:46:42.26 ID:dXJn7cDs.net ID:TE8bWo7Y は病気なんです。何も言わずにNGして下さい
593 :デフォルトの名無しさん :2014/10/23(木) 09:00:17.01 ID:xLBbOXbP.net >>588 別に海岸線上の点を連続的に動かす必要ないでしょ 一般に距離空間において点Pから集合A,Bまでの距離をそれぞれd(P,A),d(P,B)とおくと これらは連続関数になるからd(P,A)=d(P,B)を満たす点Pの集合を求めりゃいいだけ
594 :デフォルトの名無しさん :2014/10/23(木) 12:20:33.04 ID:TE8bWo7Y.net 海岸線を微分するためには連続関数にしなければならない。 そのためにはまずB-spline曲線近似する必要がある。 プロットした点を除外し再計算することでB-splineから湾を除去することもできる。 このように海岸線をパラメトリック曲線で表すことにより パラメータの範囲を求めることができる。 どのように求めるかというと2つのパラメトリック曲線上の点が 2つの海岸線の共通の接線となる値を求め、それの最大と最小を求めればいいのだ。 これにより分割すべき海域が求まる。 次に海域を等密度で並ぶ線を求めることを考える。
595 :デフォルトの名無しさん :2014/10/23(木) 12:25:21.29 ID:TE8bWo7Y.net 訂正;2つのパラメトリック曲線上の点が→2つのパラメトリック曲線上の点を通る線が
596 :デフォルトの名無しさん :2014/10/23(木) 12:40:29.47 ID:TE8bWo7Y.net そんなことしなくてもいいか。 2つのB-spline曲線上の点を結ぶ線分で、他の箇所と交わらないようにパラメータの最大と最小を求めればいい。
597 :1 :2014/10/23(木) 18:46:19.11 ID:gc7yGcGD.net >>587 Prologだとどんな問題がHaskell,Rubyよりうまく解けるの? なるべく人為的でない自然な問題希望。 >>596 すげぇ難しそうですね。 俺はもうギブアップです。
598 :デフォルトの名無しさん :2014/10/23(木) 19:35:25.06 ID:xJ2edcK8.net B-spline以外にもC1連続な曲線なんていくらでもあるだろ
599 :デフォルトの名無しさん :2014/10/23(木) 19:39:22.10 ID:TE8bWo7Y.net さて2つのB-spline曲線をF(t),G(t) とする。 2つの曲線上の点を結ぶ大陸間横断線分が海域を等密度で並ぶようにし,F,G間の関係式を求めてみよう。 まずその線分が微小移動したときにできる細い四角形の面積を求める。 2つのベクトルのなす三角形の面積の外積公式より A=(1/2)*|ΔF×L| B=(1/2)*|ΔG×(-L)| (面積が負にならないようにベクトルの向きを逆にするといい) A+Bが細い四角形の面積であり、これを大陸間横断線分の長さ|L|で割ったものを密度と定義し一定であればよい。 なおLは大陸間横断線分のベクトルであり、後に積分するので移動前と移動後とは近似できる。 (A+B)/|L|=C ただしCは定数 A+B=C*|L|と変形し両辺積分する。積分範囲は上記ですでに求めてある。 ∫Adt+∫Bdt=曲線の長さの関数の定数倍=c(t) F(t)=F(Fx(t),Fy(t)),G(t)=G(Gx(t),Gy(t))とすると c(t)=∫(Fx'*(Gy-Fy)-Fy'*(Gx-Fx))dt-∫(Gx'*(Gy-Fy)-Gy'*(Gx-Fx))dt c(t)=∫(Fx'-Gx')*(Gy-Fy)dt + ∫(Gy'-Fy')*(Gx-Fx)dt c(t)=-∫(Gx-Fx)'*(Gy-Fy)dt + ∫(Gx-Fx)*(Gy-Fy)'dt 部分積分の公式より c(t)=-∫(Gx-Fx)'*(Gy-Fy)dt +[(Gx-Fx)*(Gy-Fy)](a→b)- ∫(Gx-Fx)'*(Gy-Fy)dt c(t)=[(Gx-Fx)*(Gy-Fy)](a→b)- 2∫(Gx-Fx)'*(Gy-Fy)dt ・・・(1) この式はこれ以上簡単にならないように思えるが、B-spline曲線はベジェ曲線の集まりであるから各ベジェでこの積分式を解くことができる。 c(t)もB-spline曲線の性質により簡単に求まるので、F(t)とG(t)の関係式が得られる。 関係式が得られたら線分と中点も求まる。 なお辺が交差して四角形が崩れないようにするには大陸間横断線分が他の部分と交差しないように湾を削っておけばよい。 >>598 どんな曲線でもいいわけではなく(1)が解けなければいけない。
600 :デフォルトの名無しさん :2014/10/23(木) 19:46:13.66 ID:xJ2edcK8.net >>599 人格障害ですか?お大事に。
601 :デフォルトの名無しさん :2014/10/23(木) 20:26:31.21 ID:TE8bWo7Y.net まともに解こうとすると糞難しい。 この問題を安易に解く方法は両陸地に接する円をすこしづつ動かして中心点をつないでいくのがよい。
602 :デフォルトの名無しさん :2014/10/23(木) 21:45:05.80 ID:lKZXmaCH.net >>597 離散数学やアルゴリズムの教科書の演習問題みたいなのでいいんだよな。 >>300 >教科書の章末問題をサクサクっとインプリメントすることを目的としてる。 >実用性はあんまり求めない。
603 :1 :2014/10/23(木) 22:11:09.64 ID:gc7yGcGD.net >>602 >離散数学やアルゴリズムの教科書の演習問題みたいなのでいいんだよな。 おk できれば言語差がはっきりわかるやつ頼む。
604 :587ではない :2014/10/23(木) 22:48:38.73 ID:jdc4xe8Q.net >>597 問題領域が「有限集合と集合間の関係」でモデル化できるのであれば、 関数型やオブジェクト指向よりも論理型言語の Prolog のほうが圧倒的に簡潔に書ける ・プログラミング雑談スレ♯+++ http://peace.2ch.net/test/read.cgi/tech/1406986967/357-371 この例では、従業員/部門/所属という有限集合を扱っている たとえば集合 従業員 は以下のように定義される 従業員 = { <1, 山田>, <2, 鈴木>, <3, 田中>. <4, 松下>. <5, 本田> } ここで、「<X, Y>」は集合 X と Y の直積を表す
605 :デフォルトの名無しさん :2014/10/24(金) 11:20:44.18 ID:gLVwzl7v.net Coqにおける集合論的直観主義 数学の実装 http://shirodanuki.cs.shinshu-u.ac.jp/TPP/TPP2013_satou.pdf ハイ、このスレ終了〜
606 :デフォルトの名無しさん :2014/10/24(金) 19:07:28.65 ID:smFrq6Ls.net そういう意味での終了ならとっくに終了してる。ずっと雑談スレとして続いている。 まあこのペースなら放置よりも1000の方が落ちるのが早そうだから、さっさと消化して落としてしまうのがいいだろう。
607 :デフォルトの名無しさん :2014/10/25(土) 13:59:00.13 ID:hqtmXmou.net >>605-606 ほんとにCoqなんかで終了と思っとるん?
608 :デフォルトの名無しさん :2014/10/25(土) 14:49:44.46 ID:CW0KbvIq.net 思ってるよ 何か問題でも?
609 :デフォルトの名無しさん :2014/10/25(土) 15:00:33.74 ID:rVCkRMh+.net それは証明系であって、汎用プログラミング言語じゃない。 コーディングしているのは証明。
610 :デフォルトの名無しさん :2014/10/25(土) 17:23:24.88 ID:0lds8eT1.net >>609 それのどこが問題なんだ?
611 :1 :2014/10/25(土) 21:33:01.44 ID:ujOd7NYK.net prologでconnect4作ろうとしたんだがやり方がよくわからん。 盤面の情報はどうやって保持すればいいんだ?
612 :デフォルトの名無しさん :2014/10/26(日) 04:14:23.56 ID:dhX+3K0L.net >>611 リストじゃダメなのか? 効率が良くなければならないってことはないんだよな? >>299 >関数型言語は効率が悪そうたって、「集合論に基づいた言語」とかいうのはもっと効率が悪くなるだろうに。 >>300 >集合論に基づいた言語は教科書の章末問題をサクサクっとインプリメントすることを目的としてる。 >実用性はあんまり求めない。
613 :デフォルトの名無しさん :2014/10/26(日) 11:52:04.74 ID:WbgAndU6.net >>612 その人に理由きいたって無駄だよ。 関数型言語は効率悪いから集合論言語として却下するけど、 集合論言語は効率度外視でいいとか言い出す上に ルビーは文字列操作ユーティリティーが充実してるから使えるとか 真顔で書いちゃう人なんだから。
614 :デフォルトの名無しさん :2014/10/26(日) 12:19:59.03 ID:lx1fz+FP.net おいおいそんなこと書くと『わざと曲解してないか?』って言われちゃうぞ
615 :1 :2014/10/26(日) 19:06:58.39 ID:bR5aD7tI.net >>613 関数型言語却下は効率わるいからじゃなくて生産性あがんないからだよ。 まあ、探せば生産性あがる問題もあるのかもしれんが。 prologなんか無限ループっぽくなるんだが。 裏でなにやってんのかよくわからん。 prolog確かに面白そうではあるんだが、いまいち理解できん。
616 :デフォルトの名無しさん :2014/10/26(日) 21:24:52.33 ID:cZX7ddvm.net >>615 有限集合限定でよければHaskellのリストで代用できるだろ。重複要素を取り除くようにすればいいだけで。 「生産性が上がらないからHaskell等は却下」ということなら集合を扱う言語を新たに作っても生産性は上がらない。 1は「集合を扱う言語を作れば高い生産性をもつはずだ」と具体案も示さずに言っているだけ。
617 :1 :2014/10/26(日) 21:39:05.82 ID:bR5aD7tI.net >>616 リストで集合の代用できるのは確かにそうだが、それを言ったらいろんなデータ構造が無意味になっちゃうだろ。 代用できるだけじゃやっぱダメなんだよ。 具体案を出してないのは認める。
618 :デフォルトの名無しさん :2014/10/26(日) 22:12:04.35 ID:lx1fz+FP.net 「生産性」とかいいながらやっぱり効率の面で却下してるね もいっぺん>>615-617 を冷静に読みかえしてみて。 >>616 は一言も効率(やデータ構造)の話はしてないよ せめて自分の頭んなかくらい整理して書いてくれ 整理せずに断片的に書きちらしてるから後出しって言われんだよ
619 :1 :2014/10/26(日) 22:24:04.14 ID:bR5aD7tI.net >>618 俺も効率の話はしてないつもりだったが。 例えばキューやスタックなんかはリストで簡単に代用できるが、 専用のクラスを用意しておくことは意味があると思ってる。
620 :デフォルトの名無しさん :2014/10/26(日) 22:37:21.48 ID:lx1fz+FP.net なんでそこでキューやスタックがでてくるんだw 有限集合の話じゃないのかよwwww
621 :1 :2014/10/26(日) 22:40:47.72 ID:bR5aD7tI.net 集合とリストは本質的に異なるという立場。 まあ、代用はできるんだが。
622 :デフォルトの名無しさん :2014/10/26(日) 22:51:49.39 ID:lx1fz+FP.net では>>616 が書いて>>1 も同意したように "重複要素を取り除く"ような薄いラッパーをかませばhaskellのリストは有限集合の代用になるのに それ以外に効率とは関係なく「生産性」の上で課題になる「集合とリストの本質的な違い」ってなんだ?
623 :1 :2014/10/26(日) 23:02:30.10 ID:bR5aD7tI.net ぶっちゃけラッパーかませば問題ないなw そういう薄いラッパーみたいなこまごまとした小道具がきっちりそろってるのがRubyの魅力だったりする。 でもまあ、今更だけど効率的に計算オーダーが変わっちゃうのはやっぱちょっと気になるかな。
624 :デフォルトの名無しさん :2014/10/26(日) 23:09:02.90 ID:uNWVyTps.net Rubyしかしらないだけでしょ
625 :デフォルトの名無しさん :2014/10/26(日) 23:16:23.07 ID:lx1fz+FP.net 効率以外の面では既存言語(例えばhaskell)に集合操作ぽいラッパーがあればそれで充分と認めたんだよな? 問題は有限集合を扱う効率だけだということになってかなり整理されたな。 じゃお前さんが「生産性」の上では充分だと思うようなラッパーを既存言語の上で定義してくれよ。 haskellでもrubyでもいいよ それがあれば効率よく処理する必要があるターゲットがみんなにも具体的によくわかる。
626 :1 :2014/10/27(月) 00:02:38.69 ID:hKk3OxSM.net >「生産性」の上では充分だと思うようなラッパー ここが一番難しい。 ぶっちゃけ、まだこれだというアイディアはない。 普通に考えると集合論で定義されている一般的な演算をインプリメントすることになるんだろうけど、 それで生産性どの程度あがるかなぁ。 まあ、>>59 >>62 でも言ってるけど、なんか面白いアイディアがないとダメかなと思ってる。
627 :デフォルトの名無しさん :2014/10/27(月) 00:16:15.58 ID:xsoB8LA3.net ここまで短時間で主張を二転三転されると笑うしかないな あえて好意的に解釈しても正気かどうか心配になるレベル
628 :デフォルトの名無しさん :2014/10/27(月) 00:50:39.76 ID:UstcwDIj.net 関数型で生産性上がらないみたいなこといってるけど、例えば商集合演算を書く時はどうすんの。 集合論に基づいた言語を作るなら、少なくとも関数がファーストクラスであることは生産性に大きく関わると思うんだけど。 あと数学の関数は状態を持たないから、全ての関数が参照透明であるかどうかはともかくとして、 数学の意味での関数を使う場合には参照透明な関数であることを制約するような記述ができる必要があるかもね。
629 :デフォルトの名無しさん :2014/10/27(月) 03:06:19.81 ID:S1pbHk8f.net >>623 「集合論に基づいた言語」を新たにつくっても、その言語に「こまごまとした小道具」はそろってないわけだが、 そうするとその新言語は1にとって魅力がないってことになるんじゃないか? Rubyだったら簡単にできることが新言語では簡単にはできないのだから。
630 :デフォルトの名無しさん :2014/10/27(月) 04:05:38.32 ID:dHQizD3i.net >>420 >>409 のリンク先にあるような、集合や列の内包表記を使ったプログラムを読むのは1にはしんどいってことだな。
631 :デフォルトの名無しさん :2014/10/27(月) 05:43:19.35 ID:Rvvlh30F.net 結局、ルビー以外を提案しても全部却下して 「ここがルビーのいいところ」とか書いちゃうんだよ。 関数型言語の生産性の高さも知らずにね。
632 :デフォルトの名無しさん :2014/10/27(月) 06:55:54.77 ID:9dCb0Lih.net そもそも「作りたい」ってスレタイが間違ってんじゃね こいつ絶対作る気ないだろ
633 :デフォルトの名無しさん :2014/10/27(月) 11:42:55.16 ID:VoSGhOqg.net そんなことはどうでもいい
634 :1 :2014/10/27(月) 20:16:20.56 ID:hKk3OxSM.net >>627 まあ、確固たる主張があるわけではないからな。 >>628 関数はファーストクラスの方がいいだろうな。 参照透明性は微妙。 あるに越したことはないけど、そこ頑張りどころかなぁ?という気はする。 >>629 ぶっちゃけ、Rubyは最強言語なので。 そんな簡単には超えられないでしょう。 >>630 正直、かなりしんどい。 あれ以上は簡単にできないのかもしれんが。 >>631 関数型言語で生産性が上がる問題があるなら教えてくれ。 >>632 まだネタ出しの段階だからな。実装ははるか先の話だ。
635 :1 :2014/10/27(月) 20:19:14.66 ID:hKk3OxSM.net それにしてもprolog動かんなぁ。 センスないわ俺。
636 :デフォルトの名無しさん :2014/10/27(月) 21:05:20.40 ID:K1rstjve.net >>634 >関数型言語で生産性が上がる問題があるなら教えてくれ。 で、相手が何か例を挙げたらケチつけるんだろw 自分は「集合論に基づいた言語」で生産性が上がる例を示さずにw
637 :1 :2014/10/27(月) 21:22:05.89 ID:hKk3OxSM.net 俺がケチつけられないほど明確に生産性の上がってる問題を頼む。
638 :1 :2014/10/27(月) 21:25:15.63 ID:hKk3OxSM.net まあ、集合論に基づいた言語は絵空事で終わる可能性があるからな。 関数型言語はそんなことないんだろ?
639 :デフォルトの名無しさん :2014/10/27(月) 21:40:34.27 ID:xsoB8LA3.net ほんとに何言ってんのかねこの人はwww
640 :デフォルトの名無しさん :2014/10/27(月) 21:48:32.99 ID:K1rstjve.net >>637 そうした例を挙げても1に餌を与えるだけだし。 関数型言語でも論理型言語でもその他でも同じこと。
641 :デフォルトの名無しさん :2014/10/27(月) 22:01:34.98 ID:UstcwDIj.net 高階関数によるチェインなんかは生産性のあがる例じゃないの。並列化も簡単でしょ。 まあ関数型のスレではないけど、集合論というか数学ってまさに関数型言語なのに、 よくわかってなさそうだからつっこまれるんだろうけど。
642 :デフォルトの名無しさん :2014/10/27(月) 22:37:28.46 ID:K1rstjve.net >>300 >集合論に基づいた言語は教科書の章末問題をサクサクっとインプリメントすることを目的としてる。 >実用性はあんまり求めない。 >>305 >集合論に基づいた言語では狭い領域の問題に限り(教科書の章末問題とか) >高い生産性を発揮することを目標にしてる。 「サクサクっとインプリメント」できるどうか、「高い生産性を発揮」しているかどうかは、1の主観で判断される。
643 :1 :2014/10/27(月) 22:42:25.97 ID:hKk3OxSM.net >>641 確かに高階関数はカッコいい気がするが、具体的にどんな問題で使われてるか知らない。 並列化は簡単というが、まだ実現はしてなかったような。 まあ、俺は関数型言語も数学も造詣はないな。
644 :デフォルトの名無しさん :2014/10/27(月) 22:54:12.79 ID:CRLCLkYm.net jqueryのメソッドチェーンは便利だね
645 :デフォルトの名無しさん :2014/10/27(月) 22:57:50.25 ID:UstcwDIj.net >>643 個人的な経験でいえば、DBからデータを取ってきて加工したりするときに非常に書きやすいかな。 とにかく、コレクションのデータを加工して流すときに非常に簡潔に書ける。 他にもあるけど、今すぐに思いついたのはこれかな。 並列化はClojureなんかは簡単に書ける。Javaも8からできたんじゃなかったっけ。まあJavaのあれは関数型と言うには気持ち悪いけど。 というか、適用する関数が副作用を持たないと仮定するなら、作用させるデータを分割して再結合すればいいっていう単純な話でそ。
646 :デフォルトの名無しさん :2014/10/27(月) 23:02:23.54 ID:UstcwDIj.net あ、メソッドチェーンにおける並列化が簡単にできるという意味ね。 プログラム自動並列化は詳しくないけどまだ発展途上じゃないかな。
647 :1 :2014/10/27(月) 23:32:47.45 ID:hKk3OxSM.net >>645 ふーむ。確かにコレクションのデータを加工して流すのは出現頻度が高そう。 勉強になりました。 Clojuerちょっとぐぐってみたけど、ソフトウェア・トランザクション・メモリーとかよくわからんかった。 とりあえず簡単に並列化できそうな雰囲気は伝わってきたw
648 :デフォルトの名無しさん :2014/10/28(火) 00:54:20.05 ID:2moDL6+C.net >>とにかく、コレクションのデータを加工して流すときに非常に簡潔に書ける。 >ふーむ。確かにコレクションのデータを加工して流すのは出現頻度が高そう。 >勉強になりました。 このスレでHaskellの名前が出てから2ヶ月たつけど、2ヶ月の間に自分で調べたりはしなかったんだな。
649 :デフォルトの名無しさん :2014/10/28(火) 01:22:16.19 ID:F9KmtOQp.net この言語が最強っていう信念のある人だからね
650 :デフォルトの名無しさん :2014/10/28(火) 01:46:36.67 ID:2moDL6+C.net Ruby最強と思っているらしいけど、それなら新しい言語を作ろうなんて思わければ良さそうなものだがな。 新しい言語を作っても、Rubyにあるような、お気に入りの便利な機能なんかないから、「Rubyなら簡単にできるのに」 って不満がたまるだけだろうに。 集合を使った表記法のプログラムを読むのもかなりしんどいそうだし。>>634
651 :デフォルトの名無しさん :2014/10/28(火) 13:51:55.51 ID:/Y9XnqU0.net >>638 ちょっと待った。 絵空事で終わらない可能性がゼロでないことを説明してくれ。 >>643 C++ やるんじゃなかったけ? <functional> とか高階関数だらけじゃん。 Javascript とかでも良く使うよ。Ruby では使わないの?
652 :デフォルトの名無しさん :2014/10/28(火) 14:27:02.71 ID:BaOL+HSr.net >>643 高階関数って名前じゃ無くても同じ事させてるのは体験してるだろ? あるオブジェクトのリストを(必要な要素だけ抽出(filter)してデータ変換(map)して集約(reduce)させるとか
653 :デフォルトの名無しさん :2014/10/28(火) 15:52:04.32 ID:g7PPMDyH.net 関数型の生産性の証拠は求めるけど もちろんルビー最強の証拠なんて知らんぷり
654 :デフォルトの名無しさん :2014/10/28(火) 15:53:32.28 ID:g7PPMDyH.net 典型的なルビ厨
655 :デフォルトの名無しさん :2014/10/28(火) 16:20:55.17 ID:mPN7Yd+C.net >集合論に基づいた言語は教科書の章末問題をサクサクっとインプリメントすることを目的としてる。 >実用性はあんまり求めない。 >集合論に基づいた言語では狭い領域の問題に限り(教科書の章末問題とか) >高い生産性を発揮することを目標にしてる。 1の言う「生産性」はこういうことだから、教科書やそれに載ってる問題を具体的に挙げて、 この問題をこういうふうに書きたいんだけど、Rubyではこんなふうにしか書けない、 Haskellではこんなふうにしか書けない…、そのためにサクサクっとインプリメントすることができず、 生産性が上がらない って話を1がしないとどうしようもないんだよな。 Rubyその他、既存の言語で「サクサクっとインプリメントすること」ができるのなら 新しい言語をつくる意味がないんだから。
656 :デフォルトの名無しさん :2014/10/28(火) 20:20:01.18 ID:sNcgfmnM.net >>655 結局それにつきるな それに対して1は具体的はアイディアがないからとか 返答になってないことをうだうだ言うだけで問題意識を明らかにしようとはせず そのうちまた新しいループがはじまる、と。
657 :1 :2014/10/28(火) 21:27:06.97 ID:Eyw4r4/G.net >>648 まあな >>651 >絵空事で終わらない可能性がゼロでないことを説明してくれ。 それはむずかしいな。 数学っぽくプログラムできたらいいんじゃね。とか 教科書の記述がそのまま実装になったらいいんじゃね、とか そういう曖昧なイメージがあるだけで、見切り発車でスレたてたからな。 >C++ やるんじゃなかったけ? <functional> とか高階関数だらけじゃん。 functionalって使ったことないかも。 setやmapでoperator<を定義することはあるけどそれとは違う? >Ruby では使わないの? Enumerableのメソッドならよく使うが。 >>652 Rubyのcollectとかはよく使う。 >>655 >>656 まあ、サクサクインプリメントできない問題が具体的にあったわけじゃないんだよな。 数学的な記述がそのまんま実装になったら楽しいかなぁとかその程度の問題意識しかなかった。 プログラミングの素養がなくても教科書丸コピで動いちゃうみたいな? そんな感じ。 ちなみに、教科書丸コピは後付けなんだよなぁ。 いろいろやってるうちにこのスレを立てた時の最初の気持ちは何だったのかもう忘れてしまった。
658 :デフォルトの名無しさん :2014/10/28(火) 22:13:27.20 ID:SAcW2ukT.net >>657 教科書の演習問題を丸コピすれば答を出してくれるソフトをつくろうと してたのか? w ごまかそうとしないで、どの教科書のどの演習問題をどのように実装できる 言語をつくろうとしているのかちゃんと書け。
659 :デフォルトの名無しさん :2014/10/28(火) 23:02:45.22 ID:SAcW2ukT.net >>575 こんなことを書くぐらいだから、推論や数式処理の機能をもつ言語を考えていたわけじゃないよな。
660 :デフォルトの名無しさん :2014/10/29(水) 01:09:17.84 ID:7WbuvXm2.net プログラミング言語に有限集合を扱う機能を持たせさえすれば 離散数学やアルゴリズムの教科書の 「数学的な記述がそのまんま実装になった」り 「プログラミングの素養がなくても教科書丸コピで動」かせるようになると 1は思っているということだな。
661 :デフォルトの名無しさん :2014/10/29(水) 07:51:54.82 ID:uFHhP6NK.net >>657 >数学っぽくプログラムできたらいいんじゃね。とか いい言語を教えてやろう。FORTRAN (FORmula TRANslator) だ。
662 :デフォルトの名無しさん :2014/10/29(水) 15:03:48.76 ID:+dOdWCkt.net >>655 ヤフーニュースのコメント欄の私もそう思うボタンを探してしまった。 >>657 > setやmapでoperator<を定義することはあるけどそれとは違う? std::set<int, std::less<int> > s; const size_t c = std::count_if( s.begin(), s.end(), std::bind2nd(std::greater<int>(), 5) ); 例えば後者。関数を返す関数を呼んで、戻された関数を別の関数が呼んでる。
663 :デフォルトの名無しさん :2014/10/29(水) 20:53:26.55 ID:0HNaGJ1I.net 当の本人がどうしたいのかハッキリしてない以上 「顧客が本当に必要だったもの」のあの絵の状態になる可能性は非常に高い 本人はプログラマのつもりかも知れんが、実際は顧客の物言いをしてる しかも、注文とダメ出しだけ多くて、かつ本人は解ってる(つもり)というタイプの この板は「こんなソフト作ってよ」と頼む場所ではないと思うのだが
664 :デフォルトの名無しさん :2014/10/29(水) 21:05:16.16 ID:ITcKex6d.net まだ構想(=夢)の段階であれこれと夢想し構想し、その過程が文字で見える過程を、傍からみている私は楽しんでいる >>1 続けてくれ
665 :1 :2014/10/29(水) 23:04:45.80 ID:6KDieIbJ.net >>658 むりぽ >>662 bind2ndとか知らなかったわ。テンプレート恐るべし。 まあ、勉強になりました。 >>664 ぶっちゃけ、毎日書き込むのつらくなってきたわ。 このスレは今後不定期更新になりますw
666 :デフォルトの名無しさん :2014/10/30(木) 00:38:38.53 ID:HxKeCYce.net >>665 1が書き込んだあとには 1に餌を与えないでください >>559 >>655-665 と書いたほうがいいな。 そうしないと同じことの繰り返しになるだろうから。
667 :デフォルトの名無しさん :2014/10/30(木) 03:27:37.45 ID:sggd5tBz.net >>666 >>425 も追加で。
668 :1 :2014/10/31(金) 20:03:03.95 ID:g6D744er.net prologのconnect4がどうしても動かん。 誰か俺のコードをデバッグしてくれ。現状のコードは以下。 get_atでリストのN番目の要素を返す。 get_stoneでBOARDの(X,Y)の位置にある石を返す。盤の外を指定したときは3を返す。 straightで連続した石の数を数える。DX,DYは連続した石を探索する方向。 board([[],[],[],[],[],[],[]]). myboard([[1,2],[1,1],[1,1,1],[1,1,1,2],[],[],[1,2,1]]). get_at(_,[],_):- fail. get_at(0,[X|_],X). get_at(N,[_|Ls],Y):- N1 is N -1, get_at(N1,Ls,Y). get_stone(_,X,_,3):- X<0,!. get_stone(_,X,_,3):- 6<X,!. get_stone(_,_,Y,3):- Y<0,!. get_stone(BOARD,X,Y,0):- get_at(X,BOARD,Xs), length(Xs,L), Y >= L,!. get_stone(BOARD,X,Y,S):- get_at(X,BOARD,Xs), get_at(Y,Xs,S),!. straight(BOARD,X,Y,_,_,S,0):- get_stone(BOARD,X,Y,S1), S1 \== S,!. straight(BOARD,X,Y,DX,DY,Stn,Len):- X1 is X + DX, Y1 is Y + DY, Len1 is Len + 1, straight(BOARD,X1,Y1,DX,DY,Stn,Len1),!.
669 :デフォルトの名無しさん :2014/10/31(金) 20:34:56.87 ID:eFG4AR46.net >>668 それと「集合論に基づいた言語を作る」のとどういう関係があるんだ? >>666-667
670 :デフォルトの名無しさん :2014/10/31(金) 20:42:19.57 ID:eFG4AR46.net >>668 ↓で教えてもらえ 【論理】Prolog【初心者】 http://peace.2ch.net/test/read.cgi/tech/1289016056/
671 :デフォルトの名無しさん :2014/11/01(土) 00:21:10.18 ID:QdACbqof.net >>670 その結果。 http://peace.2ch.net/test/read.cgi/tech/1289016056/786 |全般的な感想として、1)..3) を見るに (Prolog 以前に)一般的なプログラミングの基礎が身に付いていないと思う |おそらく集合理論言語スレの 1 だと思うけど、大学で情報系を専攻していたのなら情けない結果だ |学生時代に遊んでいたのか、当時はできたけど今はその感覚が戻っていないだけなのか、わからないけどね |現状のレベルでは、言語処理系を自作するなんてのは、夢物語か妄想のたぐいと判断せざるをえない
672 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/11/01(土) 20:55:00.77 ID:jtBHZTX6.net Boost.Iclを参照せよ。
673 :1 :2014/11/02(日) 00:06:07.92 ID:WfQoOxnP.net >>672 情報はありがたいんだが、レスするのペースダウンするつもりなので宿題にさせてくれ。
674 :デフォルトの名無しさん :2014/11/02(日) 14:33:07.98 ID:2+jwxmIt.net >>673 >宿題 集合論に基づいた言語の作成に関係があるからこのスレに書くべきだと示せるのでなければ 宿題はBoost総合スレにでも行ってやれ。 Boostに興味がある人・詳しい人はそっちのスレのほうが多くいるはずだ。 他の言語・ライブラリのことでも同様。その言語・ライブラリに興味がある人・詳しい人が多そうなスレを選んで書け。 >>425 >>559 >>655-665
675 :1 :2014/11/02(日) 18:33:09.61 ID:WfQoOxnP.net >>674 このスレの基本スタンスは雑談なので面白そうなトピックスは適宜拾っていったらいいんだぜ? そうじゃなきゃ尺が稼げんだろうがw
676 :デフォルトの名無しさん :2014/11/02(日) 20:08:03.24 ID:4mhasaGI.net >>425 今度は『ここは雑談スレだ』と言い出した。
677 :1 :2014/11/02(日) 21:55:00.94 ID:WfQoOxnP.net あと、このスレは俺中心に進めていく必要はないんだぜ? みんなで雑談してくれて構わないんだぜ?
678 :デフォルトの名無しさん :2014/11/02(日) 22:45:12.36 ID:2oaHueQb.net >>676 雑談スレはすでにあるのにな。 http://peace.2ch.net/test/read.cgi/tech/1406986967/ >>559 1は「何でもいいから話題クレクレ」に路線変更。
679 :デフォルトの名無しさん :2014/11/03(月) 08:07:42.94 ID:FKymKC8X.net >>1 > 徹底的に集合論的思想で言語仕様を考えるスレです。 どう読んでも雑談スレじゃないよね
680 :デフォルトの名無しさん :2014/11/03(月) 11:16:05.33 ID:C9Z/RfTt.net それでもいいんじゃない‥雑談スレはすぐに話題が収束するからね‥
681 :1 :2014/11/05(水) 21:01:40.21 ID:aXYuBMMC.net prolog版connect4できたっぽいのであげます。 http://www.age2.tv/rd05/src/up5443.txt.html 長かった…! prologでプログラミングするには… なんと多くの辛抱が必要なものかと…! あんまりテストしてないのでバグがあるかも。
682 :1 :2014/11/05(水) 21:29:06.77 ID:aXYuBMMC.net prolog識者がいたら添削たのむ
683 :デフォルトの名無しさん :2014/11/06(木) 01:04:11.78 ID:i9pGGwTT.net >>681-682 >>669-670 >>425 >>559 >>655-665
684 :デフォルトの名無しさん :2014/11/06(木) 01:47:04.84 ID:TxZPnLvK.net >>682 TwitterにPrologおじさんがいるからみてもらえ
685 :1 :2014/11/06(木) 20:03:55.57 ID:1yGaI9pi.net >>454 >>456 >>587 なんかコメントくれ。 >>684 Prologおじさんてその道で飯くってるひとじゃね? こちらからタダで見てくれとは頼みづらいわな。 お前らみたいに自発的にスレ見てくれてる人とは訳が違う。
686 :デフォルトの名無しさん :2014/11/06(木) 21:01:27.80 ID:C8/OFtDI.net >>685 >>454 >>456 >>587 の3人にコメントを求める前に>>655-665 。 1はプログラムを添削してほしいのに添削できる人が集まってそうなところを避けるようなバカだしな。
687 :1 :2014/11/06(木) 22:26:58.78 ID:1yGaI9pi.net Boost.Iclちらっとぐぐってみたけど、実装の大変さの割に活躍する場面があんまりないようなw いつ使うかな〜コレ。 たしかに集合っちゃ集合なんだけど正直微妙。
688 :デフォルトの名無しさん :2014/11/07(金) 04:13:14.72 ID:QM030TJs.net >>685 >>1 の「クレクレ」が不快だと言っている>>587 に対してコメント「クレクレ」w
689 :デフォルトの名無しさん :2014/11/07(金) 04:36:31.62 ID:Nfw1pK0/.net >>454 >>456 >>587 が言ってるのは「集合論に基づいた言語」を作るのならPrologが参考になるはずということだろうから、 1がPrologで書いたプログラムにコメントしなけりゃいけないというものではないな。
690 :デフォルトの名無しさん :2014/11/07(金) 17:32:05.33 ID:eCqmNoes.net 実装が大変かどうかは問題にならん。
691 :1 :2014/11/07(金) 20:05:41.11 ID:FWyIh5H/.net >>690 まあ、ユーザーからすれば問題にならないけど。 Boostの人たちももうやり尽しちゃったて感じかなw。
692 :デフォルトの名無しさん :2014/11/08(土) 05:55:33.54 ID:N89Y1+Fh.net これが集合論の何に参考になるのかサッパリわからんわ。 添削するだけ無駄。結局文句だけ言ってルビー最高って結論出すだけw
693 :1 :2014/11/08(土) 10:50:24.96 ID:vsjOn1b1.net >>692 おれもサッパリわからんわw 文句は>>454 >>456 >>587 に言ってくれ。 prologでconnect4作ってみて思ったのは connect4は習作として優れているってことと、 prologはconnect4作るのに向いてないってことだなw prologでプログラム組むにはかなり慣れが必要。 ぶっちゃけ特殊技能やなこれ。 発想は面白いとおもうがこれで真面目にプログラム組もうと思う人がどれだけいることか。 しかし、prologの変数は参照透過なのかな。 haskellよりプログラム書きづらかったわ。 まあ、Ruby最強だな。
694 :1 :2014/11/08(土) 12:45:40.20 ID:vsjOn1b1.net ×connect4は習作として優れている ○connect4は習作の題材として優れている
695 :デフォルトの名無しさん :2014/11/08(土) 15:02:48.96 ID:PXfop+Ut.net >>693-694 >>300 >集合論に基づいた言語は教科書の章末問題をサクサクっとインプリメントすることを目的としてる。 >実用性はあんまり求めない。 connect4は、どの教科書の章末問題なんだ?
696 :デフォルトの名無しさん :2014/11/08(土) 15:17:42.64 ID:N89Y1+Fh.net connect4を集合論プログラミングの例題として使いたいんなら、 まずはconnect4のルールを集合論的に定義するのが先だ。 今のところ1がやってるのは単なる手続き的実装例の移植じゃん。 それで参考になるわけがない。
697 :デフォルトの名無しさん :2014/11/08(土) 15:33:25.11 ID:oJ3Se8B2.net >>695 「教科書」は「離散数学とかアルゴリズムのやつ>>523 」か集合論のものに限定。 挙げられなければ、また1の後出しジャンケンってことで。 >>425 >>559 >>655-665
698 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/11/08(土) 15:40:24.89 ID:ebCh2W7f.net 記述は日本語なのか英語なのか数学記号によるのか?
699 :1 :2014/11/08(土) 19:44:24.22 ID:vsjOn1b1.net >>695 connect4が載ってる教科書は見たことないな。 >>696 >>697 connect4は新しい言語を勉強するときに都合がいいから使ってるだけであって、 集合論プログラミングとは関係ないんだけどな。 というか、集合論プログラミングの題材としてどんなものがいいかは まだよくわかってないんだよな。 正規言語とオートマトン、文脈自由言語とプッシュダウンオートマトン あたりかなぁとは思っているんだが。 >>698 数学記号じゃね?
700 :デフォルトの名無しさん :2014/11/08(土) 19:53:04.25 ID:LHO3gvAT.net >>693 プログラミングパラダイムごとに得意な領域、不得意な領域が存在するのに、なんで例題一個だけで言語を判断しようとするの?短絡的すぎない? 全部Prologで書くのはきついものがあるけど、部分的にPrologを採用してるプロジェクトはあるよ (とはいえPrologがconnect4を作るのに向いているかどうかで言えばたぶん向いてないとは思うけどね)
701 :1 :2014/11/08(土) 20:18:34.70 ID:vsjOn1b1.net >>700 ぐう正論ですな。 まあ、そんな簡単に新しい言語は深く習得できないからな。 感触掴むくらいがせいぜいじゃね? 判断が早いというのは言われてみればそうだと思う。 ちなみにPrologで生産性が上がる問題があるなら教えてくれ。
702 :デフォルトの名無しさん :2014/11/08(土) 21:02:07.77 ID:7W78geqS.net >>699 >>701 >集合論プログラミングとは関係ない ならPrologスレでやれよ。 Prologに詳しい人はそっちのほうが多いはずだ。 【論理】Prolog【初心者】 http://peace.2ch.net/test/read.cgi/tech/1289016056/
703 :1 :2014/11/08(土) 21:21:57.05 ID:vsjOn1b1.net connect4は直接関係ないけどprologは関係あるかもしれないだろ。 つか、なんでこのスレでやっちゃダメなんだ。 意味わからん。
704 :デフォルトの名無しさん :2014/11/08(土) 21:29:37.77 ID:7W78geqS.net >>703 >なんでこのスレでやっちゃダメなんだ。 スレ違いだから。 Prologの勉強をPrologスレでやってみて、「集合論に基づいた言語の作成」に関する話になったらここに来ればいい。
705 :デフォルトの名無しさん :2014/11/08(土) 21:35:40.48 ID:LHO3gvAT.net >>701 まあ実を言うとPrologについてそんなに詳しくはないので、文法とWIkipedia程度の知識しかない 歴史的には定理自動証明の分野で使われてきていて、 最近ではIBMの例のワトソンのコアに使われてたりするとか、まあやっぱ知識処理なのだろうか あとユニフィケーションと並列化の相性がよく、派生言語がいくつか出てるらしいね、Erlangとか >>702 のスレも業務への適用の話とかしててまだ途中だけど読んでて結構おもしろい まあ言いたかったことは、他のパラダイムは切り捨てるより取り入れたほうが自分の糧になるよということで 以前関数型あたりも簡単に切り捨ててたから、それじゃもったいないよ
706 :1 :2014/11/08(土) 21:55:42.68 ID:vsjOn1b1.net >>704 You can't connect the dots looking forward. You can only connect them looking backwardsだよ! >>705 >あとユニフィケーションと並列化の相性がよく、派生言語がいくつか出てるらしいね、Erlangとか ErlangってPrologの派生だったの? なんか並列化が得意らしいというのは聞いたことがあったが。 > >>702 のスレも業務への適用の話とかしててまだ途中だけど読んでて結構おもしろい そういやPrologスレちゃんと読んでないな。読んでみるか。 >まあ言いたかったことは、他のパラダイムは切り捨てるより取り入れたほうが自分の糧になるよということで >以前関数型あたりも簡単に切り捨ててたから、それじゃもったいないよ またまたぐう正論ですな。 気を付けます。
707 :デフォルトの名無しさん :2014/11/09(日) 06:16:58.35 ID:co8RBkg8.net >>706 だーかーらー、そのconnect4とやらのルールを集合論的に書けばいいって言ってるだろ。 さっさとやれ。
708 :デフォルトの名無しさん :2014/11/09(日) 16:46:55.86 ID:9LyR+5oz.net 1は何かものを作れる人間じゃないから。
709 :1 :2014/11/09(日) 18:17:59.58 ID:Yrjok8yA.net >>707 んーどうだろうな。 俺もスレたてた時はすべてを集合で表せば数学的にうまくいくんじゃね?とか思ってたんだけど、 やっぱリストはリスト、タプルはタプルなんだよな。 connect4も無理に集合的に扱わないで手続型で扱った方が自然かもしれないんだよな〜 ぶっちゃけ、集合にこだわる意味が根底から揺らいでるw 数学の基礎的な部分が集合論でできてるってのはそうなんだろうけど、 応用問題解くときに些末な問題に煩わされたくないよね? まあ、集合論でうまくいきそうな問題⇔教科書の章末問題かなぁとか思ってたんだけどさ。 その辺はあんまり整理できてない。
710 :デフォルトの名無しさん :2014/11/09(日) 19:17:53.75 ID:co8RBkg8.net リストもタプルも集合論の枠組み内で普通に扱えるのだが、 もういいや、1に何かを期待するのはやめた。
711 :デフォルトの名無しさん :2014/11/09(日) 19:30:26.31 ID:FyV/3PpB.net そろそろループ再開ですか?
712 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/11/09(日) 19:44:15.77 ID:XU91kGr5.net 算術演算+−×÷!/√ 括弧()[] 等号不等号=≠<>≦≧≒≪≫ 無限大∞ 集合∈∋⊆⊇⊂⊃∪∩{|}# 論理:∧∨¬⇒⇔∀∃→∴∵ パーセント% その他の記号±≡…;?
713 :デフォルトの名無しさん :2014/11/09(日) 20:00:10.30 ID:NPL58Du1.net 1に餌を与えないでください。 >>425 >>559 >>655-665
714 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/11/09(日) 20:28:33.70 ID:XU91kGr5.net 俺の研究内容が似ているので燃料投下する。国の生活保護と同様に、たとえ悪魔にもエサを与えよう。
715 :デフォルトの名無しさん :2014/11/09(日) 21:17:29.34 ID:b4iNH/wh.net 1「悪魔の餌 クレクレ」
716 :1 :2014/11/10(月) 21:45:18.40 ID:AsAdiTVl.net 試しにRubyでconnect4書いてみた。 http://www.age2.tv/rd05/src/up5560.txt.html 行数的にはhaskellのほうが短いくらいなんだが^^; オフサイドルールのせいかな?
717 :デフォルトの名無しさん :2014/11/11(火) 04:23:27.89 ID:m7WVeZhS.net >>716 スレ違いだバカ
718 :デフォルトの名無しさん :2014/11/11(火) 16:25:56.08 ID:kmmZIWoZ.net スレタイでHaskellで良いじゃんと思ってスレ開いたら1が馬鹿すぎてスレをそっと閉じることにした
719 :1 :2014/11/17(月) 21:47:20.82 ID:IjeD6lYX.net とりあえず、次の宿題は圏論かな〜?
720 :1 :2014/11/17(月) 23:26:02.06 ID:IjeD6lYX.net とりあえず、ここ読んだけど。。。 http://ja.wikibooks.org/wiki/Haskell/%E5%9C%8F%E8%AB%96 ぃみゎかんなぃ。。 もぅマヂ無理。。 リスカしょ・・・ ようするにdoが使いたいだけ?
721 :デフォルトの名無しさん :2014/11/18(火) 00:04:28.78 ID:e4RrhwW3.net >>720 Haskellスレでやれ。 Haskellに詳しい人はそっちのほうが多いはずだ。 関数型プログラミング言語Haskell Part26 http://peace.2ch.net/test/read.cgi/tech/1406436392/
722 :デフォルトの名無しさん :2014/11/18(火) 00:07:08.02 ID:l6oqTr0E.net 1に餌を与えないでください。 >>425 >>559 >>655-665
723 :1 :2014/11/18(火) 21:56:19.27 ID:+WEtmfNy.net http://d.hatena.ne.jp/Lost_dog/20111211/1323616949 ここも読んでみたけどやっぱわからん。 というか、読んでも目が滑る。 だれか圏論のいい入門textプリーズ
724 :デフォルトの名無しさん :2014/11/19(水) 19:50:12.10 ID:dm216OYo.net とりあえず『圏論の基礎』でも読んでみたら?
725 :1 :2014/11/19(水) 19:56:54.80 ID:V2tDw9NJ.net http://www.amazon.co.jp/dp/4621063243 これ? まあ本屋いってみてあったら立ち読みしてみるわ。
726 :1 :2014/11/26(水) 20:02:22.17 ID:JT4BoUXj.net 圏論の基礎買ったけど早くも積読w
727 :デフォルトの名無しさん :2014/11/29(土) 18:24:47.22 ID:8AtyRUwF.net >>701 の話だけど、ドコモで prolog が動いてる的な記事をなんかで読んだことがある
728 :1 :2014/11/30(日) 19:47:48.77 ID:O0/vTNqA.net http://iiyu.asablo.jp/blog/2014/07/28/7400231 これか。 コード量10分の一は確かにすごい。 しかし2370万行とか正気の沙汰じゃないな。
729 :デフォルトの名無しさん :2014/11/30(日) 22:28:37.23 ID:mFsly3WX.net Prolog で書くと「コード量10分の一」となる例には、他にも型推論があるね 以下のblog記事では、単純な型推論をPrologで記述している ・Prolog で型チェック:Rainy Day Codings:So-net blog http://rainyday.blog.so-net.ne.jp/2008-06-16 自分の知る範囲では、世界で最も簡潔な型推論の実装コードだね これも、もし(型システムという)形式的なルールが定義されていれば、 それを直接的に表現できるという Prolog の特徴が活かされている Haskell でもこんな芸当はできない
730 :デフォルトの名無しさん :2014/12/01(月) 15:16:30.87 ID:pglWaPo9.net おおっと、Haskell信者に対して挑発だ〜!
731 :デフォルトの名無しさん :2014/12/01(月) 15:51:58.42 ID:oEpuqve5.net 別にユニフィケーションがどっち方向にも働く、というのはPrologの特性だし、 Haskellにそんなものあっても困るだけだし。
732 :1 :2014/12/01(月) 19:25:13.06 ID:TTRJBgwa.net >>729 ふーむ。Rubyだとどうなるかな〜。 ヨクワカラヌ。
733 :デフォルトの名無しさん :2014/12/01(月) 20:27:28.82 ID:pmQ3LQ8v.net Prologのシンボル使ったユニフィケーションを実装するのは Rubyに限らず手続き型言語ではライブラリ頼りでやらんと面倒い むしろそれに特化され過ぎて、手続き的な書き方が面倒いって言語がProlog
734 :デフォルトの名無しさん :2014/12/01(月) 22:36:56.45 ID:oEpuqve5.net そういったものをなんでもまぜこぜできるからLispは偉い、というのが 竹内先生@NUEの主張だったなw
735 :デフォルトの名無しさん :2014/12/01(月) 23:52:04.88 ID:6Gpd+bqZ.net 1に餌を与えないでください。 >>425 >>559 >>655-665 1は推論や数式処理を扱うのは面倒くさいと思っている。 >>574-576
736 :デフォルトの名無しさん :2014/12/02(火) 00:14:21.85 ID:+stn5l+y.net 集合論だと逐次処理やりにくいしな SQLとも違うみたいだし
737 :デフォルトの名無しさん :2014/12/03(水) 15:47:19.25 ID:C/BNzxz3.net 集合論だと、逐次処理は処理系の中でやる。 プログラムにはmapやらfilterやらが出てきて、逐次処理は隠蔽されるのでは? それを考えると、1がlispで満足できないのが不思議でならない。 まぁ、文字通り「何も」考えていないのだろうな。
738 :1 :2014/12/03(水) 19:55:52.44 ID:oIRBJSMm.net lispってそんないいかなぁ。 ちょっとやったことあるけど、インデントつけても括弧の対応がすぐわかんなくなるんだが。 コード読みにくいったらありゃしない。
739 :デフォルトの名無しさん :2014/12/03(水) 20:36:17.67 ID:HSbdY3zj.net >>738 ちょっとやってみただけで慣れようともせずケチつける。 >>700 >>701 >>705 >>706
740 :デフォルトの名無しさん :2014/12/03(水) 21:18:09.35 ID:DVPNx2yH.net >>734 S式を使っているからうまく混ぜられる、S式こそLisp最大の特長、とかいう主張だったな。
741 :1 :2014/12/03(水) 22:35:36.35 ID:oIRBJSMm.net >>740 詳しく
742 :デフォルトの名無しさん :2014/12/03(水) 23:15:45.16 ID:cePlsLqN.net ほげ言語のパラドックスでも読んどけ
743 :デフォルトの名無しさん :2014/12/04(木) 01:08:18.94 ID:jHjIGczB.net 集合に順序があるのはむしろベクトルかタプルに見える 集合論って考えは好きだけどソートみたいな逐次処理でよく使うものはどうなるんだろうか 並列処理的なこと考えてるひとがいるみたいなんでそれに乗っかると 並列処理ならクイックソートよりマージソートのほうが速そうだがそれが集合論かと言われるとちょっと困る でもソートが本来のやりたいことではなくてソートしたデータにまた何らかの処理をする要求のほうが多い気がするんでどうでもいいか 2分探索なり逐次処理の環境で考えだされたアルゴリズムはほとんど使えない気がするんでまた誰かが良さそうな手順を考えださないとな
744 :デフォルトの名無しさん :2014/12/05(金) 09:26:36.60 ID:I64sWIzc.net 数学できる人間に見られたいクズが集まるスレ
745 :デフォルトの名無しさん :2014/12/05(金) 11:54:06.72 ID:IjAdRY0C.net 自己紹介か?
746 :1 :2014/12/05(金) 20:20:24.20 ID:b89FafAC.net とりあえず、圏論からは戦術的転進するか。 別のネタを探そう。
747 :デフォルトの名無しさん :2014/12/05(金) 20:55:48.99 ID:B18WNnFt.net 1に餌を与えないでください。 >>425 >>559 >>655-665
748 :デフォルトの名無しさん :2014/12/05(金) 23:22:33.28 ID:oLmzY7WJ.net しかしまあスレタイ通りにはなかなかいってないけど総合的には良スレっぽい
749 :デフォルトの名無しさん :2014/12/06(土) 01:07:31.28 ID:tjNXDvF3.net >>746 圏論を勉強する気など最初からなくて、ネタのつもりだったわけだ。 圏論以外に何をもってきても同じだろうな。
750 :デフォルトの名無しさん :2014/12/06(土) 10:37:54.51 ID:kt8GWotW.net lisp の括弧は rainbow-parentheses 的なの入れるとマシになる
751 :デフォルトの名無しさん :2014/12/06(土) 18:03:11.24 ID:KgmhP8S/.net lispで区切りに()だけ使うんじゃなくて集合を表す時は{}使うとかどうなの? 集合は{
752 :1 :2014/12/06(土) 18:04:03.49 ID:KgmhP8S/.net 途中で書き込んじゃった。 集合は{}で表すってイメージあるんだけど。
753 :デフォルトの名無しさん :2014/12/06(土) 18:56:15.26 ID:dXBvUp0m.net clojureは#{}が集合のリテラルとしてある 他のlispでもリードマクロかけばそういうことはできる 是非についてなら。その表記が存在することが対象のプログラミングに有効ならあり、そうでなきゃなし
754 :1 :2014/12/06(土) 18:59:55.68 ID:KgmhP8S/.net ほほう。 clojure検討してみる価値あり?
755 :デフォルトの名無しさん :2014/12/06(土) 19:20:33.09 ID:dXBvUp0m.net まあlisp系はマクロ書けば簡単に構文拡張できるから、新しい言語を試行錯誤したいなら最適ではあるよ
756 :デフォルトの名無しさん :2014/12/06(土) 19:20:42.39 ID:5oGFUyw+.net RubyとかJavaにもSetオブジェクトはあるし、リテラルの有無はソースコードの見た目の問題で、 たいして重要じゃない。
757 :デフォルトの名無しさん :2014/12/06(土) 19:28:14.31 ID:dXBvUp0m.net マッチョすぎワロタ 数値や文字列リテラルのない言語でも頑張ってくれそう
758 :1 :2014/12/06(土) 19:49:14.64 ID:KgmhP8S/.net リテラルの有無は結構気になるな、俺は。 Rubyの配列やマップのリテラルは気に入ってる。
759 :1 :2014/12/06(土) 19:51:57.69 ID:KgmhP8S/.net clojureってjavaなのか。 クラスパスとかあんまわかってないんだよな〜じつは
760 :デフォルトの名無しさん :2014/12/06(土) 20:40:46.96 ID:VB5mtD/4.net >>748 VIPやシベリアだったらな。
761 :1 :2014/12/06(土) 21:05:36.24 ID:KgmhP8S/.net パッと見common lispよりclojureのほうがオサレにみえる。 あんまりcommon lisp知らんけど。
762 :デフォルトの名無しさん :2014/12/06(土) 21:16:11.69 ID:5oGFUyw+.net なんでもいいから手を動かせ
763 :1 :2014/12/07(日) 00:04:16.45 ID:2ooQYugx.net OO言語だとobj.method(x)って書くけどlisp系だと(method obj x)って書くじゃん? OO言語になれてるからかこの順番の違いが結構イラつく。
764 :デフォルトの名無しさん :2014/12/07(日) 00:11:32.48 ID:t9ahLiCr.net ほんとこの1は駄目だなw
765 :デフォルトの名無しさん :2014/12/07(日) 01:41:10.92 ID:bfkTF4nN.net lispでC風メソッド呼び出し構文開発したってのをどっかのブログでみたな
766 :デフォルトの名無しさん :2014/12/07(日) 02:32:50.17 ID:lyVqLM7u.net リテラルでいろいろ指定できるのは便利だけどな Clojureだと {key1 obj1 , key2 obj2}でmap #{obj1 obj2 obj3} でset [obj1 obj2 obj3] でvector '(obj1 obj2 obj3) でlist 地味にsetがありがたかったり(他の言語だとsetのリテラル滅多に無い)
767 :デフォルトの名無しさん :2014/12/07(日) 12:08:48.39 ID:mrRmmrII.net >>726 圏論の和書として定評があり再版が望まれているのは http://www.amazon.co.jp/dp/4837504574 amazon 価格がすべてを物語っている
768 :1 :2014/12/07(日) 17:19:43.84 ID:2ooQYugx.net いつものようにclojureでconnect4書こうと思ったが、 >>763 のことを差し引いても想像以上にモチベーション上がんない。 何のせいだ? パッと見clojure良さそうに見えるのに。 Prologのときも苦戦したがモチベーションは保てた。
769 :デフォルトの名無しさん :2014/12/07(日) 18:06:31.44 ID:NlsKlGNA.net >>768 このスレでは集合論に基づいた言語と関係ない話題はルール違反です。
770 :デフォルトの名無しさん :2014/12/07(日) 19:50:11.74 ID:npVck0tg.net >>768 今度は「なぜか分からないけどモチベーションを保てない」かw >>425 >>559 >>655-665
771 :デフォルトの名無しさん :2014/12/08(月) 04:17:29.43 ID:jYPMOE5Q.net >>768 モチベーションを保てないってことだから続かないと思うけど 続けるならClojureスレに行け 【Lisp】プログラミング言語 Clojure #3【JVM】 http://peace.2ch.net/test/read.cgi/tech/1380333808/
772 :1 :2014/12/09(火) 23:17:28.28 ID:PZp4J+Rx.net リアルが忙しくなりそうです。 しばらくこれなくなるかもだが、俺が留守の間おまえらでこのスレを盛り上げてくれよな。 よろしく。
773 :デフォルトの名無しさん :2014/12/10(水) 21:31:22.32 ID:7P/sQ89x.net 削除依頼していけよ
774 :1 :2014/12/26(金) 19:46:13.23 ID:pkBFPf36.net 仕事納めだよ。 しかし見事にレスがついてないな。 お前らで盛り上げてくれていいのに。
775 :片山博文MZ ◆T6xkBnTXz7B0 :2015/01/03(土) 12:40:55.68 ID:XgnEofgF.net >>1 さんよ、 Coqという言語を使えば、集合論を含む数学の証明や、プログラムの性質や品質保証ができるらしいぞ。 やってみないか?
776 :デフォルトの名無しさん :2015/01/03(土) 14:07:47.18 ID:MdLSAVWL.net >>775 >>713-714
777 :1 :2015/01/03(土) 18:31:19.39 ID:y8FDuePZ.net とりあえず片山さんがCoqで一番成功してると思った例題を教えて それで判断するわ。
778 :片山博文MZ ◆T6xkBnTXz7B0 :2015/01/03(土) 19:06:58.41 ID:XgnEofgF.net 俺もCoqについては初心者だが、数学、グラフ理論の超難しい問題 「四色問題」の証明がCoqでできたらしい。
779 :1 :2015/01/03(土) 20:02:04.73 ID:y8FDuePZ.net 手続き型言語とかに比べて完結に実装できるってこと?面白そうではある
780 :1 :2015/01/03(土) 20:38:21.69 ID:rEeqS3sH.net ID違うと思うけど1です。 簡潔に実装できるんじゃなくて、 実装はHaskellとかでやって、その正しさをCoqで保証するの? よくわからん。
781 :1 :2015/01/03(土) 21:16:03.70 ID:rEeqS3sH.net Coq単体で動くのか。 prologに近いのか? ぶっちゃけかなりむずいなこれは。
782 :1 :2015/01/03(土) 22:17:48.00 ID:rEeqS3sH.net わからんということがわかった。 底なし沼みたいな感じやなこれ。
783 :デフォルトの名無しさん :2015/01/03(土) 23:44:50.02 ID:Y5c4kVu7.net 今回のクレクレ・ループは終わりかな。 >>425 >>559 >>655-665
784 :1 :2015/01/04(日) 13:03:03.07 ID:1dxkxQcz.net 片山さんはCoqどれくらい書けるの? 例えばド、モルガンの証明とか書けるの?
785 :片山博文MZ ◆T6xkBnTXz7B0 :2015/01/04(日) 21:15:57.30 ID:izkph8nP.net >>784 TutorialのPDFをコンビニで2in1pageで両面印刷して研究し始めたとこ。 数学と論理学と英語とプログラミングの知識が要求される地獄山だな。
786 :1 :2015/01/04(日) 21:40:34.76 ID:7jAGFdTv.net >>785 そのチュートリアルのURLくだしあ。
787 :片山博文MZ ◆T6xkBnTXz7B0 :2015/01/04(日) 21:45:09.09 ID:izkph8nP.net >>786 「Coq tutorial PDF」で検索
788 :デフォルトの名無しさん :2015/01/04(日) 21:59:00.42 ID:7jAGFdTv.net https://coq.inria.fr/distrib/current/files/Tutorial.pdf これ? 結構分量ありますね。
789 :1 :2015/01/06(火) 00:03:50.53 ID:iQ4UNt/k.net Coqで任意の自然数nに対してn*(n+1)が偶数であることを証明しようとしたがどうしてもできない。 だれかHELP.
790 :1 :2015/01/06(火) 00:34:25.70 ID:iQ4UNt/k.net 定義はこれで。 Theorem t: forall (n:nat),exists m , (n*(n+1) = 2 * m).
791 :デフォルトの名無しさん :2015/01/06(火) 05:55:25.49 ID:Gduz5N96.net 偶数+1は奇数 奇数+1は偶数 遇数*奇数も奇数*遇数も遇数 自然数は奇数か偶数かどちらかである
792 :1 :2015/01/06(火) 21:04:14.92 ID:iQ4UNt/k.net 「nが奇数ならn+1は偶数」を証明しようとして詰まってる。 Require Import Even. Lemma l: forall (n : nat), odd n -> even (n+1). intros. induction n. simpl. apply even_S. これでodd 0とかいうのが出てくるけど、ここからどうしていいかわからない。
793 :1 :2015/01/06(火) 21:10:59.52 ID:iQ4UNt/k.net 「自然数nに対してn*(n+1)が偶数である」 本題のこっちはここまで進んだ。 Require Import Even. Theorem t: forall (n:nat), even (n*(n+1)). intros. apply even_mult_aux.
794 :1 :2015/01/06(火) 23:17:17.43 ID:iQ4UNt/k.net Coq難しすぎんよ〜 もう寝る。
795 :1 :2015/01/07(水) 19:22:04.95 ID:DdlkDaa+.net http://www.iij-ii.co.jp/lab/techdoc/coqt/coqt6.html このページによるとforall (P : Prop), P \/ ~ Pは証明できなんだそうだ。 forall (n:nat), even (n*(n+1)).も証明できないのかもしれないな。
796 :デフォルトの名無しさん :2015/01/07(水) 20:14:30.38 ID:zH4wOwdk.net 1に餌を与えないでください。 >>425 >>559 >>655-665
797 :1 :2015/01/07(水) 21:02:58.84 ID:DdlkDaa+.net odd 0 -> Falseは証明できたっぽい。 これをどう活用すればいいのかわからない。 Lemma l2: odd 0 -> False. apply not_even_and_odd. apply even_O.
798 :デフォルトの名無しさん :2015/01/08(木) 15:50:20.90 ID:FouB2F9v.net S
799 :デフォルトの名無しさん :2015/01/08(木) 18:29:26.11 ID:qFLJfmjp.net O
800 :デフォルトの名無しさん :2015/01/08(木) 19:09:01.13 ID:XNa5H7Wz.net S
801 :1 :2015/01/08(木) 20:07:08.21 ID:9tH8cNHX.net ハルヒか?
802 :1 :2015/01/08(木) 22:27:11.24 ID:9tH8cNHX.net そもそもodd n -> even (S n)って定義そのものなんだよなぁ。
803 :1 :2015/01/11(日) 19:52:52.15 ID:zln55Xsd.net ギブアップ。 だれか正解しってたら教えて。
804 :1 :2015/01/13(火) 18:35:43.03 ID:7YFvdf+i.net 片山さん答え知ってたら教えて
805 :デフォルトの名無しさん :2015/01/13(火) 20:23:10.10 ID:ElusS0xD.net http://peace.2ch.net/test/read.cgi/tech/1419929875/23 > 23 名前:片山博文MZ ◆T6xkBnTXz7B0 [sage]: 2015/01/13(火) 18:53:35.00 ID:gURRjQHf > 私はお下品
806 :片山博文MZ ◆T6xkBnTXz7B0 :2015/01/13(火) 21:52:38.35 ID:gURRjQHf.net ヒント。 Require Import Even. Lemma eSr: forall n:nat, even (1 + n) -> odd n. intros. apply (even_plus_odd_inv_r 1). apply H.
807 :1 :2015/01/13(火) 22:46:33.61 ID:ld5ZWEPI.net Lemma l : forall (n:nat), even (1+n)-> odd n. intros. apply (even_plus_odd_inv_r 1). apply H. apply odd_S. apply even_O. Qed. こう? nを偶数と奇数に場合分けする方法がわからんとです。
808 :1 :2015/01/13(火) 23:04:11.48 ID:ld5ZWEPI.net even(1+n)にeven(1+n) -> odd nをapplyして odd nにならんのか? よくわからん。
809 :片山博文MZ ◆T6xkBnTXz7B0 :2015/01/13(火) 23:09:34.67 ID:gURRjQHf.net Lemma oS: forall n:nat, even n -> odd (S n). intros. apply odd_S. apply H. Qed.
810 :1 :2015/01/13(火) 23:38:41.86 ID:ld5ZWEPI.net 証明済みのLemmaの活用の仕方がわからんです。 applyじゃないの?
811 :片山博文MZ ◆T6xkBnTXz7B0 :2015/01/13(火) 23:39:26.18 ID:gURRjQHf.net replace (even (S n)) with (odd n). apply even_or_odd. もう少しだな。
812 :1 :2015/01/14(水) 00:05:14.20 ID:upPMt0VH.net A=Bを示したかったらA->BかつB->Aで方針あってますか?
813 :1 :2015/01/14(水) 00:09:20.78 ID:upPMt0VH.net もう寝ます。 また明日よろしくお願いします。
814 :片山博文MZ ◆T6xkBnTXz7B0 :2015/01/14(水) 19:03:17.31 ID:lWtQJ7uI.net 聞きたいことがあれば、俺の掲示板に来いよ。待ってるぜ。
815 :片山博文MZ ◆T6xkBnTXz7B0 :2015/01/15(木) 14:58:59.94 ID:OiYOltU9.net http://katahiromz.bbs.fc2.com
816 :デフォルトの名無しさん :2015/01/15(木) 18:04:49.36 ID:UYCK2hGt.net >>814-815 1がそっちに行ってくれればいいけど。 1はCoqとか本当はどうでもよくて、このスレに書くこと自体が目的になってるだろうから・・・
817 :デフォルトの名無しさん :2015/01/15(木) 20:46:59.13 ID:QgJ4DA/V.net >>816 雑談はこちらの412に書いてるな。 戻ってくるなよ >1
818 :1 :2015/01/15(木) 21:04:35.89 ID:RCkerH2f.net お前らこのスレが伸びちゃ困る理由でもあるのかw
819 :デフォルトの名無しさん :2015/01/15(木) 22:49:41.86 ID:5ppshwSd.net >>818 1が「集合論に基づいた言語を作る」話をしないからな。 >>425 >>559 >>655-665 どうせエサをくれるのは片山博文MZだけなんだから、ずっとあっちに行ってろよ。
820 :1 :2015/01/15(木) 23:03:37.94 ID:RCkerH2f.net このスレはお前らで盛り上げてくれてもかまわないんだぜ?
821 :デフォルトの名無しさん :2015/01/16(金) 00:08:32.30 ID:q80wbXpz.net このスレ見てるの結構楽しい(煽りとかではなくいろんな話が出てくるし)から盛り上がって欲しい
822 :1 :2015/01/16(金) 00:10:36.55 ID:tbQRRWp6.net できたっぽい。 片山さんに教えてもらったページみた。 Require Import Even. Theorem t:forall n:nat,even (n * (1+n)). intros. apply even_mult_aux. elim n. left. apply even_O. intros. elim H. right. apply even_S. apply odd_S. apply H0. left. apply H0. Qed. Coq相当親切なチュートリアルがないと勉強できんわ。 どのタクティク使えばいいのかとかわからんすぎる。
823 :片山博文MZ ◆T6xkBnTXz7B0 :2015/01/16(金) 01:05:01.69 ID:IPI8U3lP.net >>822 なかなかやるじゃん。 ついでに「片山QZの定理」の証明でもやってみる? 片山QZの定理 http://katahiromz.web.fc2.com/mathai/
824 :1 :2015/01/16(金) 18:38:49.28 ID:tbQRRWp6.net MZとかQZとかって何なの? 別にいいんだけど。 片山QZの定理はなんかえらい難しそうなのでやめとく。
825 :片山博文MZ ◆T6xkBnTXz7B0 :2015/01/16(金) 18:52:49.05 ID:IPI8U3lP.net QZというのはC/C++宿題スレに生息している人だよ。 そうだな。2n=n+nの証明なんかどうかな? 楽勝?
826 :1 :2015/01/16(金) 19:09:16.59 ID:tbQRRWp6.net 掛け算の定義がどこにあるのかわからん。 証明もいいけどコードの自動生成のほうが面白そうかな〜
827 :片山博文MZ ◆T6xkBnTXz7B0 :2015/01/16(金) 22:32:01.39 ID:IPI8U3lP.net >>826 英語では、掛け算がmultiplicationで、自然数がnatural numbersだろ? それを略すればmul,natになるだろ? SearchAbout mul. SearchAbout nat. で検索できるから。
828 :1 :2015/01/16(金) 23:47:30.80 ID:tbQRRWp6.net >>827 結構むずかしい。 仮にできたとしても時間かかると思う。
829 :1 :2015/01/17(土) 00:13:16.15 ID:e9PIZEl5.net ぶっちゃけCoqやってると無限に時間を吸われる可能性がある。 早めに身を引いた方がよさそうかな〜とも思う。
830 :片山博文MZ ◆T6xkBnTXz7B0 :2015/01/17(土) 01:27:28.08 ID:PPUSm5YO.net 数学に基づいた言語としてCoqは最適の例かと思われたが、御気に召さないとはこれ如何に。 では、そなたはどのような言語が希望か申し上げてみよ。
831 :1 :2015/01/17(土) 02:12:55.60 ID:e9PIZEl5.net いや〜確かにCoq面白いんだけど。 勉強するのに時間かかり過ぎるっていうか もうちょっと市民権を得て入門書とか充実してからの方がいいかな〜と。 証明も紙なら簡単にできることが結構難しかったりで、 実利を得るところまで勉強進めるのがしんどい。 実用までいかなくてただのパズルで終わりそう。 Coq参考になるところは多いと思うんだけどね。 どこまで時間費やすか見極めたほうがよさげ。 片山さんはCoqにどの程度手ごたえ感じてるの?
832 :片山博文MZ ◆T6xkBnTXz7B0 :2015/01/17(土) 02:59:53.32 ID:PPUSm5YO.net 麿は、この素晴らしきCoqを使えば、不具合のないソフトウェアが作れると見ては、 これをマスターすれば世界征服も夢ではないと、そのような所存でおじゃるよ。
833 :片山博文MZ ◆T6xkBnTXz7B0 :2015/01/17(土) 03:31:41.14 ID:PPUSm5YO.net Coqと人工知能を組み合わせたら……、金融取引に活かせば……とか楽しい妄想が広がるでおじゃる。
834 :1 :2015/01/18(日) 22:30:12.77 ID:Pnbu8M/I.net 人工知能といえばdeep learningとかいうのが流行らしいんだが。
835 :1 :2015/01/20(火) 23:02:01.33 ID:RE29itzd.net 2n=n+nはomegaで一発っぽい。 omegaなしだとどうやるかわからん。
836 :デフォルトの名無しさん :2015/01/21(水) 01:37:31.40 ID:+/NZ76QF.net 1に餌を与えないでください。 >>425 >>559 >>655-665
837 :片山博文MZ ◆T6xkBnTXz7B0 :2015/01/21(水) 08:55:01.51 ID:y20qOxOP.net n=1×nを使う
838 :1 :2015/01/21(水) 19:32:48.10 ID:83hEDbKu.net 途中よけいなことしてるかもだができたっぽい。 Require Import Arith. Theorem t:forall n:nat,2*n=n+n. intros. replace (2*n) with (n*(S 1)). symmetry. replace (n+n) with (n*1+n). apply mult_n_Sm. replace (n*1) with (1*n). replace (1*n) with n. auto. symmetry. apply mult_1_l. apply mult_comm. apply mult_comm. Qed.
839 :1 :2015/01/21(水) 19:37:49.38 ID:83hEDbKu.net Coqは一日一時間までにする。 それ以上は自重。
840 :1 :2015/01/21(水) 20:33:19.47 ID:83hEDbKu.net 片山さんの模範解答うp希望
841 :片山博文MZ ◆T6xkBnTXz7B0 :2015/01/21(水) 22:08:31.55 ID:OPHJ2hAi.net >>840 Require Import Arith. Theorem t: forall n:nat, 2*n = n+n. intros. replace (n+n) with (1*n + 1*n). replace 2 with (1+1). apply mult_plus_distr_r. auto. replace (1*n) with n. auto. symmetry. apply mult_1_l. Qed.
842 :1 :2015/01/21(水) 22:49:05.70 ID:83hEDbKu.net ふーむ。確かに片山さんのほうが自然な証明ですな。
843 :片山博文MZ ◆T6xkBnTXz7B0 :2015/01/23(金) 02:17:55.54 ID:22/uje4h.net 布教のために数学板でも展開するぞ。 【Coq】コンピューターで証明しよう【コック】・2ch.net http://wc2014.2ch.net/test/read.cgi/math/1421944863/
844 :デフォルトの名無しさん :2015/10/21(水) 21:08:46.20 ID:qGjQS7QU.net http://connect4.game-solver.org/?pos=
845 :デフォルトの名無しさん :2015/10/21(水) 21:49:58.99 ID:kanshW5q.net ほう、4並べのソルバですか。面白い なぜこのスレなのかは気にしないでおこう thx
846 :デフォルトの名無しさん :2016/05/01(日) 11:01:21.14 ID:tKi6j9CT.net 匿名通信(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的に分散され、特定のサーバーに依存しません c
847 :デフォルトの名無しさん :2018/02/28(水) 18:29:32.35 ID:F8/eMdWm.net やぁ
848 :デフォルトの名無しさん :2018/05/23(水) 22:19:44.05 ID:Au5e7VGg.net 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 TQ9W4
849 :デフォルトの名無しさん :2018/07/04(水) 23:44:36.75 ID:gFgZc5FG.net 6HI
850 :デフォルトの名無しさん :2018/11/23(金) 11:17:18.34 ID:lDkmAROy.net >>118 Haskellのクイックソートはリスト内包表記使った方が美しい。 qsort [] = [] qsort (x:xs) = small ++ [x] ++ leage where small = qsort [a|a <- xs,a <= x] leage = qsort [a|a <- xs,a > x] >>1 が求めるのってHaskellやPythonのリスト内包表記だけでプログラミングしたいとか? SQLやC#のLinqにも通じるけど。 集合論的なのがあれば便利だけど、「だけ」と言うのはプログラミング上もキツイと思うな。 文字数を求める関数 再帰版 length [] = [] length (_:xs) = 1 + length xs リスト内包表記版 length xs = sum [1 | _ <- xs] ― リスト内包表記で1行になるけど、結局sum関数は必要。(チャレンジしたけど、リスト内包表記だけでsum関数は無理ぽ) sum [] = 0 sum (x:xs) = x + sum xs
851 :デフォルトの名無しさん :2018/11/23(金) 11:18:01.12 ID:lDkmAROy.net sum (x:xs) = x + sum xs
852 :デフォルトの名無しさん :2018/11/25(日) 12:00:26.30 ID:mrb3Dvz9.net もう許してやれよ
853 :デフォルトの名無しさん :2019/06/19(水) 05:01:29.66 ID:tVNS+22r.net 【出資】松本卓朗 人工知能詐欺【注意】 https://rio2016.5ch.net/test/read.cgi/rikei/1560859403/
854 :デフォルトの名無しさん :2019/09/20(金) 10:28:23.43 ID:4f4Q+09G.net Haskellじゃないの? 集合とか要素に型、集合にも型名を与えて処理する Haskellとモナドの動画見てたけど少しだけ理解 計算は集合が状態遷移で形態(形状)変化した結果だと思う [1 1]->sum->[1]みたいな モナドの適当な感想 モナドは状態遷移を行う処理手続き関数の中に バグや矛盾が入り込みにくい小さなプログラム単位を数珠つなぎに連鎖させ エラーなり問題点の発生場所を明確化する手法な気がした scalaのモナドは読むの辛いね(慣れ?)
855 :デフォルトの名無しさん :2020/01/09(木) 12:03:21.50 ID:Ydnkghao.net >>1 Z言語ではだめですか
856 :デフォルトの名無しさん :2021/03/30(火) 16:01:29.49 ID:WEbCupCq/ 最高か!アプリ開発とアプリマーケティングをノーコードで実現するノーコード開発プラットフォーム 「Applica(アプリカ)」の提供を開始https://prtimes.jp/main/html/rd/p/000000003.000069846.html 驚愕!SaaS開発をノーコードで実現するノーコード開発プラットフォーム「Jidoca(ジドウカ)」の提供を開始https://prtimes.jp/main/html/rd/p/000000001.000069846.html 【入門】誰でもアプリを作れる時代が来た。噂の“ノーコード”を徹底解説https://www.salesforce.com/jp/blog/2021/02/low-code-1-newspicks.html IT業界を変える可能性を秘める「ノーコード(NoCode)」とはhttps://www.mdsol.co.jp/column/column_122_1700.html 【ノーコード】IT業界が根底から変わる、日本人の知らないノーコード開発アプリの衝撃https://descartes-search.com/media/nocode-app-developement/ 急激に広まるノーコード、ローコードをうまく使いこなせhttps://ascii.jp/elem/000/004/039/4039185/ 30億円調達の簡単アプリ開発サービス「ヤプリ」が見つけた“鉱脈”https://signal.diamond.jp/articles/-/13 プログラミング不要でアプリ開発を実現する「Yappli」を提供、ヤプリのIPOサマリーhttps://media.startup-db.com/research/yappli-ipo ノーコードで世界は変わるhttps://thebridge.jp/2020/08/nocode-will-change-the-world
857 :デフォルトの名無しさん :2021/03/30(火) 16:53:31.28 ID:WEbCupCq/ Excelとビジュアルプログラミングが融合したWebアプリ開発ツール「CELF」が、ビジネスパーソン総プログラマ時代を実現https://japan.zdnet.com/pickup/scsk_201607/35085538/ ビジュアルプログラミング言語を俯瞰する(ScratchからNode-RED、TouchDesignerやIFTTTまで)https://qiita.com/tomo_makes/items/c193d4fc89e6eb4a245d ビジュアルプログラミングってなに?〜3タイプ分類でわかるScratchやViscuitの違いhttps://tool-zukan.com/column/3752/ 教育用プログラミング言語とは?徹底紹介5選|おすすめビジュアルプログラミングhttps://coeteco.jp/articles/10644 ビジュアル・プログラミングhttp://web.sfc.keio.ac.jp/~hattori/visual-prog/html4/main.html 義務教育の「残念なプログラミング授業」、現役エンジニアが危惧https://diamond.jp/articles/-/198744
858 :デフォルトの名無しさん :2023/08/01(火) 14:12:19.18 ID:GW8b/jIq0 クソ航空機に生活や仕事を妨害されたら‥アプリ『ADS-B Unfiltered Plane Tracker」て゛登録記號を確認,証拠としてスクショも残しつつhttps://jasearch.info/aircraft_hist.html ↑ここて゛検索して所有者(使用者)を特定したら、ググって電話番号を確認、この地球破壊私権侵害強盗殺人テ囗リス├にクレ━ムを入れよう! 例えば,登録記號『JA17AR」は氣候変動させて災害連發させて人を殺して私腹を肥やしてるとっとと津波て゛絶滅すへ゛き「札幌市』だと分かる 最近スマホのパケづまりが酷いか゛航空無線の広大なプラチナ帯域によってネッ├帯域か゛不足してるのが原因,クソ航空関係者に年1Ο0兆圓 課税するとともに帯域を明け渡させよう!言うまでもなく四六時中猥褻がらみて゛逮捕されなか゛ら威力業務妨害ヘリ飛ばしまくって望遠力メラで 女風呂のぞき見しなか゛らグルク゛儿騷音まき散らして住民イライラ犯罪惹起してる税金泥棒クソポリ公ヘリ,特に他県にまて゛大騒音まき散らし てる警視庁「JA1?MP』など惡質だか゛、テ口政府を徹底非難するとともに、傷害や威力業務妨害として告訴して.私権侵害テロを止めさせよう! 創価学會員は、何百萬人も殺傷して損害を与えて私腹を肥やし続けて逮捕者まて゛出てる世界最悪の殺人腐敗組織公明党を 池田センセ一が□をきけて容認するとか本気で思ってるとしたら侮辱にもほと゛があるそ゛!https://i.imgur.com/hnli1ga.jpeg
859 :デフォルトの名無しさん :2024/02/27(火) 13:10:32.62 ID:Xgl6YtAjB 人間の尊厳カ゛ーた゛のと心にもないことをぬけぬけとぬかしていやか゛る岸田異次元増税憲法ガン無視地球破壊覇権主義文雄や 世界最悪の殺人テロ組織公明党強盗殺人の首魁蓄財3億円超の斉藤鉄夫は暴力を続け多くの人に苦しみを与え人間の尊厳を踏みにじれば 住民は妥協し知的能力者も抗議をやめると見込んでいる,しかし知的能カ者もわれわれも諦めない 世界最悪脱炭素拒否テロ國家に送られる化石賞4連続受賞して世界中から非難されなか゛ら憲法13条25条29条と公然と無視して力による一方的な 現状変更によってクソ航空機倍増.閑静な住宅地から都心まて゛数珠つなぎて゛鉄道の30倍以上もの莫大な温室効果カ゛スまき散らして騷音まみれ 気候変動させて海水温上昇させてかつてない量の水蒸氣発生させて土砂崩れ、洪水、暴風.熱中症にと災害連発させて住民の生活破壞して 静音が生命線の知的産業を壊滅させるなどのクソ航空機による惨劇を止めねばならない、侵略者を打ち負かすため団結するべきだ 気候変動騒音犯罪は処罰され生活を破壞された人たちは賠償され侵略者は皆殺しにされるべきた゛と訴え正義を実現するための行動を起こそう! (ref.) Ttрs://www.сall4.jp/info.php?Τype=items&id=I0000062 тtρs://haneda-projeСТ.jimdofree.com/ , ttps://flight-route.сom/ ttPs://n-souonhigaisosyoudan.amebaownd.сom/
247 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★
本文 スレッドタイトル 投稿者