計算機科学の基礎は集合論であるという。
ならば、集合論に基づいた言語を作れば美しい言語になるのでは?
そんな発想から徹底的に集合論的思想で言語仕様を考えるスレです。
集合論に基づいた言語を作りたい
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2014/08/10(日) 21:27:16.56ID:x7G32Sd0577デフォルトの名無しさん
2014/10/22(水) 05:48:31.37ID:wja3nREO ルビ厨ってこんなんばっかり
威勢のいいこと言うだけで自分は何もしない
他人や他言語の成果に乗っかるだけ
威勢のいいこと言うだけで自分は何もしない
他人や他言語の成果に乗っかるだけ
578デフォルトの名無しさん
2014/10/22(水) 15:09:01.24ID:WTBQKchq Rubyまでとばっちりw
579デフォルトの名無しさん
2014/10/22(水) 18:30:22.20ID:kKncjr9Q580デフォルトの名無しさん
2014/10/22(水) 19:56:19.33ID:fCfdG1e1 >>517
二つの海岸線を曲線L1, L2とおいた時に、あるp(x,y)∈L1と曲線L2との中間点を
pとpを通る傾き-dx/dyの直線lとL2との交点との間にひかれる線分の中点とすると、
二つの海岸線の中間線はこの中点を集めたものになる?
二つの海岸線を曲線L1, L2とおいた時に、あるp(x,y)∈L1と曲線L2との中間点を
pとpを通る傾き-dx/dyの直線lとL2との交点との間にひかれる線分の中点とすると、
二つの海岸線の中間線はこの中点を集めたものになる?
581デフォルトの名無しさん
2014/10/22(水) 22:36:02.17ID:iNJY0L1E 設問の矛盾が問題ややこしくしているだけ。
その矛盾とは湾だ。湾を除外すれば簡単になる←このへんの要領の良さが仕事では重要。
まず陸地に外接する凹みのない多角形を生成すればいい。
次に各国の外接多角形どうしから等距離の点の軌道を求めればよい。
その矛盾とは湾だ。湾を除外すれば簡単になる←このへんの要領の良さが仕事では重要。
まず陸地に外接する凹みのない多角形を生成すればいい。
次に各国の外接多角形どうしから等距離の点の軌道を求めればよい。
582デフォルトの名無しさん
2014/10/22(水) 22:41:47.09ID:iNJY0L1E 国Aの外接多角形上の点を定めれば、そこから国Bへの最短距離の線分が定まる。その中間点は明らかに
国Bから同様の手順で求めた中間点と同じだ。だからその軌道で中間線は定まる。
国Bから同様の手順で求めた中間点と同じだ。だからその軌道で中間線は定まる。
583デフォルトの名無しさん
2014/10/22(水) 22:49:57.00ID:iNJY0L1E なお凸な外接多角形を用いない場合、中間線は定まらない。
584デフォルトの名無しさん
2014/10/22(水) 23:34:03.55ID:iNJY0L1E 設問(仕事における設計)を改変したことで怒られることはありえるので、アホ設計者に相談するのが先決である。
585デフォルトの名無しさん
2014/10/22(水) 23:58:12.26ID:iNJY0L1E 定まらなくもないか、凹の部分の曲率が、相手国から引いた最短距離を半径とする円より小さいならば定まる。
586デフォルトの名無しさん
2014/10/23(木) 01:20:06.15ID:mtwqOq23 ああそっか、最短距離でいいのか…いらんこと考えて複雑にしてたthx
http://pastebin.com/LqkjJc5k
http://pastebin.com/LqkjJc5k
587デフォルトの名無しさん
2014/10/23(木) 01:51:05.76ID:B12M++5h 何がムカつくって、>1が何もするつもりが無さそうなのに成果だけクレクレ言っているところだよな。
>1はPrologについて調査したのか?
>1はPrologについて調査したのか?
588デフォルトの名無しさん
2014/10/23(木) 02:14:57.76ID:TE8bWo7Y 最短距離じゃない。線分とそれを微小移動させた線分とが作る平行四辺形の密度が全海域に渡って一定となるように微小移動(速度関数)を決めればいいのか。
微分積分の問題。
微分積分の問題。
589デフォルトの名無しさん
2014/10/23(木) 02:16:30.21ID:TE8bWo7Y 平行四辺形じゃなくて四角形 ,ねじれて2つの三角形になることもある。
590デフォルトの名無しさん
2014/10/23(木) 02:20:07.97ID:TE8bWo7Y ねじれて2つの三角形になることもある→ない。
591デフォルトの名無しさん
2014/10/23(木) 04:45:24.37ID:xJ2edcK8 で、それのどこが集合論?
592デフォルトの名無しさん
2014/10/23(木) 04:46:42.26ID:dXJn7cDs ID:TE8bWo7Y は病気なんです。何も言わずにNGして下さい
593デフォルトの名無しさん
2014/10/23(木) 09:00:17.01ID:xLBbOXbP >>588
別に海岸線上の点を連続的に動かす必要ないでしょ
一般に距離空間において点Pから集合A,Bまでの距離をそれぞれd(P,A),d(P,B)とおくと
これらは連続関数になるからd(P,A)=d(P,B)を満たす点Pの集合を求めりゃいいだけ
別に海岸線上の点を連続的に動かす必要ないでしょ
一般に距離空間において点Pから集合A,Bまでの距離をそれぞれd(P,A),d(P,B)とおくと
これらは連続関数になるからd(P,A)=d(P,B)を満たす点Pの集合を求めりゃいいだけ
594デフォルトの名無しさん
2014/10/23(木) 12:20:33.04ID:TE8bWo7Y 海岸線を微分するためには連続関数にしなければならない。
そのためにはまずB-spline曲線近似する必要がある。
プロットした点を除外し再計算することでB-splineから湾を除去することもできる。
このように海岸線をパラメトリック曲線で表すことにより
パラメータの範囲を求めることができる。
どのように求めるかというと2つのパラメトリック曲線上の点が
2つの海岸線の共通の接線となる値を求め、それの最大と最小を求めればいいのだ。
これにより分割すべき海域が求まる。
次に海域を等密度で並ぶ線を求めることを考える。
そのためにはまずB-spline曲線近似する必要がある。
プロットした点を除外し再計算することでB-splineから湾を除去することもできる。
このように海岸線をパラメトリック曲線で表すことにより
パラメータの範囲を求めることができる。
どのように求めるかというと2つのパラメトリック曲線上の点が
2つの海岸線の共通の接線となる値を求め、それの最大と最小を求めればいいのだ。
これにより分割すべき海域が求まる。
次に海域を等密度で並ぶ線を求めることを考える。
595デフォルトの名無しさん
2014/10/23(木) 12:25:21.29ID:TE8bWo7Y 訂正;2つのパラメトリック曲線上の点が→2つのパラメトリック曲線上の点を通る線が
596デフォルトの名無しさん
2014/10/23(木) 12:40:29.47ID:TE8bWo7Y そんなことしなくてもいいか。
2つのB-spline曲線上の点を結ぶ線分で、他の箇所と交わらないようにパラメータの最大と最小を求めればいい。
2つのB-spline曲線上の点を結ぶ線分で、他の箇所と交わらないようにパラメータの最大と最小を求めればいい。
5971
2014/10/23(木) 18:46:19.11ID:gc7yGcGD598デフォルトの名無しさん
2014/10/23(木) 19:35:25.06ID:xJ2edcK8 B-spline以外にもC1連続な曲線なんていくらでもあるだろ
599デフォルトの名無しさん
2014/10/23(木) 19:39:22.10ID:TE8bWo7Y さて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)が解けなければいけない。
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.66ID:xJ2edcK8 >>599
人格障害ですか?お大事に。
人格障害ですか?お大事に。
601デフォルトの名無しさん
2014/10/23(木) 20:26:31.21ID:TE8bWo7Y まともに解こうとすると糞難しい。
この問題を安易に解く方法は両陸地に接する円をすこしづつ動かして中心点をつないでいくのがよい。
この問題を安易に解く方法は両陸地に接する円をすこしづつ動かして中心点をつないでいくのがよい。
602デフォルトの名無しさん
2014/10/23(木) 21:45:05.80ID:lKZXmaCH6031
2014/10/23(木) 22:11:09.64ID:gc7yGcGD604587ではない
2014/10/23(木) 22:48:38.73ID:jdc4xe8Q >>597
問題領域が「有限集合と集合間の関係」でモデル化できるのであれば、
関数型やオブジェクト指向よりも論理型言語の Prolog のほうが圧倒的に簡潔に書ける
・プログラミング雑談スレ♯+++
http://peace.2ch.net/test/read.cgi/tech/1406986967/357-371
この例では、従業員/部門/所属という有限集合を扱っている
たとえば集合 従業員 は以下のように定義される
従業員 = { <1, 山田>, <2, 鈴木>, <3, 田中>. <4, 松下>. <5, 本田> }
ここで、「<X, Y>」は集合 X と Y の直積を表す
問題領域が「有限集合と集合間の関係」でモデル化できるのであれば、
関数型やオブジェクト指向よりも論理型言語の 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.18ID:gLVwzl7v606デフォルトの名無しさん
2014/10/24(金) 19:07:28.65ID:smFrq6Ls そういう意味での終了ならとっくに終了してる。ずっと雑談スレとして続いている。
まあこのペースなら放置よりも1000の方が落ちるのが早そうだから、さっさと消化して落としてしまうのがいいだろう。
まあこのペースなら放置よりも1000の方が落ちるのが早そうだから、さっさと消化して落としてしまうのがいいだろう。
607デフォルトの名無しさん
2014/10/25(土) 13:59:00.13ID:hqtmXmou >>605-606
ほんとにCoqなんかで終了と思っとるん?
ほんとにCoqなんかで終了と思っとるん?
608デフォルトの名無しさん
2014/10/25(土) 14:49:44.46ID:CW0KbvIq 思ってるよ
何か問題でも?
何か問題でも?
609デフォルトの名無しさん
2014/10/25(土) 15:00:33.74ID:rVCkRMh+ それは証明系であって、汎用プログラミング言語じゃない。
コーディングしているのは証明。
コーディングしているのは証明。
610デフォルトの名無しさん
2014/10/25(土) 17:23:24.88ID:0lds8eT1 >>609
それのどこが問題なんだ?
それのどこが問題なんだ?
6111
2014/10/25(土) 21:33:01.44ID:ujOd7NYK prologでconnect4作ろうとしたんだがやり方がよくわからん。
盤面の情報はどうやって保持すればいいんだ?
盤面の情報はどうやって保持すればいいんだ?
612デフォルトの名無しさん
2014/10/26(日) 04:14:23.56ID:dhX+3K0L613デフォルトの名無しさん
2014/10/26(日) 11:52:04.74ID:WbgAndU6 >>612
その人に理由きいたって無駄だよ。
関数型言語は効率悪いから集合論言語として却下するけど、
集合論言語は効率度外視でいいとか言い出す上に
ルビーは文字列操作ユーティリティーが充実してるから使えるとか
真顔で書いちゃう人なんだから。
その人に理由きいたって無駄だよ。
関数型言語は効率悪いから集合論言語として却下するけど、
集合論言語は効率度外視でいいとか言い出す上に
ルビーは文字列操作ユーティリティーが充実してるから使えるとか
真顔で書いちゃう人なんだから。
614デフォルトの名無しさん
2014/10/26(日) 12:19:59.03ID:lx1fz+FP おいおいそんなこと書くと『わざと曲解してないか?』って言われちゃうぞ
6151
2014/10/26(日) 19:06:58.39ID:bR5aD7tI >>613
関数型言語却下は効率わるいからじゃなくて生産性あがんないからだよ。
まあ、探せば生産性あがる問題もあるのかもしれんが。
prologなんか無限ループっぽくなるんだが。
裏でなにやってんのかよくわからん。
prolog確かに面白そうではあるんだが、いまいち理解できん。
関数型言語却下は効率わるいからじゃなくて生産性あがんないからだよ。
まあ、探せば生産性あがる問題もあるのかもしれんが。
prologなんか無限ループっぽくなるんだが。
裏でなにやってんのかよくわからん。
prolog確かに面白そうではあるんだが、いまいち理解できん。
616デフォルトの名無しさん
2014/10/26(日) 21:24:52.33ID:cZX7ddvm >>615
有限集合限定でよければHaskellのリストで代用できるだろ。重複要素を取り除くようにすればいいだけで。
「生産性が上がらないからHaskell等は却下」ということなら集合を扱う言語を新たに作っても生産性は上がらない。
1は「集合を扱う言語を作れば高い生産性をもつはずだ」と具体案も示さずに言っているだけ。
有限集合限定でよければHaskellのリストで代用できるだろ。重複要素を取り除くようにすればいいだけで。
「生産性が上がらないからHaskell等は却下」ということなら集合を扱う言語を新たに作っても生産性は上がらない。
1は「集合を扱う言語を作れば高い生産性をもつはずだ」と具体案も示さずに言っているだけ。
6171
2014/10/26(日) 21:39:05.82ID:bR5aD7tI618デフォルトの名無しさん
2014/10/26(日) 22:12:04.35ID:lx1fz+FP6191
2014/10/26(日) 22:24:04.14ID:bR5aD7tI620デフォルトの名無しさん
2014/10/26(日) 22:37:21.48ID:lx1fz+FP なんでそこでキューやスタックがでてくるんだw
有限集合の話じゃないのかよwwww
有限集合の話じゃないのかよwwww
6211
2014/10/26(日) 22:40:47.72ID:bR5aD7tI 集合とリストは本質的に異なるという立場。
まあ、代用はできるんだが。
まあ、代用はできるんだが。
622デフォルトの名無しさん
2014/10/26(日) 22:51:49.39ID:lx1fz+FP6231
2014/10/26(日) 23:02:30.10ID:bR5aD7tI ぶっちゃけラッパーかませば問題ないなw
そういう薄いラッパーみたいなこまごまとした小道具がきっちりそろってるのがRubyの魅力だったりする。
でもまあ、今更だけど効率的に計算オーダーが変わっちゃうのはやっぱちょっと気になるかな。
そういう薄いラッパーみたいなこまごまとした小道具がきっちりそろってるのがRubyの魅力だったりする。
でもまあ、今更だけど効率的に計算オーダーが変わっちゃうのはやっぱちょっと気になるかな。
624デフォルトの名無しさん
2014/10/26(日) 23:09:02.90ID:uNWVyTps Rubyしかしらないだけでしょ
625デフォルトの名無しさん
2014/10/26(日) 23:16:23.07ID:lx1fz+FP 効率以外の面では既存言語(例えばhaskell)に集合操作ぽいラッパーがあればそれで充分と認めたんだよな?
問題は有限集合を扱う効率だけだということになってかなり整理されたな。
じゃお前さんが「生産性」の上では充分だと思うようなラッパーを既存言語の上で定義してくれよ。
haskellでもrubyでもいいよ
それがあれば効率よく処理する必要があるターゲットがみんなにも具体的によくわかる。
問題は有限集合を扱う効率だけだということになってかなり整理されたな。
じゃお前さんが「生産性」の上では充分だと思うようなラッパーを既存言語の上で定義してくれよ。
haskellでもrubyでもいいよ
それがあれば効率よく処理する必要があるターゲットがみんなにも具体的によくわかる。
6261
2014/10/27(月) 00:02:38.69ID:hKk3OxSM627デフォルトの名無しさん
2014/10/27(月) 00:16:15.58ID:xsoB8LA3 ここまで短時間で主張を二転三転されると笑うしかないな
あえて好意的に解釈しても正気かどうか心配になるレベル
あえて好意的に解釈しても正気かどうか心配になるレベル
628デフォルトの名無しさん
2014/10/27(月) 00:50:39.76ID:UstcwDIj 関数型で生産性上がらないみたいなこといってるけど、例えば商集合演算を書く時はどうすんの。
集合論に基づいた言語を作るなら、少なくとも関数がファーストクラスであることは生産性に大きく関わると思うんだけど。
あと数学の関数は状態を持たないから、全ての関数が参照透明であるかどうかはともかくとして、
数学の意味での関数を使う場合には参照透明な関数であることを制約するような記述ができる必要があるかもね。
集合論に基づいた言語を作るなら、少なくとも関数がファーストクラスであることは生産性に大きく関わると思うんだけど。
あと数学の関数は状態を持たないから、全ての関数が参照透明であるかどうかはともかくとして、
数学の意味での関数を使う場合には参照透明な関数であることを制約するような記述ができる必要があるかもね。
629デフォルトの名無しさん
2014/10/27(月) 03:06:19.81ID:S1pbHk8f >>623
「集合論に基づいた言語」を新たにつくっても、その言語に「こまごまとした小道具」はそろってないわけだが、
そうするとその新言語は1にとって魅力がないってことになるんじゃないか?
Rubyだったら簡単にできることが新言語では簡単にはできないのだから。
「集合論に基づいた言語」を新たにつくっても、その言語に「こまごまとした小道具」はそろってないわけだが、
そうするとその新言語は1にとって魅力がないってことになるんじゃないか?
Rubyだったら簡単にできることが新言語では簡単にはできないのだから。
630デフォルトの名無しさん
2014/10/27(月) 04:05:38.32ID:dHQizD3i631デフォルトの名無しさん
2014/10/27(月) 05:43:19.35ID:Rvvlh30F 結局、ルビー以外を提案しても全部却下して
「ここがルビーのいいところ」とか書いちゃうんだよ。
関数型言語の生産性の高さも知らずにね。
「ここがルビーのいいところ」とか書いちゃうんだよ。
関数型言語の生産性の高さも知らずにね。
632デフォルトの名無しさん
2014/10/27(月) 06:55:54.77ID:9dCb0Lih そもそも「作りたい」ってスレタイが間違ってんじゃね
こいつ絶対作る気ないだろ
こいつ絶対作る気ないだろ
633デフォルトの名無しさん
2014/10/27(月) 11:42:55.16ID:VoSGhOqg そんなことはどうでもいい
6341
2014/10/27(月) 20:16:20.56ID:hKk3OxSM6351
2014/10/27(月) 20:19:14.66ID:hKk3OxSM それにしてもprolog動かんなぁ。
センスないわ俺。
センスないわ俺。
636デフォルトの名無しさん
2014/10/27(月) 21:05:20.40ID:K1rstjve6371
2014/10/27(月) 21:22:05.89ID:hKk3OxSM 俺がケチつけられないほど明確に生産性の上がってる問題を頼む。
6381
2014/10/27(月) 21:25:15.63ID:hKk3OxSM まあ、集合論に基づいた言語は絵空事で終わる可能性があるからな。
関数型言語はそんなことないんだろ?
関数型言語はそんなことないんだろ?
639デフォルトの名無しさん
2014/10/27(月) 21:40:34.27ID:xsoB8LA3 ほんとに何言ってんのかねこの人はwww
640デフォルトの名無しさん
2014/10/27(月) 21:48:32.99ID:K1rstjve641デフォルトの名無しさん
2014/10/27(月) 22:01:34.98ID:UstcwDIj 高階関数によるチェインなんかは生産性のあがる例じゃないの。並列化も簡単でしょ。
まあ関数型のスレではないけど、集合論というか数学ってまさに関数型言語なのに、
よくわかってなさそうだからつっこまれるんだろうけど。
まあ関数型のスレではないけど、集合論というか数学ってまさに関数型言語なのに、
よくわかってなさそうだからつっこまれるんだろうけど。
642デフォルトの名無しさん
2014/10/27(月) 22:37:28.46ID:K1rstjve6431
2014/10/27(月) 22:42:25.97ID:hKk3OxSM644デフォルトの名無しさん
2014/10/27(月) 22:54:12.79ID:CRLCLkYm jqueryのメソッドチェーンは便利だね
645デフォルトの名無しさん
2014/10/27(月) 22:57:50.25ID:UstcwDIj >>643
個人的な経験でいえば、DBからデータを取ってきて加工したりするときに非常に書きやすいかな。
とにかく、コレクションのデータを加工して流すときに非常に簡潔に書ける。
他にもあるけど、今すぐに思いついたのはこれかな。
並列化はClojureなんかは簡単に書ける。Javaも8からできたんじゃなかったっけ。まあJavaのあれは関数型と言うには気持ち悪いけど。
というか、適用する関数が副作用を持たないと仮定するなら、作用させるデータを分割して再結合すればいいっていう単純な話でそ。
個人的な経験でいえば、DBからデータを取ってきて加工したりするときに非常に書きやすいかな。
とにかく、コレクションのデータを加工して流すときに非常に簡潔に書ける。
他にもあるけど、今すぐに思いついたのはこれかな。
並列化はClojureなんかは簡単に書ける。Javaも8からできたんじゃなかったっけ。まあJavaのあれは関数型と言うには気持ち悪いけど。
というか、適用する関数が副作用を持たないと仮定するなら、作用させるデータを分割して再結合すればいいっていう単純な話でそ。
646デフォルトの名無しさん
2014/10/27(月) 23:02:23.54ID:UstcwDIj あ、メソッドチェーンにおける並列化が簡単にできるという意味ね。
プログラム自動並列化は詳しくないけどまだ発展途上じゃないかな。
プログラム自動並列化は詳しくないけどまだ発展途上じゃないかな。
6471
2014/10/27(月) 23:32:47.45ID:hKk3OxSM >>645
ふーむ。確かにコレクションのデータを加工して流すのは出現頻度が高そう。
勉強になりました。
Clojuerちょっとぐぐってみたけど、ソフトウェア・トランザクション・メモリーとかよくわからんかった。
とりあえず簡単に並列化できそうな雰囲気は伝わってきたw
ふーむ。確かにコレクションのデータを加工して流すのは出現頻度が高そう。
勉強になりました。
Clojuerちょっとぐぐってみたけど、ソフトウェア・トランザクション・メモリーとかよくわからんかった。
とりあえず簡単に並列化できそうな雰囲気は伝わってきたw
648デフォルトの名無しさん
2014/10/28(火) 00:54:20.05ID:2moDL6+C >>とにかく、コレクションのデータを加工して流すときに非常に簡潔に書ける。
>ふーむ。確かにコレクションのデータを加工して流すのは出現頻度が高そう。
>勉強になりました。
このスレでHaskellの名前が出てから2ヶ月たつけど、2ヶ月の間に自分で調べたりはしなかったんだな。
>ふーむ。確かにコレクションのデータを加工して流すのは出現頻度が高そう。
>勉強になりました。
このスレでHaskellの名前が出てから2ヶ月たつけど、2ヶ月の間に自分で調べたりはしなかったんだな。
649デフォルトの名無しさん
2014/10/28(火) 01:22:16.19ID:F9KmtOQp この言語が最強っていう信念のある人だからね
650デフォルトの名無しさん
2014/10/28(火) 01:46:36.67ID:2moDL6+C Ruby最強と思っているらしいけど、それなら新しい言語を作ろうなんて思わければ良さそうなものだがな。
新しい言語を作っても、Rubyにあるような、お気に入りの便利な機能なんかないから、「Rubyなら簡単にできるのに」
って不満がたまるだけだろうに。
集合を使った表記法のプログラムを読むのもかなりしんどいそうだし。>>634
新しい言語を作っても、Rubyにあるような、お気に入りの便利な機能なんかないから、「Rubyなら簡単にできるのに」
って不満がたまるだけだろうに。
集合を使った表記法のプログラムを読むのもかなりしんどいそうだし。>>634
651デフォルトの名無しさん
2014/10/28(火) 13:51:55.51ID:/Y9XnqU0652デフォルトの名無しさん
2014/10/28(火) 14:27:02.71ID:BaOL+HSr653デフォルトの名無しさん
2014/10/28(火) 15:52:04.32ID:g7PPMDyH 関数型の生産性の証拠は求めるけど
もちろんルビー最強の証拠なんて知らんぷり
もちろんルビー最強の証拠なんて知らんぷり
654デフォルトの名無しさん
2014/10/28(火) 15:53:32.28ID:g7PPMDyH 典型的なルビ厨
655デフォルトの名無しさん
2014/10/28(火) 16:20:55.17ID:mPN7Yd+C >集合論に基づいた言語は教科書の章末問題をサクサクっとインプリメントすることを目的としてる。
>実用性はあんまり求めない。
>集合論に基づいた言語では狭い領域の問題に限り(教科書の章末問題とか)
>高い生産性を発揮することを目標にしてる。
1の言う「生産性」はこういうことだから、教科書やそれに載ってる問題を具体的に挙げて、
この問題をこういうふうに書きたいんだけど、Rubyではこんなふうにしか書けない、
Haskellではこんなふうにしか書けない…、そのためにサクサクっとインプリメントすることができず、
生産性が上がらない
って話を1がしないとどうしようもないんだよな。
Rubyその他、既存の言語で「サクサクっとインプリメントすること」ができるのなら
新しい言語をつくる意味がないんだから。
>実用性はあんまり求めない。
>集合論に基づいた言語では狭い領域の問題に限り(教科書の章末問題とか)
>高い生産性を発揮することを目標にしてる。
1の言う「生産性」はこういうことだから、教科書やそれに載ってる問題を具体的に挙げて、
この問題をこういうふうに書きたいんだけど、Rubyではこんなふうにしか書けない、
Haskellではこんなふうにしか書けない…、そのためにサクサクっとインプリメントすることができず、
生産性が上がらない
って話を1がしないとどうしようもないんだよな。
Rubyその他、既存の言語で「サクサクっとインプリメントすること」ができるのなら
新しい言語をつくる意味がないんだから。
656デフォルトの名無しさん
2014/10/28(火) 20:20:01.18ID:sNcgfmnM6571
2014/10/28(火) 21:27:06.97ID:Eyw4r4/G >>648
まあな
>>651
>絵空事で終わらない可能性がゼロでないことを説明してくれ。
それはむずかしいな。
数学っぽくプログラムできたらいいんじゃね。とか
教科書の記述がそのまま実装になったらいいんじゃね、とか
そういう曖昧なイメージがあるだけで、見切り発車でスレたてたからな。
>C++ やるんじゃなかったけ? <functional> とか高階関数だらけじゃん。
functionalって使ったことないかも。
setやmapでoperator<を定義することはあるけどそれとは違う?
>Ruby では使わないの?
Enumerableのメソッドならよく使うが。
>>652
Rubyのcollectとかはよく使う。
>>655
>>656
まあ、サクサクインプリメントできない問題が具体的にあったわけじゃないんだよな。
数学的な記述がそのまんま実装になったら楽しいかなぁとかその程度の問題意識しかなかった。
プログラミングの素養がなくても教科書丸コピで動いちゃうみたいな?
そんな感じ。
ちなみに、教科書丸コピは後付けなんだよなぁ。
いろいろやってるうちにこのスレを立てた時の最初の気持ちは何だったのかもう忘れてしまった。
まあな
>>651
>絵空事で終わらない可能性がゼロでないことを説明してくれ。
それはむずかしいな。
数学っぽくプログラムできたらいいんじゃね。とか
教科書の記述がそのまま実装になったらいいんじゃね、とか
そういう曖昧なイメージがあるだけで、見切り発車でスレたてたからな。
>C++ やるんじゃなかったけ? <functional> とか高階関数だらけじゃん。
functionalって使ったことないかも。
setやmapでoperator<を定義することはあるけどそれとは違う?
>Ruby では使わないの?
Enumerableのメソッドならよく使うが。
>>652
Rubyのcollectとかはよく使う。
>>655
>>656
まあ、サクサクインプリメントできない問題が具体的にあったわけじゃないんだよな。
数学的な記述がそのまんま実装になったら楽しいかなぁとかその程度の問題意識しかなかった。
プログラミングの素養がなくても教科書丸コピで動いちゃうみたいな?
そんな感じ。
ちなみに、教科書丸コピは後付けなんだよなぁ。
いろいろやってるうちにこのスレを立てた時の最初の気持ちは何だったのかもう忘れてしまった。
658デフォルトの名無しさん
2014/10/28(火) 22:13:27.20ID:SAcW2ukT >>657
教科書の演習問題を丸コピすれば答を出してくれるソフトをつくろうと
してたのか? w
ごまかそうとしないで、どの教科書のどの演習問題をどのように実装できる
言語をつくろうとしているのかちゃんと書け。
教科書の演習問題を丸コピすれば答を出してくれるソフトをつくろうと
してたのか? w
ごまかそうとしないで、どの教科書のどの演習問題をどのように実装できる
言語をつくろうとしているのかちゃんと書け。
659デフォルトの名無しさん
2014/10/28(火) 23:02:45.22ID:SAcW2ukT >>575
こんなことを書くぐらいだから、推論や数式処理の機能をもつ言語を考えていたわけじゃないよな。
こんなことを書くぐらいだから、推論や数式処理の機能をもつ言語を考えていたわけじゃないよな。
660デフォルトの名無しさん
2014/10/29(水) 01:09:17.84ID:7WbuvXm2 プログラミング言語に有限集合を扱う機能を持たせさえすれば
離散数学やアルゴリズムの教科書の
「数学的な記述がそのまんま実装になった」り
「プログラミングの素養がなくても教科書丸コピで動」かせるようになると
1は思っているということだな。
離散数学やアルゴリズムの教科書の
「数学的な記述がそのまんま実装になった」り
「プログラミングの素養がなくても教科書丸コピで動」かせるようになると
1は思っているということだな。
661デフォルトの名無しさん
2014/10/29(水) 07:51:54.82ID:uFHhP6NK662デフォルトの名無しさん
2014/10/29(水) 15:03:48.76ID:+dOdWCkt663デフォルトの名無しさん
2014/10/29(水) 20:53:26.55ID:0HNaGJ1I 当の本人がどうしたいのかハッキリしてない以上
「顧客が本当に必要だったもの」のあの絵の状態になる可能性は非常に高い
本人はプログラマのつもりかも知れんが、実際は顧客の物言いをしてる
しかも、注文とダメ出しだけ多くて、かつ本人は解ってる(つもり)というタイプの
この板は「こんなソフト作ってよ」と頼む場所ではないと思うのだが
「顧客が本当に必要だったもの」のあの絵の状態になる可能性は非常に高い
本人はプログラマのつもりかも知れんが、実際は顧客の物言いをしてる
しかも、注文とダメ出しだけ多くて、かつ本人は解ってる(つもり)というタイプの
この板は「こんなソフト作ってよ」と頼む場所ではないと思うのだが
664デフォルトの名無しさん
2014/10/29(水) 21:05:16.16ID:ITcKex6d まだ構想(=夢)の段階であれこれと夢想し構想し、その過程が文字で見える過程を、傍からみている私は楽しんでいる
>>1 続けてくれ
>>1 続けてくれ
6651
2014/10/29(水) 23:04:45.80ID:6KDieIbJ666デフォルトの名無しさん
2014/10/30(木) 00:38:38.53ID:HxKeCYce667デフォルトの名無しさん
2014/10/30(木) 03:27:37.45ID:sggd5tBz6681
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),!.
誰か俺のコードをデバッグしてくれ。現状のコードは以下。
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.87ID:eFG4AR46670デフォルトの名無しさん
2014/10/31(金) 20:42:19.57ID:eFG4AR46671デフォルトの名無しさん
2014/11/01(土) 00:21:10.18ID:QdACbqof >>670
その結果。
http://peace.2ch.net/test/read.cgi/tech/1289016056/786
|全般的な感想として、1)..3) を見るに (Prolog 以前に)一般的なプログラミングの基礎が身に付いていないと思う
|おそらく集合理論言語スレの 1 だと思うけど、大学で情報系を専攻していたのなら情けない結果だ
|学生時代に遊んでいたのか、当時はできたけど今はその感覚が戻っていないだけなのか、わからないけどね
|現状のレベルでは、言語処理系を自作するなんてのは、夢物語か妄想のたぐいと判断せざるをえない
その結果。
http://peace.2ch.net/test/read.cgi/tech/1289016056/786
|全般的な感想として、1)..3) を見るに (Prolog 以前に)一般的なプログラミングの基礎が身に付いていないと思う
|おそらく集合理論言語スレの 1 だと思うけど、大学で情報系を専攻していたのなら情けない結果だ
|学生時代に遊んでいたのか、当時はできたけど今はその感覚が戻っていないだけなのか、わからないけどね
|現状のレベルでは、言語処理系を自作するなんてのは、夢物語か妄想のたぐいと判断せざるをえない
672片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/11/01(土) 20:55:00.77ID:jtBHZTX6 Boost.Iclを参照せよ。
674デフォルトの名無しさん
2014/11/02(日) 14:33:07.98ID:2+jwxmIt6751
2014/11/02(日) 18:33:09.61ID:WfQoOxnP676デフォルトの名無しさん
2014/11/02(日) 20:08:03.24ID:4mhasaGI >>425
今度は『ここは雑談スレだ』と言い出した。
今度は『ここは雑談スレだ』と言い出した。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「おこめ券は米以外の食品も買える。効果的な活用を」 地元で農水相 [山形県] [少考さん★]
- 【速報】「女芸人No.1決定戦 THE W」9代目女王にニッチェ! 7年ぶり3度目で悲願の優勝 [牛丼★]
- 【芸能】『女芸人No.1決定戦THE W』 粗品が最後にバッサリ「優勝賞金1000万円にしてはレベル低い大会」 [冬月記者★]
- 【沖縄】開業4ヵ月でこれは…“国民の税金”投入の『ジャングリア沖縄』で見た衝撃的な光景と、モチベーションが低い一部スタッフの現状 [ぐれ★]
- 【東京】「家族で話題にして」 “世田谷一家殺害から25年 警視庁が呼びかけ [煮卵★]
- 今年の流行語大賞 『働いて働いて働いてまいります』が受賞で不快感… 過労自殺の遺族らが会見「家族にむち打つような行為だ」 [冬月記者★]
- 前駐中国大使・垂秀夫『高市首相が台湾有事答弁を国会でしてしまったのは高市首相のなかに戦略的思考が無いから。安倍晋三を見習え』 [718678614]
- クズ「勉強頑張らなかった奴は一生DQNと一緒に肉体労働しろ」☚勉強頑張れるのも環境と巡り合わせなんだが? [783475554]
- 金曜ロードショー😭
- 朝だよー🥁🥺ドンドンドンドン
- ( ・᷄ὢ・᷅ )ケツ
- モブサイコ「私がJAグループに何か利益誘導するということは全くありません」 [402859164]
