集合論に基づいた言語を作りたい

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2014/08/10(日) 21:27:16.56ID:x7G32Sd0
計算機科学の基礎は集合論であるという。
ならば、集合論に基づいた言語を作れば美しい言語になるのでは?
そんな発想から徹底的に集合論的思想で言語仕様を考えるスレです。
2014/10/26(日) 04:14:23.56ID:dhX+3K0L
>>611
リストじゃダメなのか?
効率が良くなければならないってことはないんだよな?

>>299
>関数型言語は効率が悪そうたって、「集合論に基づいた言語」とかいうのはもっと効率が悪くなるだろうに。

>>300
>集合論に基づいた言語は教科書の章末問題をサクサクっとインプリメントすることを目的としてる。
>実用性はあんまり求めない。
2014/10/26(日) 11:52:04.74ID:WbgAndU6
>>612
その人に理由きいたって無駄だよ。
関数型言語は効率悪いから集合論言語として却下するけど、
集合論言語は効率度外視でいいとか言い出す上に
ルビーは文字列操作ユーティリティーが充実してるから使えるとか
真顔で書いちゃう人なんだから。
2014/10/26(日) 12:19:59.03ID:lx1fz+FP
おいおいそんなこと書くと『わざと曲解してないか?』って言われちゃうぞ
615
垢版 |
2014/10/26(日) 19:06:58.39ID:bR5aD7tI
>>613
関数型言語却下は効率わるいからじゃなくて生産性あがんないからだよ。
まあ、探せば生産性あがる問題もあるのかもしれんが。

prologなんか無限ループっぽくなるんだが。
裏でなにやってんのかよくわからん。
prolog確かに面白そうではあるんだが、いまいち理解できん。
2014/10/26(日) 21:24:52.33ID:cZX7ddvm
>>615
有限集合限定でよければHaskellのリストで代用できるだろ。重複要素を取り除くようにすればいいだけで。
「生産性が上がらないからHaskell等は却下」ということなら集合を扱う言語を新たに作っても生産性は上がらない。

1は「集合を扱う言語を作れば高い生産性をもつはずだ」と具体案も示さずに言っているだけ。
617
垢版 |
2014/10/26(日) 21:39:05.82ID:bR5aD7tI
>>616
リストで集合の代用できるのは確かにそうだが、それを言ったらいろんなデータ構造が無意味になっちゃうだろ。
代用できるだけじゃやっぱダメなんだよ。

具体案を出してないのは認める。
618デフォルトの名無しさん
垢版 |
2014/10/26(日) 22:12:04.35ID:lx1fz+FP
「生産性」とかいいながらやっぱり効率の面で却下してるね
もいっぺん>>615-617を冷静に読みかえしてみて。
>>616は一言も効率(やデータ構造)の話はしてないよ

せめて自分の頭んなかくらい整理して書いてくれ
整理せずに断片的に書きちらしてるから後出しって言われんだよ
619
垢版 |
2014/10/26(日) 22:24:04.14ID:bR5aD7tI
>>618
俺も効率の話はしてないつもりだったが。
例えばキューやスタックなんかはリストで簡単に代用できるが、
専用のクラスを用意しておくことは意味があると思ってる。
2014/10/26(日) 22:37:21.48ID:lx1fz+FP
なんでそこでキューやスタックがでてくるんだw
有限集合の話じゃないのかよwwww
621
垢版 |
2014/10/26(日) 22:40:47.72ID:bR5aD7tI
集合とリストは本質的に異なるという立場。
まあ、代用はできるんだが。
2014/10/26(日) 22:51:49.39ID:lx1fz+FP
では>>616が書いて>>1も同意したように
"重複要素を取り除く"ような薄いラッパーをかませばhaskellのリストは有限集合の代用になるのに
それ以外に効率とは関係なく「生産性」の上で課題になる「集合とリストの本質的な違い」ってなんだ?
623
垢版 |
2014/10/26(日) 23:02:30.10ID:bR5aD7tI
ぶっちゃけラッパーかませば問題ないなw
そういう薄いラッパーみたいなこまごまとした小道具がきっちりそろってるのがRubyの魅力だったりする。
でもまあ、今更だけど効率的に計算オーダーが変わっちゃうのはやっぱちょっと気になるかな。
2014/10/26(日) 23:09:02.90ID:uNWVyTps
Rubyしかしらないだけでしょ
2014/10/26(日) 23:16:23.07ID:lx1fz+FP
効率以外の面では既存言語(例えばhaskell)に集合操作ぽいラッパーがあればそれで充分と認めたんだよな?
問題は有限集合を扱う効率だけだということになってかなり整理されたな。

