関数型プログラミング言語 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
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秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【速報】中国、水産物輸入停止と通達 「処理水」理由、日本政府へ ★5 [おっさん友の会★]
- 【速報】中国、水産物輸入停止と通達 「処理水」理由、日本政府へ ★6 [おっさん友の会★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 [ぐれ★]
- 中国側が首相答弁の撤回要求、日本側拒否★7 [夜のけいちゃん★]
- NHK会長 新語・流行語大賞ノミネート「オールドメディア」に反論「言われる筋合いはない」「新しいメディアだと思っている」 [muffin★]
- 【速報】 米大使「はっきりさせておこう、米国は尖閣諸島含め日本の防衛に全面コミット、中国がどうしようが変わらない」 [お断り★]
- 【速報】高市首相「つい言い過ぎた」 存立危機事態の答弁について [237216734]
- 【総裁選】記者「進次郎メモ見過ぎ」高市早苗「w」小泉進次郎「責任ある者は適切な慎重さを備えるべき」 [175344491]
- 中国「次に禁止してほしいものを教えて」 [358382861]
- 【速報】中国、水産物輸入停止★2 [989870298]
- 【速報】中国、水産物輸入停止★3 [989870298]
- 山上妹「統一信者から安倍自民への投票を求められた」法廷で証言 [947332727]
