[過去ログ]
関数型プログラミング言語Haskell Part32 (1002レス)
関数型プログラミング言語Haskell Part32 http://mevius.5ch.net/test/read.cgi/tech/1548720347/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
1: デフォルトの名無しさん [ageteoff] 2019/01/29(火) 09:05:47.90 ID:gJP/u7IJ 関数型プログラミング言語 Haskell について語るスレです。 haskell.org (公式サイト) https://www.haskell.org/ 日本Haskellユーザーグループ https://haskell.jp/ 前スレ 関数型プログラミング言語Haskell Part31 https://mevius.5ch.net/test/read.cgi/tech/1506447188/ http://mevius.5ch.net/test/read.cgi/tech/1548720347/1
903: デフォルトの名無しさん [sage] 2019/12/30(月) 07:02:47.72 ID:gVSpb87m そんなのエディタにやらせればいい http://mevius.5ch.net/test/read.cgi/tech/1548720347/903
904: デフォルトの名無しさん [sage] 2019/12/30(月) 09:12:01.80 ID:zGgGf8ov 要件定義が整っている関数の書き下ろしと プログラムで記述されたコードの読み下しは難度が異なる Haskellのコードは情報密度が高い事と抽象度の高さが強烈に効く http://mevius.5ch.net/test/read.cgi/tech/1548720347/904
905: デフォルトの名無しさん [sage] 2019/12/30(月) 09:50:40.36 ID:aMPpMkgz Hakellだしコード読めば分かるだろ(コメントなし) ↓数カ月後 俺の書いたコードなのに意味が分からない・・・ http://mevius.5ch.net/test/read.cgi/tech/1548720347/905
906: デフォルトの名無しさん [sage] 2019/12/30(月) 10:41:43.52 ID:0IC+e4Ro 工学と名のついた無根拠な宗教が蔓延ってる言語よりは科学してるだけマシ http://mevius.5ch.net/test/read.cgi/tech/1548720347/906
907: デフォルトの名無しさん [] 2019/12/30(月) 12:14:13.13 ID:WAqdspci >>905 次の日とか その日のうちでも 意味が分からなくなることがある http://mevius.5ch.net/test/read.cgi/tech/1548720347/907
908: デフォルトの名無しさん [sage] 2019/12/30(月) 13:26:36.21 ID:khitn85K 赤黒木は左右対称のコードを2回書かされるから書きたくない コードを読まなくても分かる 読む前から分かることをどれだけ知っているかが重要 読み始めてから努力するのは遅い http://mevius.5ch.net/test/read.cgi/tech/1548720347/908
909: デフォルトの名無しさん [sage] 2019/12/30(月) 16:27:15.32 ID:LA/Q6l88 >>899 >その後facebookでHaskellを採用していない https://engineering.fb.com/security/simon-marlow/ http://mevius.5ch.net/test/read.cgi/tech/1548720347/909
910: デフォルトの名無しさん [sage] 2019/12/30(月) 20:14:21.30 ID:fOmQS2Mv https://stackshare.io/haskell http://mevius.5ch.net/test/read.cgi/tech/1548720347/910
911: デフォルトの名無しさん [] 2019/12/30(月) 21:52:49.75 ID:rDj24KcK >>909 よく読め、受賞は2019年だが 受賞内容は2009年の功績の話だぞ そこで語られてる内容も2014年のGHC魔改造の件の話だし 5年も経過してるのに未だにその話しか出てこないって事はそういう事よ http://mevius.5ch.net/test/read.cgi/tech/1548720347/911
912: デフォルトの名無しさん [sage] 2019/12/30(月) 22:25:35.97 ID:khitn85K よく読んだら分かること 読まなくても分かること 普遍的な方を重視するのがいいと思うよ http://mevius.5ch.net/test/read.cgi/tech/1548720347/912
913: デフォルトの名無しさん [sage] 2019/12/30(月) 23:48:10.12 ID:LA/Q6l88 >>911 枯れてきてるんじゃない? https://github.com/facebook/Haxl http://mevius.5ch.net/test/read.cgi/tech/1548720347/913
914: デフォルトの名無しさん [sage] 2019/12/31(火) 00:12:07.17 ID:Lj+eqMzp ちなみにFacebook自身は2015年の投稿で2年かけて Sigmaの主要技術をHaskellに移行したといっている https://engineering.fb.com/security/fighting-spam-with-haskell/ スライドもある http://multicore.doc.ic.ac.uk/iPr0gram/slides/2015-2016/Marlow-fighting-spam.pdf そしてSigma の Software Engineering Manager の公募を最近LinkedInでかけていた 職位はManagerだし応募要件にはHaskellスキル必須とは記載していないようなので Haskellが実用的に使われているっていう傍証にはならないけどプロジェクトは生きてる様子 またその後別の各技術にとってかわられたという情報もなさげ http://mevius.5ch.net/test/read.cgi/tech/1548720347/914
915: デフォルトの名無しさん [sage] 2019/12/31(火) 01:50:17.69 ID:Lj+eqMzp 紹介済み? https://serokell.io/blog/haskell-highlights-2019? http://mevius.5ch.net/test/read.cgi/tech/1548720347/915
916: デフォルトの名無しさん [sage] 2019/12/31(火) 02:29:04.76 ID:MpeDYErb ナイス http://mevius.5ch.net/test/read.cgi/tech/1548720347/916
917: デフォルトの名無しさん [sage] 2019/12/31(火) 23:30:17.57 ID:a+xjNkxx >>898 haskellやってる奴が評価されるのはその手の最適化できることを見込まれてるからだぞ。 http://mevius.5ch.net/test/read.cgi/tech/1548720347/917
918: デフォルトの名無しさん [sage] 2020/01/01(水) 04:13:12.99 ID:IaAF7ILo Haskellを始めたばかりの者です do構文は多用しても良いのですか? 手続き型を書いているような気分になります 関数型言語は初めてなので不安です http://mevius.5ch.net/test/read.cgi/tech/1548720347/918
919: デフォルトの名無しさん [sage] 2020/01/01(水) 09:08:22.50 ID:msO/HyKq >>918 いいよ。モナドは手続きを実現するのに役立つ抽象だよ。 でもアプリカティブで用が足りるならアプリカティブを使うべき。 IO モナドを do で合成するシーンが多いならリファクタリングの余地があるかも。 Control.Monad や Control.Applicative のユーティリティが利用できないか検討してみて http://mevius.5ch.net/test/read.cgi/tech/1548720347/919
920: デフォルトの名無しさん [sage] 2020/01/01(水) 09:16:52.80 ID:msO/HyKq =>= 2020年の抱負 =>= ・珠玉本を再開したい。少なくとも二度目の四天王登場回までは行きたい ・Haskell でごはん食べる http://mevius.5ch.net/test/read.cgi/tech/1548720347/920
921: デフォルトの名無しさん [sage] 2020/01/01(水) 10:49:49.64 ID:1YmeR5a8 豊富なんてかいちゃって意識高い系かよwwwwww http://mevius.5ch.net/test/read.cgi/tech/1548720347/921
922: デフォルトの名無しさん [sage] 2020/01/01(水) 11:24:31.90 ID:msO/HyKq >>921 いいでしょw 新年なんだし http://mevius.5ch.net/test/read.cgi/tech/1548720347/922
923: 【最底辺】 【25円】 [] 2020/01/01(水) 13:25:14.55 ID:tqBP4ADq Haskellの未来 http://mevius.5ch.net/test/read.cgi/tech/1548720347/923
924: デフォルトの名無しさん [sage] 2020/01/01(水) 16:23:17.36 ID:0CkTsEaj 一般化が未来だと仮定すると未来は... http://mevius.5ch.net/test/read.cgi/tech/1548720347/924
925: デフォルトの名無しさん [sage] 2020/01/02(木) 06:03:17.61 ID:Ee9Lo0CG >>920 海外にはRemote OKなところあるよ A List of companies that use Haskell https://github.com/erkmos/haskell-companies http://mevius.5ch.net/test/read.cgi/tech/1548720347/925
926: デフォルトの名無しさん [sage] 2020/01/02(木) 07:13:34.68 ID:RghxuQ5t OSS として良さげなツールを作って Github Sponcers で支援を受ける って方針を考えてる。どうかな http://mevius.5ch.net/test/read.cgi/tech/1548720347/926
927: デフォルトの名無しさん [sage] 2020/01/02(木) 07:26:54.44 ID:RghxuQ5t >>925 名古屋の時計販売店BIGMOONさん https://www.e-bigmoon.com https://haskell.e-bigmoon.com ってお役立ちHaskell 情報がありがたいサイトやん。 中の人、時計屋さんだったのか… http://mevius.5ch.net/test/read.cgi/tech/1548720347/927
928: デフォルトの名無しさん [sage] 2020/01/03(金) 13:05:21.13 ID:EVicjzWY Haskellは妙にテクニカルな部分が多い気がする 2変数関数fと1変数関数gを合成するときに g . f ではだめで g .: f where (.:) = (.) (.) (.) って書くのとか良く思いつくなって感じ http://mevius.5ch.net/test/read.cgi/tech/1548720347/928
929: デフォルトの名無しさん [sage] 2020/01/03(金) 13:32:58.92 ID:r+r/o5nr >>928 それは、ポイントフリーで書いているからテクニカルに見えるたけで、 引数を明記すればビギナーにも理解できる式になるぞ。 やってみれば分かる。 他のもそうだ。 例えばライブラリの作者がポイントフリーで書いているのは、 その方がベテランの作者やコミュニティーにとって読みやすいからだ。 彼らもビギナーを相手に解説する際は、 自分達には多少洗練されていない様に見えても、 ビギナーにとっての読みやすさを優先する。 日本語の文章における「漢字」と「かな」の関係のようなものだ。 http://mevius.5ch.net/test/read.cgi/tech/1548720347/929
930: デフォルトの名無しさん [sage] 2020/01/03(金) 13:49:51.60 ID:EVicjzWY >>929 (((.) (.) (.)) g f) a b をパパっと g (f a b) に式変形できる自信が無い http://mevius.5ch.net/test/read.cgi/tech/1548720347/930
931: デフォルトの名無しさん [sage] 2020/01/03(金) 13:53:52.89 ID:biPe5Zol g . f がだめな理由は型なので fun<A, B> g; fun<C, fun<D, A> > f; このような型を宣言できる任意の言語に同じ問題がある また、他の言語で問題が解決されたらHaskellでも解決できる http://mevius.5ch.net/test/read.cgi/tech/1548720347/931
932: デフォルトの名無しさん [sage] 2020/01/03(金) 14:08:31.95 ID:EVicjzWY >>931 g :: b -> c f :: a1 -> a2 -> b に対して (.) :: (b -> c) -> (a -> b) -> a -> c の a を a1 -> a2 と解釈してくれれば話が速いんだけどね a1 -> a2 -> b が実際には a1 -> (a2 -> b) で要は(->)が右結合だから駄目なのよね http://mevius.5ch.net/test/read.cgi/tech/1548720347/932
933: デフォルトの名無しさん [sage] 2020/01/03(金) 15:06:47.95 ID:r+r/o5nr >>930 すまん、そういう話ではない。 「妙にテクニカルな部分が多い」と言うのは、 君の感じたhaskellの不満点や欠点なんだと俺は捉えたが、違うか? 2変数関数と1変数関数とを合成する関数(.:)の「型がまず先」にあって、 (.:) :: (c -> d) -> (a -> b -> c) -> (a -> b -> -> d) これを実装するのに (.:) = (.) (.) (.) と書く者もいて、君に妙にテクニカルだと感じさせるのかもしれないが、 (.:) g f = \a b -> g (f a b) こう書けば、ビギナーにも容易に意味が読みとれる。 テクニカルでは全然ないだろう。 君が妙にテクニカルだと感じる大部分はhaskellの生来のものではなく、 単にビギナーに読めるようにも書けるコードをたまたまテクニカルに書いただけだ。 身の丈や好みに合った書き方をすれば不満に感じることはないだろう、と言いたかった。 http://mevius.5ch.net/test/read.cgi/tech/1548720347/933
934: デフォルトの名無しさん [sage] 2020/01/03(金) 15:11:49.96 ID:biPe5Zol >>932 随伴の事か http://mevius.5ch.net/test/read.cgi/tech/1548720347/934
935: デフォルトの名無しさん [sage] 2020/01/03(金) 16:07:32.31 ID:EVicjzWY >>933 Haskellに不満を持ってるとかではなくて単に凝った式に良く出会うというだけの話よ そして凝った式を同値変形で分かりやすい式に変形するのが難しいことも多いと思う 個人的にはどう実装するかよりもどう同一視するかの方に興味がある http://mevius.5ch.net/test/read.cgi/tech/1548720347/935
936: デフォルトの名無しさん [sage] 2020/01/03(金) 16:22:44.44 ID:r+r/o5nr >>935 そうだったのか、俺の完全な勘違いだった。 長文でレスの流れぶった切ってすまなかった。 http://mevius.5ch.net/test/read.cgi/tech/1548720347/936
937: デフォルトの名無しさん [sage] 2020/01/03(金) 16:34:21.29 ID:EVicjzWY >>936 謝ることは無いよ 自分も言葉足らずだったし 興味深い話が聞けて良かった http://mevius.5ch.net/test/read.cgi/tech/1548720347/937
938: デフォルトの名無しさん [sage] 2020/01/03(金) 18:40:52.72 ID:UgBOwnvC 凝った式を書ける俺ってイケてる!っていう中二病の文化なんでしょ http://mevius.5ch.net/test/read.cgi/tech/1548720347/938
939: デフォルトの名無しさん [sage] 2020/01/03(金) 21:30:15.19 ID:biPe5Zol また心理の話してる メンタリストの文化なのかな http://mevius.5ch.net/test/read.cgi/tech/1548720347/939
940: デフォルトの名無しさん [sage] 2020/01/03(金) 21:54:01.12 ID:jtHjGBI5 リストの1要素を書き換える関数が用意されてないのは、それが非推奨だからなの? 配列みたいな気分では使えないのかな http://mevius.5ch.net/test/read.cgi/tech/1548720347/940
941: デフォルトの名無しさん [sage] 2020/01/03(金) 22:42:07.13 ID:biPe5Zol IOが非推奨ではないから まるでIOが非推奨であるかのような関数が用意されていない事に違和感はない http://mevius.5ch.net/test/read.cgi/tech/1548720347/941
942: デフォルトの名無しさん [sage] 2020/01/07(火) 17:00:22.12 ID:xmklvGxc 書き換え・・・? Haskellに書き換えという概念がそもそもあったっけ? http://mevius.5ch.net/test/read.cgi/tech/1548720347/942
943: デフォルトの名無しさん [sage] 2020/01/07(火) 18:53:28.45 ID:KmM+4rGq 書き換えができるデータ型は定義できる それを定義したモジュールにはその概念がある そのモジュールと概念がHaskellの中にあるのか外にあるのかは知らん http://mevius.5ch.net/test/read.cgi/tech/1548720347/943
944: デフォルトの名無しさん [sage] 2020/01/19(日) 01:06:57.37 ID: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 と書いたんですけど、これって関数合成以外の方法で書けますか? 出来れば一つの関数で定義したいんですが、行き詰ってます(汗 http://mevius.5ch.net/test/read.cgi/tech/1548720347/944
945: デフォルトの名無しさん [sage] 2020/01/19(日) 01:34:42.77 ID: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] http://mevius.5ch.net/test/read.cgi/tech/1548720347/945
946: デフォルトの名無しさん [sage] 2020/01/19(日) 01:37:22.32 ID: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 http://mevius.5ch.net/test/read.cgi/tech/1548720347/946
947: デフォルトの名無しさん [sage] 2020/01/19(日) 04:12:57.56 ID:E4qdczJe import Data.List (inits) http://mevius.5ch.net/test/read.cgi/tech/1548720347/947
948: デフォルトの名無しさん [sage] 2020/01/19(日) 08:14:33.78 ID:to1IOlmG Data.List.scanl1 (+) [5, 4, 8, 7] == [5, 9, 17, 24] http://mevius.5ch.net/test/read.cgi/tech/1548720347/948
949: デフォルトの名無しさん [sage] 2020/01/19(日) 09:55:55.71 ID:JUDuINU+ やるじゃん http://mevius.5ch.net/test/read.cgi/tech/1548720347/949
950: デフォルトの名無しさん [sage] 2020/01/19(日) 10:18:10.08 ID:6mEdluRX >>947-948 おお、そんなのがあるのか。、 http://mevius.5ch.net/test/read.cgi/tech/1548720347/950
951: デフォルトの名無しさん [sage] 2020/01/19(日) 18:10:44.86 ID:7oa0iQg0 944です。返信が遅れてしまってすみません。 >>945.947-948 さん早速の返答ありがとうございました。 http://mevius.5ch.net/test/read.cgi/tech/1548720347/951
952: デフォルトの名無しさん [sage] 2020/01/19(日) 22:57:51.59 ID: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] http://mevius.5ch.net/test/read.cgi/tech/1548720347/952
953: デフォルトの名無しさん [] 2020/01/20(月) 00:41:52.39 ID:TXkt06UM Haskellの事を知れば知る程(圏論含む)、数学ってプログラミング言語だなと思う。 コンピュータが登場する遥か以前からあるプログラミング言語。 そうなると数学者はある種のプログラマーと言える。 ただ、数学はコンピュータに計算させるのではなく、自分で計算するから再帰みたいなループ構造は面倒臭い。 そこでループ構造を排除するアルゴリズム(法則や公式)を考え出して来たと考えられる節があって…。 そう考えると、コンピュータの登場で人間の効率的なアルゴリズムを考える能力が退化したかも知れん。 とか、考えてみたり。 http://mevius.5ch.net/test/read.cgi/tech/1548720347/953
954: デフォルトの名無しさん [] 2020/01/20(月) 13:04:34.99 ID:0GX6odYx ΣとかΠは実質ループだが数学ではループしないで計算出来る http://mevius.5ch.net/test/read.cgi/tech/1548720347/954
955: デフォルトの名無しさん [sage] 2020/01/20(月) 18:51:38.56 ID:9eVX0YAp 無理数や積分はほとんど計算してない C++のtemplate実体化してないメタプログラミングと同じ http://mevius.5ch.net/test/read.cgi/tech/1548720347/955
956: デフォルトの名無しさん [sage] 2020/01/20(月) 19:20:02.11 ID:h2nRkU1r カリーハワード対応しらんのか? http://mevius.5ch.net/test/read.cgi/tech/1548720347/956
957: デフォルトの名無しさん [sage] 2020/01/20(月) 19:35:03.18 ID:LcZgWv4y 普段のプログラミングでカリーハワード対応が出てくる場面ってどういうとき? 型レベルで凝ったことをするとプログラムを証明として書くことがあると思うんだけど、 その証明として書いたプログラムは実行するとどうなるの? この辺少し勉強したいんだが書いたことも見たこともなくてさっぱり想像つかない http://mevius.5ch.net/test/read.cgi/tech/1548720347/957
958: デフォルトの名無しさん [sage] 2020/01/20(月) 20:28:12.96 ID:9eVX0YAp C++のデザインパターンとHaskellの代数的データ型の同型対応 http://mevius.5ch.net/test/read.cgi/tech/1548720347/958
959: デフォルトの名無しさん [] 2020/01/21(火) 08:51:19.90 ID:lxIBo8y+ 数式の末尾再帰なfib関数を見た時、手続き型言語で書く副作用バリバリのfib関数との共通点が見えた。 (過去どこかに本の中身の画像落としたんだが、まだあるかは知らん) そこで一つの仮説が浮かんだ。 入出力を伴わない関数であれば、副作用のある関数でも正しく動く関数は数式と相互に変換出来るのでは? (入出力も含めるなら、相互にHaskellと変換出来る?逆に、バグがあるなら相互変換は無理?) 数学専門じゃないから、証明とか出来ないけども。 http://mevius.5ch.net/test/read.cgi/tech/1548720347/959
960: デフォルトの名無しさん [sage] 2020/01/21(火) 09:00:45.96 ID:Hkcle0K4 人に伝える努力をして欲しい ポエムいらない http://mevius.5ch.net/test/read.cgi/tech/1548720347/960
961: デフォルトの名無しさん [sage] 2020/01/21(火) 11:28:06.62 ID:d/fzPC0C 何か知りたいことがあるのか? 需要がないところを努力するのは意味不明だし、努力して欲しいと言うのも意味不明 http://mevius.5ch.net/test/read.cgi/tech/1548720347/961
962: デフォルトの名無しさん [sage] 2020/01/21(火) 11:52:36.21 ID:m86EWX9f 数学だけだなく国語力もないのな 努力といわれてバカにされてることに気付かない http://mevius.5ch.net/test/read.cgi/tech/1548720347/962
963: デフォルトの名無しさん [sage] 2020/01/21(火) 13:47:51.38 ID:L/RpGA77 ST で検索 http://mevius.5ch.net/test/read.cgi/tech/1548720347/963
964: デフォルトの名無しさん [sage] 2020/01/21(火) 17:55:02.99 ID:sFJRAv+Q 表示的意味論の話かな http://mevius.5ch.net/test/read.cgi/tech/1548720347/964
965: デフォルトの名無しさん [] 2020/02/04(火) 12:34:05.49 ID:Np8xXmTj 数学、糞苦手な俺 プログラムで表現出来る数学分野ってごく一部だと思ってたけどそうでもないんか? 概念操作のプロセスと計算とじゃ大きな開きがあると思うんだが それを鬼計算量で埋められるんかね http://mevius.5ch.net/test/read.cgi/tech/1548720347/965
966: デフォルトの名無しさん [sage] 2020/02/04(火) 13:19:01.06 ID:jKHkWlP0 オペレーションズリサーチって言った分野は数学必須だろうね ベイズ統計とか当たり前のように使われているし カルマンフィルタもそう 確率統計/多変量解析はコンピュータやる人間ならそれなりに必須だと思うし 現実世界に役立っている ここでよく題材として挙がるのは圏論だけど これは俺も必要性はあんま感じない http://mevius.5ch.net/test/read.cgi/tech/1548720347/966
967: デフォルトの名無しさん [] 2020/02/04(火) 18:06:11.81 ID:6o+cJy8H >>959 手続き型言語でのwhileなどの繰り返しの一回に対し、そこで用いられている変数の値の変化を、末尾再帰関数の引数の変化に置き換えれば、きれいな1重whileは、きれいな末尾再帰関数に置き換わると主張しているんだよね。 http://mevius.5ch.net/test/read.cgi/tech/1548720347/967
968: デフォルトの名無しさん [sage] 2020/02/04(火) 20:02:08.12 ID:+caUnTFf フリーハンドで描いた線と定規で描いた線を比較するようなもの 実質的な意味は同じ 強いて言うならマナーの良さが違うだけ http://mevius.5ch.net/test/read.cgi/tech/1548720347/968
969: デフォルトの名無しさん [sage] 2020/02/04(火) 22:57:24.24 ID:LyYVEub6 静的単一代入形式に変換して、 φ関数の出てくるところを別関数の呼び出しに変換すれば、 副作用のない状態には持ち込めるかな http://mevius.5ch.net/test/read.cgi/tech/1548720347/969
970: デフォルトの名無しさん [sage] 2020/02/05(水) 18:14:57.84 ID:fFjiekZv >>966 > ここでよく題材として挙がるのは圏論だけど これは俺も必要性はあんま感じない プログラムを書く立場ならば圏論なんて知る必要は全くないよ そもそも仮に圏論を知らないと良いプログラムが書けないプログラミング言語があったとしたら そんなプログラミング言語は使い物にならない Haskellerなど一部のプログラマの間での昨今の圏論ブームは少なくとも私には単なる一種のファッションの流行にしか見えないし余り意義を認めない 他人の趣味にケチをつける気はないので、やりたければどうぞ御自由に、としか言いようがない 圏論を知る必要があるとすればプログラムを書く人間ではなくて新しいプログラミング言語の設計をする人間(の一部)だ ただ一つだけ圏論の勉強を擁護しておくと、規模の大きなソフトウェアをメンテナンスしやすい見通しのよい構造を持つように設計する上では 抽象化と一般化という思考能力、ある事柄や概念と他のどの事柄とが対応するのかを適切に理解し判断する能力は非常に重要だ そして数学において圏論の最も重要な効用は正にそういう一般化や抽象化といった思考法を書き表すための言葉としてだ 数学である分野での成果(例えば幾つかの定理や定義)を全く別の分野へと転用するといった数学の発展させ方が可能になったのは 正に20世紀中盤に圏論という言葉が生まれたからこそのお蔭だ だからプログラマが圏論そのものを勉強する必要性は乏しいと思うが、圏論を勉強して理解できる能力と大規模のソフトウェアを良い構造で設計できる能力とは 間違いなく共通した部分があり、正の相関があるのは確実だと個人的には考えている そういう意味では圏論の勉強は大規模ソフトウェアの設計に向く設計者か否かのフィルタリングに使えるかも知れないね http://mevius.5ch.net/test/read.cgi/tech/1548720347/970
971: デフォルトの名無しさん [] 2020/02/05(水) 18:19:38.12 ID:hXjs1EZI >>970 >そもそも仮に圏論を知らないと良いプログラムが書けないプログラミング言語があったとしたら CPL(Categorical Programming Language) まずは Wikipedia を参照汁 http://mevius.5ch.net/test/read.cgi/tech/1548720347/971
972: デフォルトの名無しさん [] 2020/02/05(水) 19:04:41.25 ID:2rKdW1Ec 圏論って知らずに使ってるんやろ それでええやん http://mevius.5ch.net/test/read.cgi/tech/1548720347/972
973: ◆QZaw55cn4c [sage] 2020/02/05(水) 20:36:57.76 ID:uTOW/8lH 圏論ってなんですか? http://mevius.5ch.net/test/read.cgi/tech/1548720347/973
974: デフォルトの名無しさん [sage] 2020/02/05(水) 21:17:36.43 ID:2r8PGoiv アジア文化圏 http://mevius.5ch.net/test/read.cgi/tech/1548720347/974
975: デフォルトの名無しさん [sage] 2020/02/05(水) 21:42:26.50 ID:/Jhw33Vx 一つ言えるのは圏論ってなんか語りたくなっちゃうものなんだということ。 プログラムにおいては全く意味はない。 計算機の動きを抽象化する道具としてそんな筋のいいものではない。 数論でも勉強するなら意味はあるだろうが。 http://mevius.5ch.net/test/read.cgi/tech/1548720347/975
976: デフォルトの名無しさん [sage] 2020/02/05(水) 23:38:47.13 ID:m+XqauaX 圏論はどちらかといえばポイントフリー λとか∀とか∃とかパターンマッチとかで変数を束縛する言語 に違和感があれば圏論を語りたくなる http://mevius.5ch.net/test/read.cgi/tech/1548720347/976
977: デフォルトの名無しさん [sage] 2020/02/06(木) 01:01:03.47 ID:OGs/tKtL >>970 大規模ソフトウェアのメンテにおいて、 圏論を知らないとこのように失敗するが、 知っているとこのように成功する、 という具体例を挙げられますか? または、具体例を挙げて説明している本やブログ、 カンファレンスなどを紹介できますか? http://mevius.5ch.net/test/read.cgi/tech/1548720347/977
978: デフォルトの名無しさん [] 2020/02/06(木) 04:11:03.04 ID:7nZd7Xb0 >>977 圏論は、いわゆる「銀の弾丸」ではない http://mevius.5ch.net/test/read.cgi/tech/1548720347/978
979: デフォルトの名無しさん [sage] 2020/02/06(木) 07:32:25.39 ID:OGs/tKtL >>978 それは分かっています。 >>970 が圏論による成功例を知っているのなら教えてほしかったのです。 一件も挙げられず、ただ大規模ソフトウェアには大事だと言っているだけでしたら、 とても残念です。 http://mevius.5ch.net/test/read.cgi/tech/1548720347/979
980: デフォルトの名無しさん [sage] 2020/02/06(木) 08:35:23.71 ID:7WdfZf7H お前が圏論理解してかつ大規模ソフトウェア開発で失敗したら反証になるじゃん がんばれ http://mevius.5ch.net/test/read.cgi/tech/1548720347/980
981: デフォルトの名無しさん [sage] 2020/02/06(木) 11:02:50.38 ID:OGs/tKtL >>980 この件に関して反証しても、大した意味はないと思います。 具体的な成功例を一つでも知ることの方が遥かに役立つのではないでしょうか。 http://mevius.5ch.net/test/read.cgi/tech/1548720347/981
982: デフォルトの名無しさん [] 2020/02/06(木) 11:23:47.14 ID:gLliKWEs 圏論だのモナドだの相変わらずだなあ もっと楽しい話をしようぜ コモナドとかProfunctor Opticsとかサ http://mevius.5ch.net/test/read.cgi/tech/1548720347/982
983: デフォルトの名無しさん [sage] 2020/02/06(木) 11:47:37.47 ID:sigCaOr9 横からだが 個人的に考えてる、と断ってるじゃん 単なる個人の感想 お前はそこに証拠を求めてる 何がしたいの? http://mevius.5ch.net/test/read.cgi/tech/1548720347/983
984: デフォルトの名無しさん [sage] 2020/02/06(木) 12:12:18.67 ID:OGs/tKtL >>983 個人的でもそう考える根拠が何かあると思います。 何かの記事でそう語っているのを見たとか、 自分が携わったプロジェクトで実感したとか。 記事なら出典を知りたいですし、 実感したのならもう少し具体的な話を聞きたいです。 と言うのも、今までもここで圏論を語る人はたくさんいましたが、 私の知る限り誰一人として役立った例を具体的に語った人はいませんでした。 >>970 は久しぶりに長文で熱く語っておられるので、 もしや具体例を挙げられるのではと思い聞いてみました。 http://mevius.5ch.net/test/read.cgi/tech/1548720347/984
985: デフォルトの名無しさん [] 2020/02/06(木) 13:45:00.26 ID:sNihMBVC >>977 http://kymst.net/index.php?plugin=attach&refer=MathDocs&openfile=mjk01bt1.pdf http://mevius.5ch.net/test/read.cgi/tech/1548720347/985
986: デフォルトの名無しさん [sage] 2020/02/06(木) 22:21:29.85 ID:AbsWoeSu >>971 そりゃ学位論文レベルの言語ならあるさ そもそもそのCPLとCSL(Categorical Specification Language)とを定義した萩野達也氏のエジンバラ大学に提出した件の学位論文は私も読んだ そして理論的には大変に興味深い研究だと思ったよ だが私が前の投稿で書いた「使い物にならない」の定義、つまり肯定形の「使い物になる」はソフトウェア工学的な意味で実用になるという意味だ つまりは「多数のプログラマによって実用プロジェクトで使える言語」という意味だ、より具体的な基準が必要だと言うのならば 「最低でも100万行のソフトウェア開発をそのプログラミング言語で行える」という意味だ 君が私の主張である「使い物にならない」を否定したければ、100万行とは言わぬまでもせめて10万行のソフトウェアを 複数人で開発するのにCPLだけでやってみてくれ、もちろん必要なCPLのライブラリ類は自分達で開発してね http://mevius.5ch.net/test/read.cgi/tech/1548720347/986
987: デフォルトの名無しさん [sage] 2020/02/06(木) 22:27:12.19 ID:sUAmWprm 簡単な判別法がある デバイスドライバーが書けない言語は使い物にならない http://mevius.5ch.net/test/read.cgi/tech/1548720347/987
988: デフォルトの名無しさん [sage] 2020/02/06(木) 22:27:40.06 ID:AbsWoeSu >>977 だから能力として近いと言っているだけだよ 圏論という理論を勉強して理解できる能力と、大規模ソフトウェアを良い構造で設計する能力とはね 私がそう考えている理由は、どちらも抽象化や一般化といった思考の能力が重要だからだ 圏論を知らなければ良い設計が出来ないと言っている訳では決してない 970の最後の3行(空行はカウントしない)の意味するところは 勉強すれば圏論を理解できるようになる人は(抽象化や一般化の思考能力が高いので圏論を勉強していなくても)良い設計ができるだろう、という予想だ http://mevius.5ch.net/test/read.cgi/tech/1548720347/988
989: デフォルトの名無しさん [sage] 2020/02/06(木) 23:07:57.45 ID:AbsWoeSu >>987 > デバイスドライバーが書けない言語は使い物にならない それは又一つ別の定義だね 私個人としてはアプリケーションしか書けないプログラミング言語でも「使い物になる」ことを認めるけれども そういう定義をするソフトウェア技術者の立場はそれとして否定する気はない http://mevius.5ch.net/test/read.cgi/tech/1548720347/989
990: デフォルトの名無しさん [sage] 2020/02/06(木) 23:44:41.47 ID:r1DVX1M4 人間の社会の役に立つ勢力の定義が存在するのか? まずは存在を疑うのが無駄な努力をしない秘訣 http://mevius.5ch.net/test/read.cgi/tech/1548720347/990
991: デフォルトの名無しさん [] 2020/02/07(金) 00:02:21.67 ID:sQmwkFjl 圏論が実用言語に向いてないのと同様に、989は5chに向いてない http://mevius.5ch.net/test/read.cgi/tech/1548720347/991
992: デフォルトの名無しさん [sage] 2020/02/07(金) 00:15:35.18 ID:MJwijXd8 そんなことないでしょ http://mevius.5ch.net/test/read.cgi/tech/1548720347/992
993: デフォルトの名無しさん [sage] 2020/02/07(金) 01:41:24.07 ID:Fnc0TnWe オオオオチンポ http://mevius.5ch.net/test/read.cgi/tech/1548720347/993
994: デフォルトの名無しさん [] 2020/02/07(金) 08:09:04.68 ID:ruz5n033 javascriptでデバイスドライバは書けないわな 圏論とやらが必要な分野で使えばいいだけの話 http://mevius.5ch.net/test/read.cgi/tech/1548720347/994
995: デフォルトの名無しさん [] 2020/02/07(金) 12:13:54.81 ID:PWhN+bN7 >>990 未知のウィルスに対する検疫等の防衛が出来るのも人間に役立つ能力 いまの役人の対応観てたらあほばっかりだと思うだろ http://mevius.5ch.net/test/read.cgi/tech/1548720347/995
996: デフォルトの名無しさん [sage] 2020/02/07(金) 13:01:46.27 ID:3L88mYwi まだ定義してないのにフライングできる奴は 定義が存在しないパターンを知ってるからそれができる http://mevius.5ch.net/test/read.cgi/tech/1548720347/996
997: デフォルトの名無しさん [sage] 2020/02/08(土) 16:14:00.43 ID:pTX+YoHa HListのインサートとかソートとかのやり方の実装が乗ってるホームページ教えて 作ろうとしても難しくてできないから http://mevius.5ch.net/test/read.cgi/tech/1548720347/997
998: デフォルトの名無しさん [sage] 2020/02/10(月) 18:21:44.17 ID:gQeDR86I 次スレ https://mevius.5ch.net/test/read.cgi/tech/1581326256/ http://mevius.5ch.net/test/read.cgi/tech/1548720347/998
999: デフォルトの名無しさん [sage] 2020/02/10(月) 19:36:01.30 ID:gQeDR86I >>997 HList パッケージのソースをみるしかないかも https://hackage.haskell.org/package/HList-0.5.0.0/docs/src/Data-HList-HSort.html http://mevius.5ch.net/test/read.cgi/tech/1548720347/999
1000: デフォルトの名無しさん [] 2020/02/10(月) 20:28:59.42 ID:Q/biUbUo >>999 あざーす http://mevius.5ch.net/test/read.cgi/tech/1548720347/1000
1001: 1001 [] ID:Thread このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 377日 11時間 23分 12秒 http://mevius.5ch.net/test/read.cgi/tech/1548720347/1001
1002: 1002 [] ID:Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。 運営にご協力お願いいたします。 ─────────────────── 《プレミアム会員の主な特典》 ★ 5ちゃんねる専用ブラウザからの広告除去 ★ 5ちゃんねるの過去ログを取得 ★ 書き込み規制の緩和 ─────────────────── 会員登録には個人情報は一切必要ありません。 月300円から匿名でご購入いただけます。 ▼ プレミアム会員登録はこちら ▼ https://premium.5ch.net/ ▼ 浪人ログインはこちら ▼ https://login.5ch.net/login.php http://mevius.5ch.net/test/read.cgi/tech/1548720347/1002
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.014s