じゃお前さんが「生産性」の上では充分だと思うようなラッパーを既存言語の上で定義してくれよ。
haskellでもrubyでもいいよ
それがあれば効率よく処理する必要があるターゲットがみんなにも具体的によくわかる。
626
垢版 |
2014/10/27(月) 00:02:38.69ID:hKk3OxSM
>「生産性」の上では充分だと思うようなラッパー

ここが一番難しい。
ぶっちゃけ、まだこれだというアイディアはない。

普通に考えると集合論で定義されている一般的な演算をインプリメントすることになるんだろうけど、
それで生産性どの程度あがるかなぁ。

まあ、>>59>>62でも言ってるけど、なんか面白いアイディアがないとダメかなと思ってる。
2014/10/27(月) 00:16:15.58ID:xsoB8LA3
ここまで短時間で主張を二転三転されると笑うしかないな
あえて好意的に解釈しても正気かどうか心配になるレベル
2014/10/27(月) 00:50:39.76ID:UstcwDIj
関数型で生産性上がらないみたいなこといってるけど、例えば商集合演算を書く時はどうすんの。
集合論に基づいた言語を作るなら、少なくとも関数がファーストクラスであることは生産性に大きく関わると思うんだけど。
あと数学の関数は状態を持たないから、全ての関数が参照透明であるかどうかはともかくとして、
数学の意味での関数を使う場合には参照透明な関数であることを制約するような記述ができる必要があるかもね。
2014/10/27(月) 03:06:19.81ID:S1pbHk8f
>>623
「集合論に基づいた言語」を新たにつくっても、その言語に「こまごまとした小道具」はそろってないわけだが、
そうするとその新言語は1にとって魅力がないってことになるんじゃないか?
Rubyだったら簡単にできることが新言語では簡単にはできないのだから。
2014/10/27(月) 04:05:38.32ID:dHQizD3i
>>420
>>409のリンク先にあるような、集合や列の内包表記を使ったプログラムを読むのは1にはしんどいってことだな。
2014/10/27(月) 05:43:19.35ID:Rvvlh30F
結局、ルビー以外を提案しても全部却下して
「ここがルビーのいいところ」とか書いちゃうんだよ。
関数型言語の生産性の高さも知らずにね。
2014/10/27(月) 06:55:54.77ID:9dCb0Lih
そもそも「作りたい」ってスレタイが間違ってんじゃね
こいつ絶対作る気ないだろ
2014/10/27(月) 11:42:55.16ID:VoSGhOqg
そんなことはどうでもいい
634
垢版 |
2014/10/27(月) 20:16:20.56ID:hKk3OxSM
>>627
まあ、確固たる主張があるわけではないからな。

>>628
関数はファーストクラスの方がいいだろうな。
参照透明性は微妙。
あるに越したことはないけど、そこ頑張りどころかなぁ?という気はする。

>>629
ぶっちゃけ、Rubyは最強言語なので。
そんな簡単には超えられないでしょう。

>>630
正直、かなりしんどい。
あれ以上は簡単にできないのかもしれんが。

>>631
関数型言語で生産性が上がる問題があるなら教えてくれ。

>>632
まだネタ出しの段階だからな。実装ははるか先の話だ。
635
垢版 |
2014/10/27(月) 20:19:14.66ID:hKk3OxSM
それにしてもprolog動かんなぁ。
センスないわ俺。
2014/10/27(月) 21:05:20.40ID:K1rstjve
>>634
>関数型言語で生産性が上がる問題があるなら教えてくれ。

