関数型プログラミング言語 Haskell について語るスレです。
haskell.org (公式サイト)
https://www.haskell.org/
日本Haskellユーザーグループ
https://haskell.jp/
前スレ
関数型プログラミング言語Haskell Part31
https://mevius.5ch.net/test/read.cgi/tech/1506447188/
探検
関数型プログラミング言語Haskell Part32
レス数が1000を超えています。これ以上書き込みはできません。
2019/01/29(火) 09:05:47.90ID:gJP/u7IJ
925デフォルトの名無しさん
2020/01/02(木) 06:03:17.61ID:Ee9Lo0CG >>920
海外にはRemote OKなところあるよ
A List of companies that use Haskell
https://github.com/erkmos/haskell-companies
海外にはRemote OKなところあるよ
A List of companies that use Haskell
https://github.com/erkmos/haskell-companies
926デフォルトの名無しさん
2020/01/02(木) 07:13:34.68ID:RghxuQ5t OSS として良さげなツールを作って
Github Sponcers で支援を受ける
って方針を考えてる。どうかな
Github Sponcers で支援を受ける
って方針を考えてる。どうかな
927デフォルトの名無しさん
2020/01/02(木) 07:26:54.44ID:RghxuQ5t >>925
名古屋の時計販売店BIGMOONさん
https://www.e-bigmoon.com
https://haskell.e-bigmoon.com ってお役立ちHaskell 情報がありがたいサイトやん。
中の人、時計屋さんだったのか…
名古屋の時計販売店BIGMOONさん
https://www.e-bigmoon.com
https://haskell.e-bigmoon.com ってお役立ちHaskell 情報がありがたいサイトやん。
中の人、時計屋さんだったのか…
928デフォルトの名無しさん
2020/01/03(金) 13:05:21.13ID:EVicjzWY Haskellは妙にテクニカルな部分が多い気がする
2変数関数fと1変数関数gを合成するときに
g . f
ではだめで
g .: f where (.:) = (.) (.) (.)
って書くのとか良く思いつくなって感じ
2変数関数fと1変数関数gを合成するときに
g . f
ではだめで
g .: f where (.:) = (.) (.) (.)
って書くのとか良く思いつくなって感じ
929デフォルトの名無しさん
2020/01/03(金) 13:32:58.92ID:r+r/o5nr >>928
それは、ポイントフリーで書いているからテクニカルに見えるたけで、
引数を明記すればビギナーにも理解できる式になるぞ。
やってみれば分かる。
他のもそうだ。
例えばライブラリの作者がポイントフリーで書いているのは、
その方がベテランの作者やコミュニティーにとって読みやすいからだ。
彼らもビギナーを相手に解説する際は、
自分達には多少洗練されていない様に見えても、
ビギナーにとっての読みやすさを優先する。
日本語の文章における「漢字」と「かな」の関係のようなものだ。
それは、ポイントフリーで書いているからテクニカルに見えるたけで、
引数を明記すればビギナーにも理解できる式になるぞ。
やってみれば分かる。
他のもそうだ。
例えばライブラリの作者がポイントフリーで書いているのは、
その方がベテランの作者やコミュニティーにとって読みやすいからだ。
彼らもビギナーを相手に解説する際は、
自分達には多少洗練されていない様に見えても、
ビギナーにとっての読みやすさを優先する。
日本語の文章における「漢字」と「かな」の関係のようなものだ。
930デフォルトの名無しさん
2020/01/03(金) 13:49:51.60ID:EVicjzWY931デフォルトの名無しさん
2020/01/03(金) 13:53:52.89ID:biPe5Zol g . f がだめな理由は型なので
fun<A, B> g;
fun<C, fun<D, A> > f;
このような型を宣言できる任意の言語に同じ問題がある
また、他の言語で問題が解決されたらHaskellでも解決できる
fun<A, B> g;
fun<C, fun<D, A> > f;
このような型を宣言できる任意の言語に同じ問題がある
また、他の言語で問題が解決されたらHaskellでも解決できる
932デフォルトの名無しさん
2020/01/03(金) 14:08:31.95ID:EVicjzWY >>931
g :: b -> c
f :: a1 -> a2 -> b
に対して
(.) :: (b -> c) -> (a -> b) -> a -> c
の a を a1 -> a2 と解釈してくれれば話が速いんだけどね
a1 -> a2 -> b が実際には a1 -> (a2 -> b) で要は(->)が右結合だから駄目なのよね
g :: b -> c
f :: a1 -> a2 -> b
に対して
(.) :: (b -> c) -> (a -> b) -> a -> c
の a を a1 -> a2 と解釈してくれれば話が速いんだけどね
a1 -> a2 -> b が実際には a1 -> (a2 -> b) で要は(->)が右結合だから駄目なのよね
933デフォルトの名無しさん
2020/01/03(金) 15:06:47.95ID:r+r/o5nr >>930
すまん、そういう話ではない。
「妙にテクニカルな部分が多い」と言うのは、
君の感じたhaskellの不満点や欠点なんだと俺は捉えたが、違うか?
2変数関数と1変数関数とを合成する関数(.:)の「型がまず先」にあって、
(.:) :: (c -> d) -> (a -> b -> c) -> (a -> b -> -> d)
これを実装するのに
(.:) = (.) (.) (.)
と書く者もいて、君に妙にテクニカルだと感じさせるのかもしれないが、
(.:) g f = \a b -> g (f a b)
こう書けば、ビギナーにも容易に意味が読みとれる。
テクニカルでは全然ないだろう。
君が妙にテクニカルだと感じる大部分はhaskellの生来のものではなく、
単にビギナーに読めるようにも書けるコードをたまたまテクニカルに書いただけだ。
身の丈や好みに合った書き方をすれば不満に感じることはないだろう、と言いたかった。
すまん、そういう話ではない。
「妙にテクニカルな部分が多い」と言うのは、
君の感じたhaskellの不満点や欠点なんだと俺は捉えたが、違うか?
2変数関数と1変数関数とを合成する関数(.:)の「型がまず先」にあって、
(.:) :: (c -> d) -> (a -> b -> c) -> (a -> b -> -> d)
これを実装するのに
(.:) = (.) (.) (.)
と書く者もいて、君に妙にテクニカルだと感じさせるのかもしれないが、
(.:) g f = \a b -> g (f a b)
こう書けば、ビギナーにも容易に意味が読みとれる。
テクニカルでは全然ないだろう。
君が妙にテクニカルだと感じる大部分はhaskellの生来のものではなく、
単にビギナーに読めるようにも書けるコードをたまたまテクニカルに書いただけだ。
身の丈や好みに合った書き方をすれば不満に感じることはないだろう、と言いたかった。
934デフォルトの名無しさん
2020/01/03(金) 15:11:49.96ID:biPe5Zol >>932
随伴の事か
随伴の事か
935デフォルトの名無しさん
2020/01/03(金) 16:07:32.31ID:EVicjzWY >>933
Haskellに不満を持ってるとかではなくて単に凝った式に良く出会うというだけの話よ
そして凝った式を同値変形で分かりやすい式に変形するのが難しいことも多いと思う
個人的にはどう実装するかよりもどう同一視するかの方に興味がある
Haskellに不満を持ってるとかではなくて単に凝った式に良く出会うというだけの話よ
そして凝った式を同値変形で分かりやすい式に変形するのが難しいことも多いと思う
個人的にはどう実装するかよりもどう同一視するかの方に興味がある
936デフォルトの名無しさん
2020/01/03(金) 16:22:44.44ID:r+r/o5nr937デフォルトの名無しさん
2020/01/03(金) 16:34:21.29ID:EVicjzWY938デフォルトの名無しさん
2020/01/03(金) 18:40:52.72ID:UgBOwnvC 凝った式を書ける俺ってイケてる!っていう中二病の文化なんでしょ
939デフォルトの名無しさん
2020/01/03(金) 21:30:15.19ID:biPe5Zol また心理の話してる
メンタリストの文化なのかな
メンタリストの文化なのかな
940デフォルトの名無しさん
2020/01/03(金) 21:54:01.12ID:jtHjGBI5 リストの1要素を書き換える関数が用意されてないのは、それが非推奨だからなの?
配列みたいな気分では使えないのかな
配列みたいな気分では使えないのかな
941デフォルトの名無しさん
2020/01/03(金) 22:42:07.13ID:biPe5Zol IOが非推奨ではないから
まるでIOが非推奨であるかのような関数が用意されていない事に違和感はない
まるでIOが非推奨であるかのような関数が用意されていない事に違和感はない
942デフォルトの名無しさん
2020/01/07(火) 17:00:22.12ID:xmklvGxc 書き換え・・・?
Haskellに書き換えという概念がそもそもあったっけ?
Haskellに書き換えという概念がそもそもあったっけ?
943デフォルトの名無しさん
2020/01/07(火) 18:53:28.45ID:KmM+4rGq 書き換えができるデータ型は定義できる
それを定義したモジュールにはその概念がある
そのモジュールと概念がHaskellの中にあるのか外にあるのかは知らん
それを定義したモジュールにはその概念がある
そのモジュールと概念がHaskellの中にあるのか外にあるのかは知らん
944デフォルトの名無しさん
2020/01/19(日) 01:06:57.37ID:7oa0iQg0 すみません質問なんですが、
f [5,4,8,7] == [5,(5+4),(5+4+8),(5+4+8+7)]
みたいな関数を作りたくて
g :: [Int] -> ([Int],[Int])
g (ys) = (ys,[1..length(ys)])
h:: ([Int],[Int]) -> [Int]
h (xs, []) = []
h (xs,y:ys) = sum (take y xs) : h(xs,ys)
f = h.g
と書いたんですけど、これって関数合成以外の方法で書けますか?
出来れば一つの関数で定義したいんですが、行き詰ってます(汗
f [5,4,8,7] == [5,(5+4),(5+4+8),(5+4+8+7)]
みたいな関数を作りたくて
g :: [Int] -> ([Int],[Int])
g (ys) = (ys,[1..length(ys)])
h:: ([Int],[Int]) -> [Int]
h (xs, []) = []
h (xs,y:ys) = sum (take y xs) : h(xs,ys)
f = h.g
と書いたんですけど、これって関数合成以外の方法で書けますか?
出来れば一つの関数で定義したいんですが、行き詰ってます(汗
945デフォルトの名無しさん
2020/01/19(日) 01:34:42.77ID:lT5Fy0hi コレはダメ?
sumlist [] = []
sumlist (x:xs) = x:(map (+x) $ sumlist xs )
main = do
print $ sumlist [5,4,8,7]
print $ take 10 $ [1..]
-----
[5,9,17,24]
[1,2,3,4,5,6,7,8,9,10]
sumlist [] = []
sumlist (x:xs) = x:(map (+x) $ sumlist xs )
main = do
print $ sumlist [5,4,8,7]
print $ take 10 $ [1..]
-----
[5,9,17,24]
[1,2,3,4,5,6,7,8,9,10]
946デフォルトの名無しさん
2020/01/19(日) 01:37:22.32ID:lT5Fy0hi 間違った
sumlist [] =[]
sumlist (x:xs) = x:(map (+x) $ sumlist xs )
main = do
print $ sumlist [5,4,8,7]
print $ take 10 $ sumlist [1..]
----
[5,9,17,24]
[1,3,6,10,15,21,28,36,45,55
sumlist [] =[]
sumlist (x:xs) = x:(map (+x) $ sumlist xs )
main = do
print $ sumlist [5,4,8,7]
print $ take 10 $ sumlist [1..]
----
[5,9,17,24]
[1,3,6,10,15,21,28,36,45,55
947デフォルトの名無しさん
2020/01/19(日) 04:12:57.56ID:E4qdczJe import Data.List (inits)
948デフォルトの名無しさん
2020/01/19(日) 08:14:33.78ID:to1IOlmG Data.List.scanl1 (+) [5, 4, 8, 7] == [5, 9, 17, 24]
949デフォルトの名無しさん
2020/01/19(日) 09:55:55.71ID:JUDuINU+ やるじゃん
950デフォルトの名無しさん
2020/01/19(日) 10:18:10.08ID:6mEdluRX >>947-948
おお、そんなのがあるのか。、
おお、そんなのがあるのか。、
951デフォルトの名無しさん
2020/01/19(日) 18:10:44.86ID:7oa0iQg0 944です。返信が遅れてしまってすみません。
>>945.947-948 さん早速の返答ありがとうございました。
>>945.947-948 さん早速の返答ありがとうございました。
952デフォルトの名無しさん
2020/01/19(日) 22:57:51.59ID:JsYzYAKP 4.7. GHCi commands
https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/ghci.html#ghci-commands
Prelude>:?
Prelude>:browse Data.List
scanl :: (b -> a -> b) -> b -> [a] -> [b]
GHC.List.scanl' :: (b -> a -> b) -> b -> [a] -> [b]
scanl1 :: (a -> a -> a) -> [a] -> [a]
scanr :: (a -> b -> b) -> b -> [a] -> [b]
scanr1 :: (a -> a -> a) -> [a] -> [a]
https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/ghci.html#ghci-commands
Prelude>:?
Prelude>:browse Data.List
scanl :: (b -> a -> b) -> b -> [a] -> [b]
GHC.List.scanl' :: (b -> a -> b) -> b -> [a] -> [b]
scanl1 :: (a -> a -> a) -> [a] -> [a]
scanr :: (a -> b -> b) -> b -> [a] -> [b]
scanr1 :: (a -> a -> a) -> [a] -> [a]
953デフォルトの名無しさん
2020/01/20(月) 00:41:52.39ID:TXkt06UM Haskellの事を知れば知る程(圏論含む)、数学ってプログラミング言語だなと思う。
コンピュータが登場する遥か以前からあるプログラミング言語。
そうなると数学者はある種のプログラマーと言える。
ただ、数学はコンピュータに計算させるのではなく、自分で計算するから再帰みたいなループ構造は面倒臭い。
そこでループ構造を排除するアルゴリズム(法則や公式)を考え出して来たと考えられる節があって…。
そう考えると、コンピュータの登場で人間の効率的なアルゴリズムを考える能力が退化したかも知れん。
とか、考えてみたり。
コンピュータが登場する遥か以前からあるプログラミング言語。
そうなると数学者はある種のプログラマーと言える。
ただ、数学はコンピュータに計算させるのではなく、自分で計算するから再帰みたいなループ構造は面倒臭い。
そこでループ構造を排除するアルゴリズム(法則や公式)を考え出して来たと考えられる節があって…。
そう考えると、コンピュータの登場で人間の効率的なアルゴリズムを考える能力が退化したかも知れん。
とか、考えてみたり。
954デフォルトの名無しさん
2020/01/20(月) 13:04:34.99ID:0GX6odYx ΣとかΠは実質ループだが数学ではループしないで計算出来る
955デフォルトの名無しさん
2020/01/20(月) 18:51:38.56ID:9eVX0YAp 無理数や積分はほとんど計算してない
C++のtemplate実体化してないメタプログラミングと同じ
C++のtemplate実体化してないメタプログラミングと同じ
956デフォルトの名無しさん
2020/01/20(月) 19:20:02.11ID:h2nRkU1r カリーハワード対応しらんのか?
957デフォルトの名無しさん
2020/01/20(月) 19:35:03.18ID:LcZgWv4y 普段のプログラミングでカリーハワード対応が出てくる場面ってどういうとき?
型レベルで凝ったことをするとプログラムを証明として書くことがあると思うんだけど、
その証明として書いたプログラムは実行するとどうなるの?
この辺少し勉強したいんだが書いたことも見たこともなくてさっぱり想像つかない
型レベルで凝ったことをするとプログラムを証明として書くことがあると思うんだけど、
その証明として書いたプログラムは実行するとどうなるの?
この辺少し勉強したいんだが書いたことも見たこともなくてさっぱり想像つかない
958デフォルトの名無しさん
2020/01/20(月) 20:28:12.96ID:9eVX0YAp C++のデザインパターンとHaskellの代数的データ型の同型対応
959デフォルトの名無しさん
2020/01/21(火) 08:51:19.90ID:lxIBo8y+ 数式の末尾再帰なfib関数を見た時、手続き型言語で書く副作用バリバリのfib関数との共通点が見えた。
(過去どこかに本の中身の画像落としたんだが、まだあるかは知らん)
そこで一つの仮説が浮かんだ。
入出力を伴わない関数であれば、副作用のある関数でも正しく動く関数は数式と相互に変換出来るのでは?
(入出力も含めるなら、相互にHaskellと変換出来る?逆に、バグがあるなら相互変換は無理?)
数学専門じゃないから、証明とか出来ないけども。
(過去どこかに本の中身の画像落としたんだが、まだあるかは知らん)
そこで一つの仮説が浮かんだ。
入出力を伴わない関数であれば、副作用のある関数でも正しく動く関数は数式と相互に変換出来るのでは?
(入出力も含めるなら、相互にHaskellと変換出来る?逆に、バグがあるなら相互変換は無理?)
数学専門じゃないから、証明とか出来ないけども。
960デフォルトの名無しさん
2020/01/21(火) 09:00:45.96ID:Hkcle0K4 人に伝える努力をして欲しい
ポエムいらない
ポエムいらない
961デフォルトの名無しさん
2020/01/21(火) 11:28:06.62ID:d/fzPC0C 何か知りたいことがあるのか?
需要がないところを努力するのは意味不明だし、努力して欲しいと言うのも意味不明
需要がないところを努力するのは意味不明だし、努力して欲しいと言うのも意味不明
962デフォルトの名無しさん
2020/01/21(火) 11:52:36.21ID:m86EWX9f 数学だけだなく国語力もないのな
努力といわれてバカにされてることに気付かない
努力といわれてバカにされてることに気付かない
963デフォルトの名無しさん
2020/01/21(火) 13:47:51.38ID:L/RpGA77 ST で検索
964デフォルトの名無しさん
2020/01/21(火) 17:55:02.99ID:sFJRAv+Q 表示的意味論の話かな
965デフォルトの名無しさん
2020/02/04(火) 12:34:05.49ID:Np8xXmTj 数学、糞苦手な俺
プログラムで表現出来る数学分野ってごく一部だと思ってたけどそうでもないんか?
概念操作のプロセスと計算とじゃ大きな開きがあると思うんだが
それを鬼計算量で埋められるんかね
プログラムで表現出来る数学分野ってごく一部だと思ってたけどそうでもないんか?
概念操作のプロセスと計算とじゃ大きな開きがあると思うんだが
それを鬼計算量で埋められるんかね
966デフォルトの名無しさん
2020/02/04(火) 13:19:01.06ID:jKHkWlP0 オペレーションズリサーチって言った分野は数学必須だろうね
ベイズ統計とか当たり前のように使われているし
カルマンフィルタもそう
確率統計/多変量解析はコンピュータやる人間ならそれなりに必須だと思うし
現実世界に役立っている
ここでよく題材として挙がるのは圏論だけど これは俺も必要性はあんま感じない
ベイズ統計とか当たり前のように使われているし
カルマンフィルタもそう
確率統計/多変量解析はコンピュータやる人間ならそれなりに必須だと思うし
現実世界に役立っている
ここでよく題材として挙がるのは圏論だけど これは俺も必要性はあんま感じない
967デフォルトの名無しさん
2020/02/04(火) 18:06:11.81ID:6o+cJy8H >>959
手続き型言語でのwhileなどの繰り返しの一回に対し、そこで用いられている変数の値の変化を、末尾再帰関数の引数の変化に置き換えれば、きれいな1重whileは、きれいな末尾再帰関数に置き換わると主張しているんだよね。
手続き型言語でのwhileなどの繰り返しの一回に対し、そこで用いられている変数の値の変化を、末尾再帰関数の引数の変化に置き換えれば、きれいな1重whileは、きれいな末尾再帰関数に置き換わると主張しているんだよね。
968デフォルトの名無しさん
2020/02/04(火) 20:02:08.12ID:+caUnTFf フリーハンドで描いた線と定規で描いた線を比較するようなもの
実質的な意味は同じ
強いて言うならマナーの良さが違うだけ
実質的な意味は同じ
強いて言うならマナーの良さが違うだけ
969デフォルトの名無しさん
2020/02/04(火) 22:57:24.24ID:LyYVEub6 静的単一代入形式に変換して、
φ関数の出てくるところを別関数の呼び出しに変換すれば、
副作用のない状態には持ち込めるかな
φ関数の出てくるところを別関数の呼び出しに変換すれば、
副作用のない状態には持ち込めるかな
970デフォルトの名無しさん
2020/02/05(水) 18:14:57.84ID:fFjiekZv >>966
> ここでよく題材として挙がるのは圏論だけど これは俺も必要性はあんま感じない
プログラムを書く立場ならば圏論なんて知る必要は全くないよ
そもそも仮に圏論を知らないと良いプログラムが書けないプログラミング言語があったとしたら
そんなプログラミング言語は使い物にならない
Haskellerなど一部のプログラマの間での昨今の圏論ブームは少なくとも私には単なる一種のファッションの流行にしか見えないし余り意義を認めない
他人の趣味にケチをつける気はないので、やりたければどうぞ御自由に、としか言いようがない
圏論を知る必要があるとすればプログラムを書く人間ではなくて新しいプログラミング言語の設計をする人間(の一部)だ
ただ一つだけ圏論の勉強を擁護しておくと、規模の大きなソフトウェアをメンテナンスしやすい見通しのよい構造を持つように設計する上では
抽象化と一般化という思考能力、ある事柄や概念と他のどの事柄とが対応するのかを適切に理解し判断する能力は非常に重要だ
そして数学において圏論の最も重要な効用は正にそういう一般化や抽象化といった思考法を書き表すための言葉としてだ
数学である分野での成果(例えば幾つかの定理や定義)を全く別の分野へと転用するといった数学の発展させ方が可能になったのは
正に20世紀中盤に圏論という言葉が生まれたからこそのお蔭だ
だからプログラマが圏論そのものを勉強する必要性は乏しいと思うが、圏論を勉強して理解できる能力と大規模のソフトウェアを良い構造で設計できる能力とは
間違いなく共通した部分があり、正の相関があるのは確実だと個人的には考えている
そういう意味では圏論の勉強は大規模ソフトウェアの設計に向く設計者か否かのフィルタリングに使えるかも知れないね
> ここでよく題材として挙がるのは圏論だけど これは俺も必要性はあんま感じない
プログラムを書く立場ならば圏論なんて知る必要は全くないよ
そもそも仮に圏論を知らないと良いプログラムが書けないプログラミング言語があったとしたら
そんなプログラミング言語は使い物にならない
Haskellerなど一部のプログラマの間での昨今の圏論ブームは少なくとも私には単なる一種のファッションの流行にしか見えないし余り意義を認めない
他人の趣味にケチをつける気はないので、やりたければどうぞ御自由に、としか言いようがない
圏論を知る必要があるとすればプログラムを書く人間ではなくて新しいプログラミング言語の設計をする人間(の一部)だ
ただ一つだけ圏論の勉強を擁護しておくと、規模の大きなソフトウェアをメンテナンスしやすい見通しのよい構造を持つように設計する上では
抽象化と一般化という思考能力、ある事柄や概念と他のどの事柄とが対応するのかを適切に理解し判断する能力は非常に重要だ
そして数学において圏論の最も重要な効用は正にそういう一般化や抽象化といった思考法を書き表すための言葉としてだ
数学である分野での成果(例えば幾つかの定理や定義)を全く別の分野へと転用するといった数学の発展させ方が可能になったのは
正に20世紀中盤に圏論という言葉が生まれたからこそのお蔭だ
だからプログラマが圏論そのものを勉強する必要性は乏しいと思うが、圏論を勉強して理解できる能力と大規模のソフトウェアを良い構造で設計できる能力とは
間違いなく共通した部分があり、正の相関があるのは確実だと個人的には考えている
そういう意味では圏論の勉強は大規模ソフトウェアの設計に向く設計者か否かのフィルタリングに使えるかも知れないね
971デフォルトの名無しさん
2020/02/05(水) 18:19:38.12ID:hXjs1EZI >>970
>そもそも仮に圏論を知らないと良いプログラムが書けないプログラミング言語があったとしたら
CPL(Categorical Programming Language)
まずは Wikipedia を参照汁
>そもそも仮に圏論を知らないと良いプログラムが書けないプログラミング言語があったとしたら
CPL(Categorical Programming Language)
まずは Wikipedia を参照汁
972デフォルトの名無しさん
2020/02/05(水) 19:04:41.25ID:2rKdW1Ec 圏論って知らずに使ってるんやろ
それでええやん
それでええやん
974デフォルトの名無しさん
2020/02/05(水) 21:17:36.43ID:2r8PGoiv アジア文化圏
975デフォルトの名無しさん
2020/02/05(水) 21:42:26.50ID:/Jhw33Vx 一つ言えるのは圏論ってなんか語りたくなっちゃうものなんだということ。
プログラムにおいては全く意味はない。
計算機の動きを抽象化する道具としてそんな筋のいいものではない。
数論でも勉強するなら意味はあるだろうが。
プログラムにおいては全く意味はない。
計算機の動きを抽象化する道具としてそんな筋のいいものではない。
数論でも勉強するなら意味はあるだろうが。
976デフォルトの名無しさん
2020/02/05(水) 23:38:47.13ID:m+XqauaX 圏論はどちらかといえばポイントフリー
λとか∀とか∃とかパターンマッチとかで変数を束縛する言語
に違和感があれば圏論を語りたくなる
λとか∀とか∃とかパターンマッチとかで変数を束縛する言語
に違和感があれば圏論を語りたくなる
977デフォルトの名無しさん
2020/02/06(木) 01:01:03.47ID:OGs/tKtL >>970
大規模ソフトウェアのメンテにおいて、
圏論を知らないとこのように失敗するが、
知っているとこのように成功する、
という具体例を挙げられますか?
または、具体例を挙げて説明している本やブログ、
カンファレンスなどを紹介できますか?
大規模ソフトウェアのメンテにおいて、
圏論を知らないとこのように失敗するが、
知っているとこのように成功する、
という具体例を挙げられますか?
または、具体例を挙げて説明している本やブログ、
カンファレンスなどを紹介できますか?
978デフォルトの名無しさん
2020/02/06(木) 04:11:03.04ID:7nZd7Xb0 >>977
圏論は、いわゆる「銀の弾丸」ではない
圏論は、いわゆる「銀の弾丸」ではない
979デフォルトの名無しさん
2020/02/06(木) 07:32:25.39ID:OGs/tKtL980デフォルトの名無しさん
2020/02/06(木) 08:35:23.71ID:7WdfZf7H お前が圏論理解してかつ大規模ソフトウェア開発で失敗したら反証になるじゃん
がんばれ
がんばれ
981デフォルトの名無しさん
2020/02/06(木) 11:02:50.38ID:OGs/tKtL982デフォルトの名無しさん
2020/02/06(木) 11:23:47.14ID:gLliKWEs 圏論だのモナドだの相変わらずだなあ
もっと楽しい話をしようぜ
コモナドとかProfunctor Opticsとかサ
もっと楽しい話をしようぜ
コモナドとかProfunctor Opticsとかサ
983デフォルトの名無しさん
2020/02/06(木) 11:47:37.47ID:sigCaOr9 横からだが
個人的に考えてる、と断ってるじゃん
単なる個人の感想
お前はそこに証拠を求めてる
何がしたいの?
個人的に考えてる、と断ってるじゃん
単なる個人の感想
お前はそこに証拠を求めてる
何がしたいの?
984デフォルトの名無しさん
2020/02/06(木) 12:12:18.67ID:OGs/tKtL985デフォルトの名無しさん
2020/02/06(木) 13:45:00.26ID:sNihMBVC986デフォルトの名無しさん
2020/02/06(木) 22:21:29.85ID:AbsWoeSu >>971
そりゃ学位論文レベルの言語ならあるさ
そもそもそのCPLとCSL(Categorical Specification Language)とを定義した萩野達也氏のエジンバラ大学に提出した件の学位論文は私も読んだ
そして理論的には大変に興味深い研究だと思ったよ
だが私が前の投稿で書いた「使い物にならない」の定義、つまり肯定形の「使い物になる」はソフトウェア工学的な意味で実用になるという意味だ
つまりは「多数のプログラマによって実用プロジェクトで使える言語」という意味だ、より具体的な基準が必要だと言うのならば
「最低でも100万行のソフトウェア開発をそのプログラミング言語で行える」という意味だ
君が私の主張である「使い物にならない」を否定したければ、100万行とは言わぬまでもせめて10万行のソフトウェアを
複数人で開発するのにCPLだけでやってみてくれ、もちろん必要なCPLのライブラリ類は自分達で開発してね
そりゃ学位論文レベルの言語ならあるさ
そもそもそのCPLとCSL(Categorical Specification Language)とを定義した萩野達也氏のエジンバラ大学に提出した件の学位論文は私も読んだ
そして理論的には大変に興味深い研究だと思ったよ
だが私が前の投稿で書いた「使い物にならない」の定義、つまり肯定形の「使い物になる」はソフトウェア工学的な意味で実用になるという意味だ
つまりは「多数のプログラマによって実用プロジェクトで使える言語」という意味だ、より具体的な基準が必要だと言うのならば
「最低でも100万行のソフトウェア開発をそのプログラミング言語で行える」という意味だ
君が私の主張である「使い物にならない」を否定したければ、100万行とは言わぬまでもせめて10万行のソフトウェアを
複数人で開発するのにCPLだけでやってみてくれ、もちろん必要なCPLのライブラリ類は自分達で開発してね
987デフォルトの名無しさん
2020/02/06(木) 22:27:12.19ID:sUAmWprm 簡単な判別法がある
デバイスドライバーが書けない言語は使い物にならない
デバイスドライバーが書けない言語は使い物にならない
988デフォルトの名無しさん
2020/02/06(木) 22:27:40.06ID:AbsWoeSu >>977
だから能力として近いと言っているだけだよ
圏論という理論を勉強して理解できる能力と、大規模ソフトウェアを良い構造で設計する能力とはね
私がそう考えている理由は、どちらも抽象化や一般化といった思考の能力が重要だからだ
圏論を知らなければ良い設計が出来ないと言っている訳では決してない
970の最後の3行(空行はカウントしない)の意味するところは
勉強すれば圏論を理解できるようになる人は(抽象化や一般化の思考能力が高いので圏論を勉強していなくても)良い設計ができるだろう、という予想だ
だから能力として近いと言っているだけだよ
圏論という理論を勉強して理解できる能力と、大規模ソフトウェアを良い構造で設計する能力とはね
私がそう考えている理由は、どちらも抽象化や一般化といった思考の能力が重要だからだ
圏論を知らなければ良い設計が出来ないと言っている訳では決してない
970の最後の3行(空行はカウントしない)の意味するところは
勉強すれば圏論を理解できるようになる人は(抽象化や一般化の思考能力が高いので圏論を勉強していなくても)良い設計ができるだろう、という予想だ
989デフォルトの名無しさん
2020/02/06(木) 23:07:57.45ID:AbsWoeSu >>987
> デバイスドライバーが書けない言語は使い物にならない
それは又一つ別の定義だね
私個人としてはアプリケーションしか書けないプログラミング言語でも「使い物になる」ことを認めるけれども
そういう定義をするソフトウェア技術者の立場はそれとして否定する気はない
> デバイスドライバーが書けない言語は使い物にならない
それは又一つ別の定義だね
私個人としてはアプリケーションしか書けないプログラミング言語でも「使い物になる」ことを認めるけれども
そういう定義をするソフトウェア技術者の立場はそれとして否定する気はない
990デフォルトの名無しさん
2020/02/06(木) 23:44:41.47ID:r1DVX1M4 人間の社会の役に立つ勢力の定義が存在するのか?
まずは存在を疑うのが無駄な努力をしない秘訣
まずは存在を疑うのが無駄な努力をしない秘訣
991デフォルトの名無しさん
2020/02/07(金) 00:02:21.67ID:sQmwkFjl 圏論が実用言語に向いてないのと同様に、989は5chに向いてない
992デフォルトの名無しさん
2020/02/07(金) 00:15:35.18ID:MJwijXd8 そんなことないでしょ
993デフォルトの名無しさん
2020/02/07(金) 01:41:24.07ID:Fnc0TnWe オオオオチンポ
994デフォルトの名無しさん
2020/02/07(金) 08:09:04.68ID:ruz5n033 javascriptでデバイスドライバは書けないわな
圏論とやらが必要な分野で使えばいいだけの話
圏論とやらが必要な分野で使えばいいだけの話
995デフォルトの名無しさん
2020/02/07(金) 12:13:54.81ID:PWhN+bN7996デフォルトの名無しさん
2020/02/07(金) 13:01:46.27ID:3L88mYwi まだ定義してないのにフライングできる奴は
定義が存在しないパターンを知ってるからそれができる
定義が存在しないパターンを知ってるからそれができる
997デフォルトの名無しさん
2020/02/08(土) 16:14:00.43ID:pTX+YoHa HListのインサートとかソートとかのやり方の実装が乗ってるホームページ教えて
作ろうとしても難しくてできないから
作ろうとしても難しくてできないから
998デフォルトの名無しさん
2020/02/10(月) 18:21:44.17ID:gQeDR86I999デフォルトの名無しさん
2020/02/10(月) 19:36:01.30ID:gQeDR86I >>997
HList パッケージのソースをみるしかないかも
https://hackage.haskell.org/package/HList-0.5.0.0/docs/src/Data-HList-HSort.html
HList パッケージのソースをみるしかないかも
https://hackage.haskell.org/package/HList-0.5.0.0/docs/src/Data-HList-HSort.html
1000デフォルトの名無しさん
2020/02/10(月) 20:28:59.42ID:Q/biUbUo >>999
あざーす
あざーす
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 377日 11時間 23分 12秒
新しいスレッドを立ててください。
life time: 377日 11時間 23分 12秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- 【ローソン】ロゴの「L」で誤解生んだコーヒーカップ、デザイン変更へ 在庫使い切る3か月後にリニューアル [ぐれ★]
- 【高市早苗】バス会社、中国からのキャンセルで12月で2000万円~3000万円の損失へ [115996789]
- 米シンクタンク「アメリカは台湾問題で"あいまい戦略"を取っている。高市早苗はこの方針から逸脱している」 [603416639]
- かしこいワンコっていうVtuberの子知ってる?
- 岡田克也「軽々しく存立危機事態とか言うべきじゃない」高市早苗「台湾で武力攻撃が発生したらどう考えても日本の存立危機事態」 [931948549]
- 死にてえ奴よく聞け、5000円握りしめてテントと寝袋とランタン買って部屋で広げて寝てみろ [419111196]
- ジャーナリストがテレビで解説「台湾問題は高市総理から言ったのではなく、立憲民主が日本の対応可能能力を暴こうとしたから」 [359572271]