で、相手が何か例を挙げたらケチつけるんだろw
自分は「集合論に基づいた言語」で生産性が上がる例を示さずにw
637
垢版 |
2014/10/27(月) 21:22:05.89ID:hKk3OxSM
俺がケチつけられないほど明確に生産性の上がってる問題を頼む。
638
垢版 |
2014/10/27(月) 21:25:15.63ID:hKk3OxSM
まあ、集合論に基づいた言語は絵空事で終わる可能性があるからな。
関数型言語はそんなことないんだろ?
2014/10/27(月) 21:40:34.27ID:xsoB8LA3
ほんとに何言ってんのかねこの人はwww
2014/10/27(月) 21:48:32.99ID:K1rstjve
>>637
そうした例を挙げても1に餌を与えるだけだし。
関数型言語でも論理型言語でもその他でも同じこと。
2014/10/27(月) 22:01:34.98ID:UstcwDIj
高階関数によるチェインなんかは生産性のあがる例じゃないの。並列化も簡単でしょ。
まあ関数型のスレではないけど、集合論というか数学ってまさに関数型言語なのに、
よくわかってなさそうだからつっこまれるんだろうけど。
2014/10/27(月) 22:37:28.46ID:K1rstjve
>>300
>集合論に基づいた言語は教科書の章末問題をサクサクっとインプリメントすることを目的としてる。
>実用性はあんまり求めない。

>>305
>集合論に基づいた言語では狭い領域の問題に限り(教科書の章末問題とか)
>高い生産性を発揮することを目標にしてる。

「サクサクっとインプリメント」できるどうか、「高い生産性を発揮」しているかどうかは、1の主観で判断される。
643
垢版 |
2014/10/27(月) 22:42:25.97ID:hKk3OxSM
>>641
確かに高階関数はカッコいい気がするが、具体的にどんな問題で使われてるか知らない。
並列化は簡単というが、まだ実現はしてなかったような。
まあ、俺は関数型言語も数学も造詣はないな。
2014/10/27(月) 22:54:12.79ID:CRLCLkYm
jqueryのメソッドチェーンは便利だね
2014/10/27(月) 22:57:50.25ID:UstcwDIj
>>643
個人的な経験でいえば、DBからデータを取ってきて加工したりするときに非常に書きやすいかな。
とにかく、コレクションのデータを加工して流すときに非常に簡潔に書ける。
他にもあるけど、今すぐに思いついたのはこれかな。
並列化はClojureなんかは簡単に書ける。Javaも8からできたんじゃなかったっけ。まあJavaのあれは関数型と言うには気持ち悪いけど。
というか、適用する関数が副作用を持たないと仮定するなら、作用させるデータを分割して再結合すればいいっていう単純な話でそ。
2014/10/27(月) 23:02:23.54ID:UstcwDIj
あ、メソッドチェーンにおける並列化が簡単にできるという意味ね。
プログラム自動並列化は詳しくないけどまだ発展途上じゃないかな。
647
垢版 |
2014/10/27(月) 23:32:47.45ID:hKk3OxSM
>>645
ふーむ。確かにコレクションのデータを加工して流すのは出現頻度が高そう。
勉強になりました。
Clojuerちょっとぐぐってみたけど、ソフトウェア・トランザクション・メモリーとかよくわからんかった。
とりあえず簡単に並列化できそうな雰囲気は伝わってきたw
2014/10/28(火) 00:54:20.05ID:2moDL6+C
>>とにかく、コレクションのデータを加工して流すときに非常に簡潔に書ける。
>ふーむ。確かにコレクションのデータを加工して流すのは出現頻度が高そう。
>勉強になりました。

このスレでHaskellの名前が出てから2ヶ月たつけど、2ヶ月の間に自分で調べたりはしなかったんだな。
2014/10/28(火) 01:22:16.19ID:F9KmtOQp
この言語が最強っていう信念のある人だからね
2014/10/28(火) 01:46:36.67ID:2moDL6+C
Ruby最強と思っているらしいけど、それなら新しい言語を作ろうなんて思わければ良さそうなものだがな。
新しい言語を作っても、Rubyにあるような、お気に入りの便利な機能なんかないから、「Rubyなら簡単にできるのに」
って不満がたまるだけだろうに。
集合を使った表記法のプログラムを読むのもかなりしんどいそうだし。>>634
2014/10/28(火) 13:51:55.51ID:/Y9XnqU0
>>638
ちょっと待った。
絵空事で終わらない可能性がゼロでないことを説明してくれ。

>>643
C++ やるんじゃなかったけ? <functional> とか高階関数だらけじゃん。
Javascript とかでも良く使うよ。Ruby では使わないの?
2014/10/28(火) 14:27:02.71ID:BaOL+HSr
>>643
高階関数って名前じゃ無くても同じ事させてるのは体験してるだろ?
あるオブジェクトのリストを(必要な要素だけ抽出(filter)してデータ変換(map)して集約(reduce)させるとか
2014/10/28(火) 15:52:04.32ID:g7PPMDyH
関数型の生産性の証拠は求めるけど
もちろんルビー最強の証拠なんて知らんぷり
2014/10/28(火) 15:53:32.28ID:g7PPMDyH
典型的なルビ厨
2014/10/28(火) 16:20:55.17ID:mPN7Yd+C
>集合論に基づいた言語は教科書の章末問題をサクサクっとインプリメントすることを目的としてる。
>実用性はあんまり求めない。

>集合論に基づいた言語では狭い領域の問題に限り(教科書の章末問題とか)
>高い生産性を発揮することを目標にしてる。

1の言う「生産性」はこういうことだから、教科書やそれに載ってる問題を具体的に挙げて、
この問題をこういうふうに書きたいんだけど、Rubyではこんなふうにしか書けない、
Haskellではこんなふうにしか書けない…、そのためにサクサクっとインプリメントすることができず、
生産性が上がらない

って話を1がしないとどうしようもないんだよな。
Rubyその他、既存の言語で「サクサクっとインプリメントすること」ができるのなら
新しい言語をつくる意味がないんだから。
2014/10/28(火) 20:20:01.18ID:sNcgfmnM
>>655
結局それにつきるな
それに対して1は具体的はアイディアがないからとか
返答になってないことをうだうだ言うだけで問題意識を明らかにしようとはせず
そのうちまた新しいループがはじまる、と。
657
垢版 |
2014/10/28(火) 21:27:06.97ID:Eyw4r4/G
>>648
まあな

>>651
>絵空事で終わらない可能性がゼロでないことを説明してくれ。
それはむずかしいな。
数学っぽくプログラムできたらいいんじゃね。とか
教科書の記述がそのまま実装になったらいいんじゃね、とか
そういう曖昧なイメージがあるだけで、見切り発車でスレたてたからな。

>C++ やるんじゃなかったけ? <functional> とか高階関数だらけじゃん。
functionalって使ったことないかも。
setやmapでoperator<を定義することはあるけどそれとは違う?

>Ruby では使わないの?
Enumerableのメソッドならよく使うが。

>>652
Rubyのcollectとかはよく使う。

>>655
>>656
まあ、サクサクインプリメントできない問題が具体的にあったわけじゃないんだよな。
数学的な記述がそのまんま実装になったら楽しいかなぁとかその程度の問題意識しかなかった。
プログラミングの素養がなくても教科書丸コピで動いちゃうみたいな?
そんな感じ。

ちなみに、教科書丸コピは後付けなんだよなぁ。
いろいろやってるうちにこのスレを立てた時の最初の気持ちは何だったのかもう忘れてしまった。
2014/10/28(火) 22:13:27.20ID:SAcW2ukT
>>657
教科書の演習問題を丸コピすれば答を出してくれるソフトをつくろうと
してたのか? w

ごまかそうとしないで、どの教科書のどの演習問題をどのように実装できる
言語をつくろうとしているのかちゃんと書け。
2014/10/28(火) 23:02:45.22ID:SAcW2ukT
>>575
こんなことを書くぐらいだから、推論や数式処理の機能をもつ言語を考えていたわけじゃないよな。
2014/10/29(水) 01:09:17.84ID:7WbuvXm2
プログラミング言語に有限集合を扱う機能を持たせさえすれば
離散数学やアルゴリズムの教科書の
「数学的な記述がそのまんま実装になった」り
「プログラミングの素養がなくても教科書丸コピで動」かせるようになると
1は思っているということだな。
2014/10/29(水) 07:51:54.82ID:uFHhP6NK
>>657
>数学っぽくプログラムできたらいいんじゃね。とか

いい言語を教えてやろう。FORTRAN (FORmula TRANslator) だ。
2014/10/29(水) 15:03:48.76ID:+dOdWCkt
>>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) );
例えば後者。関数を返す関数を呼んで、戻された関数を別の関数が呼んでる。
2014/10/29(水) 20:53:26.55ID:0HNaGJ1I
当の本人がどうしたいのかハッキリしてない以上
「顧客が本当に必要だったもの」のあの絵の状態になる可能性は非常に高い
本人はプログラマのつもりかも知れんが、実際は顧客の物言いをしてる
しかも、注文とダメ出しだけ多くて、かつ本人は解ってる(つもり)というタイプの

この板は「こんなソフト作ってよ」と頼む場所ではないと思うのだが
2014/10/29(水) 21:05:16.16ID:ITcKex6d
まだ構想(=夢)の段階であれこれと夢想し構想し、その過程が文字で見える過程を、傍からみている私は楽しんでいる
>>1 続けてくれ
665
垢版 |
2014/10/29(水) 23:04:45.80ID:6KDieIbJ
>>658
むりぽ

>>662
bind2ndとか知らなかったわ。テンプレート恐るべし。
まあ、勉強になりました。

>>664
ぶっちゃけ、毎日書き込むのつらくなってきたわ。
このスレは今後不定期更新になりますw
2014/10/30(木) 00:38:38.53ID:HxKeCYce
>>665
1が書き込んだあとには

1に餌を与えないでください
>>559 >>655-665

と書いたほうがいいな。
そうしないと同じことの繰り返しになるだろうから。
2014/10/30(木) 03:27:37.45ID:sggd5tBz
>>666

>>425も追加で。
668
垢版 |
2014/10/31(金) 20:03:03.95ID:g6D744er
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),!.
2014/10/31(金) 20:34:56.87ID:eFG4AR46
>>668
それと「集合論に基づいた言語を作る」のとどういう関係があるんだ?

>>666-667
2014/10/31(金) 20:42:19.57ID:eFG4AR46
>>668
↓で教えてもらえ
【論理】Prolog【初心者】
http://peace.2ch.net/test/read.cgi/tech/1289016056/
2014/11/01(土) 00:21:10.18ID:QdACbqof
>>670
その結果。

http://peace.2ch.net/test/read.cgi/tech/1289016056/786
|全般的な感想として、1)..3) を見るに (Prolog 以前に)一般的なプログラミングの基礎が身に付いていないと思う
|おそらく集合理論言語スレの 1 だと思うけど、大学で情報系を専攻していたのなら情けない結果だ
|学生時代に遊んでいたのか、当時はできたけど今はその感覚が戻っていないだけなのか、わからないけどね
|現状のレベルでは、言語処理系を自作するなんてのは、夢物語か妄想のたぐいと判断せざるをえない
2014/11/01(土) 20:55:00.77ID:jtBHZTX6
Boost.Iclを参照せよ。
673
垢版 |
2014/11/02(日) 00:06:07.92ID:WfQoOxnP
>>672
情報はありがたいんだが、レスするのペースダウンするつもりなので宿題にさせてくれ。
2014/11/02(日) 14:33:07.98ID:2+jwxmIt
>>673
>宿題

集合論に基づいた言語の作成に関係があるからこのスレに書くべきだと示せるのでなければ
宿題はBoost総合スレにでも行ってやれ。
Boostに興味がある人・詳しい人はそっちのスレのほうが多くいるはずだ。
他の言語・ライブラリのことでも同様。その言語・ライブラリに興味がある人・詳しい人が多そうなスレを選んで書け。

>>425 >>559 >>655-665
6751
垢版 |
2014/11/02(日) 18:33:09.61ID:WfQoOxnP
>>674
このスレの基本スタンスは雑談なので面白そうなトピックスは適宜拾っていったらいいんだぜ?
そうじゃなきゃ尺が稼げんだろうがw
2014/11/02(日) 20:08:03.24ID:4mhasaGI
>>425
今度は『ここは雑談スレだ』と言い出した。
677
垢版 |
2014/11/02(日) 21:55:00.94ID:WfQoOxnP
あと、このスレは俺中心に進めていく必要はないんだぜ?
みんなで雑談してくれて構わないんだぜ?
2014/11/02(日) 22:45:12.36ID:2oaHueQb
>>676
雑談スレはすでにあるのにな。
http://peace.2ch.net/test/read.cgi/tech/1406986967/

>>559
1は「何でもいいから話題クレクレ」に路線変更。
2014/11/03(月) 08:07:42.94ID:FKymKC8X
>>1
> 徹底的に集合論的思想で言語仕様を考えるスレです。

どう読んでも雑談スレじゃないよね
2014/11/03(月) 11:16:05.33ID:C9Z/RfTt
それでもいいんじゃない‥雑談スレはすぐに話題が収束するからね‥
681
垢版 |
2014/11/05(水) 21:01:40.21ID:aXYuBMMC
prolog版connect4できたっぽいのであげます。
http://www.age2.tv/rd05/src/up5443.txt.html

長かった…!
prologでプログラミングするには…
なんと多くの辛抱が必要なものかと…!

あんまりテストしてないのでバグがあるかも。
682
垢版 |
2014/11/05(水) 21:29:06.77ID:aXYuBMMC
prolog識者がいたら添削たのむ
2014/11/06(木) 01:04:11.78ID:i9pGGwTT
>>681-682
>>669-670
>>425 >>559 >>655-665
2014/11/06(木) 01:47:04.84ID:TxZPnLvK
>>682
TwitterにPrologおじさんがいるからみてもらえ
685
垢版 |
2014/11/06(木) 20:03:55.57ID:1yGaI9pi
>>454
>>456
>>587
なんかコメントくれ。

>>684
Prologおじさんてその道で飯くってるひとじゃね?
こちらからタダで見てくれとは頼みづらいわな。
お前らみたいに自発的にスレ見てくれてる人とは訳が違う。
2014/11/06(木) 21:01:27.80ID:C8/OFtDI
>>685
>>454 >>456 >>587の3人にコメントを求める前に>>655-665

1はプログラムを添削してほしいのに添削できる人が集まってそうなところを避けるようなバカだしな。
687
垢版 |
2014/11/06(木) 22:26:58.78ID:1yGaI9pi
Boost.Iclちらっとぐぐってみたけど、実装の大変さの割に活躍する場面があんまりないようなw
いつ使うかな〜コレ。
たしかに集合っちゃ集合なんだけど正直微妙。
2014/11/07(金) 04:13:14.72ID:QM030TJs
>>685
>>1の「クレクレ」が不快だと言っている>>587に対してコメント「クレクレ」w
2014/11/07(金) 04:36:31.62ID:Nfw1pK0/
>>454 >>456 >>587が言ってるのは「集合論に基づいた言語」を作るのならPrologが参考になるはずということだろうから、
1がPrologで書いたプログラムにコメントしなけりゃいけないというものではないな。
690デフォルトの名無しさん
垢版 |
2014/11/07(金) 17:32:05.33ID:eCqmNoes
実装が大変かどうかは問題にならん。
691
垢版 |
2014/11/07(金) 20:05:41.11ID:FWyIh5H/
>>690
まあ、ユーザーからすれば問題にならないけど。
Boostの人たちももうやり尽しちゃったて感じかなw。
2014/11/08(土) 05:55:33.54ID:N89Y1+Fh
これが集合論の何に参考になるのかサッパリわからんわ。
添削するだけ無駄。結局文句だけ言ってルビー最高って結論出すだけw
693
垢版 |
2014/11/08(土) 10:50:24.96ID:vsjOn1b1
>>692
おれもサッパリわからんわw
文句は>>454 >>456 >>587に言ってくれ。

prologでconnect4作ってみて思ったのは
connect4は習作として優れているってことと、
prologはconnect4作るのに向いてないってことだなw

prologでプログラム組むにはかなり慣れが必要。
ぶっちゃけ特殊技能やなこれ。
発想は面白いとおもうがこれで真面目にプログラム組もうと思う人がどれだけいることか。

しかし、prologの変数は参照透過なのかな。
haskellよりプログラム書きづらかったわ。

まあ、Ruby最強だな。
694
垢版 |
2014/11/08(土) 12:45:40.20ID:vsjOn1b1
×connect4は習作として優れている
○connect4は習作の題材として優れている
2014/11/08(土) 15:02:48.96ID:PXfop+Ut
>>693-694
>>300
>集合論に基づいた言語は教科書の章末問題をサクサクっとインプリメントすることを目的としてる。
>実用性はあんまり求めない。

connect4は、どの教科書の章末問題なんだ?
2014/11/08(土) 15:17:42.64ID:N89Y1+Fh
connect4を集合論プログラミングの例題として使いたいんなら、
まずはconnect4のルールを集合論的に定義するのが先だ。

今のところ1がやってるのは単なる手続き的実装例の移植じゃん。
それで参考になるわけがない。
2014/11/08(土) 15:33:25.11ID:oJ3Se8B2
>>695
「教科書」は「離散数学とかアルゴリズムのやつ>>523」か集合論のものに限定。
挙げられなければ、また1の後出しジャンケンってことで。
>>425 >>559 >>655-665
2014/11/08(土) 15:40:24.89ID:ebCh2W7f
記述は日本語なのか英語なのか数学記号によるのか?
699
垢版 |
2014/11/08(土) 19:44:24.22ID:vsjOn1b1
>>695
connect4が載ってる教科書は見たことないな。

>>696
>>697
connect4は新しい言語を勉強するときに都合がいいから使ってるだけであって、
集合論プログラミングとは関係ないんだけどな。
というか、集合論プログラミングの題材としてどんなものがいいかは
まだよくわかってないんだよな。
正規言語とオートマトン、文脈自由言語とプッシュダウンオートマトン
あたりかなぁとは思っているんだが。

>>698
数学記号じゃね?
2014/11/08(土) 19:53:04.25ID:LHO3gvAT
>>693
プログラミングパラダイムごとに得意な領域、不得意な領域が存在するのに、なんで例題一個だけで言語を判断しようとするの?短絡的すぎない?
全部Prologで書くのはきついものがあるけど、部分的にPrologを採用してるプロジェクトはあるよ
(とはいえPrologがconnect4を作るのに向いているかどうかで言えばたぶん向いてないとは思うけどね)
701
垢版 |
2014/11/08(土) 20:18:34.70ID:vsjOn1b1
>>700
ぐう正論ですな。
まあ、そんな簡単に新しい言語は深く習得できないからな。
感触掴むくらいがせいぜいじゃね?
判断が早いというのは言われてみればそうだと思う。
ちなみにPrologで生産性が上がる問題があるなら教えてくれ。
2014/11/08(土) 21:02:07.77ID:7W78geqS
>>699 >>701
>集合論プログラミングとは関係ない

ならPrologスレでやれよ。
Prologに詳しい人はそっちのほうが多いはずだ。

【論理】Prolog【初心者】
http://peace.2ch.net/test/read.cgi/tech/1289016056/
703
垢版 |
2014/11/08(土) 21:21:57.05ID:vsjOn1b1
connect4は直接関係ないけどprologは関係あるかもしれないだろ。
つか、なんでこのスレでやっちゃダメなんだ。
意味わからん。
2014/11/08(土) 21:29:37.77ID:7W78geqS
>>703
>なんでこのスレでやっちゃダメなんだ。

スレ違いだから。

Prologの勉強をPrologスレでやってみて、「集合論に基づいた言語の作成」に関する話になったらここに来ればいい。
2014/11/08(土) 21:35:40.48ID:LHO3gvAT
>>701
まあ実を言うとPrologについてそんなに詳しくはないので、文法とWIkipedia程度の知識しかない
歴史的には定理自動証明の分野で使われてきていて、
最近ではIBMの例のワトソンのコアに使われてたりするとか、まあやっぱ知識処理なのだろうか
あとユニフィケーションと並列化の相性がよく、派生言語がいくつか出てるらしいね、Erlangとか
>>702のスレも業務への適用の話とかしててまだ途中だけど読んでて結構おもしろい

まあ言いたかったことは、他のパラダイムは切り捨てるより取り入れたほうが自分の糧になるよということで
以前関数型あたりも簡単に切り捨ててたから、それじゃもったいないよ
706
垢版 |
2014/11/08(土) 21:55:42.68ID:vsjOn1b1
>>704
You can't connect the dots looking forward. You can only connect them looking backwardsだよ!

>>705

>あとユニフィケーションと並列化の相性がよく、派生言語がいくつか出てるらしいね、Erlangとか

ErlangってPrologの派生だったの?
なんか並列化が得意らしいというのは聞いたことがあったが。

> >>702のスレも業務への適用の話とかしててまだ途中だけど読んでて結構おもしろい

そういやPrologスレちゃんと読んでないな。読んでみるか。

>まあ言いたかったことは、他のパラダイムは切り捨てるより取り入れたほうが自分の糧になるよということで
>以前関数型あたりも簡単に切り捨ててたから、それじゃもったいないよ

またまたぐう正論ですな。
気を付けます。
2014/11/09(日) 06:16:58.35ID:co8RBkg8
>>706
だーかーらー、そのconnect4とやらのルールを集合論的に書けばいいって言ってるだろ。
さっさとやれ。
2014/11/09(日) 16:46:55.86ID:9LyR+5oz
1は何かものを作れる人間じゃないから。
709
垢版 |
2014/11/09(日) 18:17:59.58ID:Yrjok8yA
>>707
んーどうだろうな。
俺もスレたてた時はすべてを集合で表せば数学的にうまくいくんじゃね?とか思ってたんだけど、
やっぱリストはリスト、タプルはタプルなんだよな。
connect4も無理に集合的に扱わないで手続型で扱った方が自然かもしれないんだよな〜
ぶっちゃけ、集合にこだわる意味が根底から揺らいでるw
数学の基礎的な部分が集合論でできてるってのはそうなんだろうけど、
応用問題解くときに些末な問題に煩わされたくないよね?

まあ、集合論でうまくいきそうな問題⇔教科書の章末問題かなぁとか思ってたんだけどさ。
その辺はあんまり整理できてない。
2014/11/09(日) 19:17:53.75ID:co8RBkg8
リストもタプルも集合論の枠組み内で普通に扱えるのだが、
もういいや、1に何かを期待するのはやめた。
2014/11/09(日) 19:30:26.31ID:FyV/3PpB
そろそろループ再開ですか?
2014/11/09(日) 19:44:15.77ID:XU91kGr5
算術演算+−×÷!/√
括弧()[]
等号不等号=≠<>≦≧≒≪≫
無限大∞
集合∈∋⊆⊇⊂⊃∪∩{|}#
論理:∧∨¬⇒⇔∀∃→∴∵
パーセント%
その他の記号±≡…;?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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