関数型プログラミング言語Haskell Part32

■ このスレッドは過去ログ倉庫に格納されています
2019/01/29(火) 09:05:47.90ID:gJP/u7IJ
関数型プログラミング言語 Haskell について語るスレです。

haskell.org (公式サイト)
https://www.haskell.org/
日本Haskellユーザーグループ
https://haskell.jp/

前スレ
関数型プログラミング言語Haskell Part31
https://mevius.5ch.net/test/read.cgi/tech/1506447188/
717デフォルトの名無しさん
垢版 |
2019/11/06(水) 22:09:20.32ID:nryCaCA5
Haskellは世界を救うってセミナーで言ってたけど。
2019/11/06(水) 22:15:29.42ID:8uVcy+F0
救われちゃったら、ハスケルハックしときゃいいのか
719デフォルトの名無しさん
垢版 |
2019/11/06(水) 22:17:29.04ID:nryCaCA5
みずほのシステム移行にHaskellが採用されていたなら半年で完了できていたって言ってたよ。
720デフォルトの名無しさん
垢版 |
2019/11/06(水) 22:17:52.37ID:nryCaCA5
コンパイルを通ればバグがないことを保障されるし。
2019/11/06(水) 22:36:34.34ID:E2YfCG0n
>>719
その手の話よく聞くけど

なんで、こうも関数型は人気ないん?
F#も人気上は微妙だし
722デフォルトの名無しさん
垢版 |
2019/11/06(水) 22:41:32.49ID:nryCaCA5
セミナーでは数学の素養が足りないからだって言ってたけど、僕はもう手遅れなので、次世代に期待してます。
2019/11/06(水) 23:00:13.47ID:E2YfCG0n
数学自体は結構勉強したけど 圏論のよさはよくわかんね
ある意味数学の分野で一番かもしれない、圏論のよさが分からんのは
次はホモロジー代数かな

代数幾何は一番時間食ったけど、理解できていないので除外するけど
2019/11/06(水) 23:27:03.30ID:Ly3pzzPK
>>720
さすがにそれは言い過ぎ
単にコンパイラを通せただけだ
2019/11/07(木) 00:27:07.92ID:/6vjWhrz
パタンマッチの要素不足やらリストの範囲外参照やら
STMの糞詰まりやらいろいろ実行時エラーの要素は
あるよね
2019/11/07(木) 00:49:38.56ID:T7e/rKHL
まあ少なくとも、意図した型じゃないのに実行できる上、そのまま実行時に死ぬことすらしない言語よりはよっぽどマシ
(ちょうど今、某動的型付言語でハマってキレてた)
2019/11/07(木) 00:57:14.10ID:/6vjWhrz


遅くまでお疲れ様w
2019/11/07(木) 04:03:06.11ID:8Vzx7lLq
>>719
COBOLのソースをHaskellで組んだプログラムで解析して
全体の処理、依存関係資料を作成
それを参考にしつつ java他へ移行じゃなかったけ?
詳細はググってください

COBOLのコードはトリッキーな記述はしない素直系だから解析はかどるんちゃう?
2019/11/07(木) 06:10:19.59ID:RqdAjhZM
>>723
英語読めない人が、英語のよさがわからんというのと同じじゃね
あなたが読めるものに誰かが翻訳してくれるのを待つか、
あなたが読めるようになるか

代数幾何なんて圏論で再構築されているから圏論の言葉がわからないと
どうしようもないけど、ホモロジー代数まで有用さがわからないというのは
代数が向いてないのか、興味が隔たっているのか微妙なところ
2019/11/07(木) 06:36:09.91ID:RqdAjhZM
>>721
関数型パラダイムの、ユーザ向けの簡単な部分のいいとこどりは各言語でされているし、
人気もあると思う
それを超えて関数型言語に入ろうとすると、面倒くささのほうが勝っちゃうのかも
F#は、実行速度が遅かったのも大きいと思う
2019/11/07(木) 06:48:07.50ID:OeHLbL3M
F#が遅いって適当なこと言ってんな
2019/11/07(木) 07:46:21.60ID:XLcDzJj2
RISCとCISCって本当に2方式独立してんのか

圏論って複素解析を婉曲的に表現してんじゃないのか?
アイレンバーグは4元数も研究してたしバーコフ息子は流体力学研究してた
2019/11/07(木) 07:52:29.18ID:XLcDzJj2
CPUレベルで実は関数型言語に翻訳されてたら
数学的に解析しやすいし高速化も数学的にできるしバグも数学的にとれる
という妄想をするんだが
失敗の歴史をウソと考えると
2019/11/07(木) 09:47:06.79ID:8Vzx7lLq
現行の半導体プロセッサはスイッチングで起きる0と1状態を基本にして組みあがっている関係で
他の技術(量子関係?)が発達しない限り関数的内部表現うんぬんはLISPが誕生した時点で完了してます
テキストベースの文字列を実行可能なコンピュータプログラムに変換する行為は
文字、テキストベースである限りLIPSの構文糖衣と見なせます
2019/11/07(木) 10:11:56.72ID:n7hI0M2o
>>721
カプセル化の恩恵を受けられないからかと

Haskell含む関数型はは仕組み上データを分離/隔離できないのでロジックに比重を置きすぎてるきらいがある
一般的にはクラスに任せたい、内容を知らなくても扱える構造が欲しいわけで
関数ドリブンではやはり困る

個人的にはCに逆戻りしてる印象すらあるね
2019/11/07(木) 11:12:23.51ID:6eFvSmvg
ブライアン・カーニハンもf#の中間言語は
解析しやすいCであるべきだってプロジェクト立ち上げれば
関数型といいつ中身は手続き型でデバッガの資産も使い回せるから
人気でるかもよ。
2019/11/07(木) 11:36:14.12ID:uxj9LdkK
Cに逆戻りしている・・・型安全とガベコレがあるCを作ってしまったのか
738デフォルトの名無しさん
垢版 |
2019/11/07(木) 11:51:10.43ID:dB1QBGXo
>>737
https://mevius.5ch.net/test/read.cgi/tech/1471841975/
2019/11/07(木) 12:41:20.34ID:y+UtRegG
モジュールがあるからカプセル化の恩恵は受けられるのでは
2019/11/07(木) 14:23:10.73ID:B1e2KIDS
>>735
実装詳細の隠蔽にPatternSynonymsが使えるよ
https://haskell-explained.gitlab.io/blog/posts/2019/08/27/pattern-synonyms/index.html
2019/11/07(木) 14:56:51.38ID:n7hI0M2o
それはオブジェクトじゃないから目的が違うかもね
2019/11/07(木) 15:20:12.79ID:B1e2KIDS
>>741
でもまさに内容を知らなくても扱える構造だぜ?
2019/11/07(木) 16:02:50.99ID:uxj9LdkK
カプセル化「継承とポリモーフィズムがやられたようだな・・・」
2019/11/07(木) 16:07:19.92ID:y+UtRegG
カプセル化: 抽象データ型、pattern synonym等
継承: クラス継承
ポリモーフィズム: 存在量化によるサブタイピング多相

haskellってストラウストラップの言うOOP言語なのでは
2019/11/07(木) 18:28:48.58ID:THHm8pjB
>>729
横からですけど、ホモロジー代数の有用性を教えてくれませんか?
何に使えるんです?
2019/11/07(木) 19:14:04.10ID:y+UtRegG
ホモが寄ってくる
2019/11/07(木) 19:41:36.65ID:a+LjUnl5
>>745
コホモロジー全般を抽象的に取り扱える。
748デフォルトの名無しさん
垢版 |
2019/11/07(木) 21:38:48.71ID:QQLc3fgk
>>745
俺もまだあやふやなんだけどどうも複素解析で積分するとコーシーの積分定理みたいに
純トポロジカルに積分値決まるじゃん
どうもモチベーションはそこらへんで
複素平面だと複素解析の教科書みたいに簡単にいけるけど
複素多様体上で線積分しようとするとややこしいからざっくりややこしいところを
ホモロジー代数って分科したみたい
2019/11/07(木) 21:48:30.40ID:QQLc3fgk
ポアンカレから来ているし本当に突き詰めるとたぶん複素解析力学の問題解けるんだと思う
2019/11/07(木) 22:17:56.72ID:THHm8pjB
>>747
代数幾何の教科書に層とコホモロジーが載ってるけどそのあたりと関係するのかな
>>748
難しそうだね
2019/11/08(金) 02:23:56.93ID:xHGwPMhN
>>732
> 圏論って複素解析を婉曲的に表現してんじゃないのか?

的外れにも程がある
層sheafは解析接続の考えを多変数複素関数へと拡張する発想で生まれたものだが
圏は複素解析から出てきたものではない
2019/11/08(金) 07:14:54.57ID:vRM9u/Iy
>>720
エアプ乙
空リストにheadしちゃったらあっと言う間やん
2019/11/08(金) 07:33:23.28ID:KkBgvLKM
>>745
ホモロジー代数の有用性...
代数系の多くの分野の主力ツールなので知らないと入門書を終えた後に代数系で先に進めない
くらいには使われています。直接使われていなくてもやってることはホモロジー代数由来の
ことがよくあります

古くは、ホモロジー代数の枠組み(コホモロジーなことが多い)で完全列が見つかると
機械な計算だけでいろいろな結果が出てくるというのが強みでしたけど、その後は
ホモロジー代数の枠組みにはまらないものを一般化したりして新しい枠組みを作って
ホモロジー代数のように扱えるようにしてきて多くの分野が生まれています。
derived categoryやtriangulated categoryもそうですし、環論のquasi-frobenius ring
(入門書にある森田の定理の延長)などもこの線

自分で圏や代数構造をつくるのでなければ圏も代数も知らなくていいと思いますけどね
2019/11/08(金) 10:55:25.73ID:q9/Fdf+e
>>753
有用性について何一つ説明してないw
2019/11/08(金) 18:27:28.35ID:vRM9u/Iy
Haskellって素晴らしい土台造りの研究に終始して、中々家を建てない印象
2019/11/08(金) 18:41:50.96ID:O4xqpbU0
もう立ててあるんだろ。MSのpower shellも当初はモナドシェルという
名称だったけど無関係だとは思えない
2019/11/08(金) 19:37:52.83ID:tNfNofGs
印象と言っているのでは?
2019/11/08(金) 20:48:21.44ID:bTjIiHb/
haskellってほんのちょっとしたものにも名前つけなきゃいけなくて困る
2019/11/08(金) 21:26:54.71ID:nzoS2I9V
素晴らしい世代別GCの研究はする
でも今作ってるアプリは参照カウントで十分
こういうとこだろ
760745
垢版 |
2019/11/08(金) 22:49:41.82ID:FXrQ9F3T
>>753
なるほど
層とホモロジー代数という本でも現代数学の多くの分野の記述に欠かせない重要な基本言語であると言ってますから
そういうことなんでしょうね
ありがとうございました
2019/11/09(土) 01:29:11.95ID:kdUUP+4v
>>758
たとえば?
2019/11/09(土) 17:05:19.55ID:5gH5tpDv
型シグネチャちゃんと書いとけば、後はポイントフリーにしてお茶を濁して、利用者が命名してねって感じに逃げることも可能
2019/11/09(土) 18:32:42.34ID:y5YvoXPL
HKD(Higher Kinded Datatype)ってのはな

おまえら例えばコマンドラインツールのオプションとかを扱うとき
Options <$> ... <*> ... みたいにしてデータを返すアクションを構築してるだろうけどさ
そこの ... 同士に共通性があるわけじゃん。
コマンド引数>環境変数>設定ファイルの優先順位で読み出されたりするじゃん。
でも各フェーズごとの処理をまとめるのはこのままじゃ難しいわけよ

ところが方針を変えて、中身と外見がひっくり返ったような
data Options_ f = Options _ { verbosity :: f Int, ...}
を使うとエントリごとに Nothing にしたり出来るようになって、
Options_ を一般化したやつらが Generic 介しておんなじように舐められるから処理の共通化もできて、
値の合成もしやすく、コンパイラの warning でエントリの処理漏れを検知できて、いいよね。
このパワーアップしたデータみたいなもんを高カインド・データ(HKD)って呼ぶぞって話
2019/11/09(土) 18:41:35.48ID:PlRJlzfP
コマンドオプションを無駄に複雑にしないように設計に時間使う方が有意義。
てかオプションごとき糞みたいな複雑な解析いれるくらいならすべて設定ファイルにしろよ。
2019/11/09(土) 19:36:35.25ID:LdPLX9iY
なーる。多変数Maybeでコマンドレットか。
getoptにs付けるか付けんかとかいみなかったんや
2019/11/09(土) 19:49:25.81ID:LdPLX9iY
首相って数学そんな明るいの?
2019/11/10(日) 09:53:34.75ID:UPgh4+Yq
>>764
オプションを上書きできないと不便だし、
ツールごとにどんなに設計しようと不可避の複雑さは残るだろうさ。
HKD使えば複雑な解析にはならない。
https://chrispenner.ca/posts/hkd-options

ちな Options から Options_ を Generic で作るやつもある
https://github.com/i-am-tom/higgledy
2019/11/10(日) 20:10:37.56ID:MbFf7EI6
いや普通に作ってればそんな複雑にはならんわ。。
無理やり用途を探してるってのはわかるけどさ。
2019/11/10(日) 21:36:01.67ID:UPgh4+Yq
>>768
そうかな。改善前と同等の機能のコードをもっとシンプルに書ける?
個人的にはさらにリッチに、設定値が原因で問題が起きた時「設定ファイル〜のここで定義された値が原因でコケたよ」
くらいのことも言ってくれると嬉しい。HKD に Writer を突っ込んだりすれば出来る。
2019/11/14(木) 21:29:15.91ID:U/F2ohqe
https://www.stepup-school.net/news/detail/728
微分方程式と圏論と量子コンピュータやるっていうけど
こういうところで圏論という言葉が出てくるの不思議な感じがする
2019/11/15(金) 01:56:55.98ID:m2M4hoVH
>>770
> こういうところで圏論という言葉が出てくるの不思議な感じがする

圏論は現代の数学を記述するための言語だから、ある程度以上のレベルの数学を教えようとすれば圏論という言葉を学ぶのは避けられない
ちょうど、現代では英語という言葉を学んでおかなければ数学や自然科学で重要な研究論文を読んで学ぶことができないようにね
2019/11/15(金) 06:45:41.36ID:CTCYdIoU
>>770
ステマ
2019/11/15(金) 11:19:15.11ID:mFhZFK7X
だから自由ソフトウェアとか割れとかを宣伝して商品は宣伝しないスタイルがある
2019/11/15(金) 19:57:11.81ID:uG++m6MK
PostgREST は Haskell のキラーコンテンツになれるか
2019/11/16(土) 00:01:26.66ID:TatvE4r/
結局代数幾何やらずに圏論語っても胡散臭いものにしかならん。
別に代数幾何がすべてとはおもわんが起源ではある。
2019/11/16(土) 01:13:46.97ID:yrgQ+1iB
集合論と集合の圏が胡散臭い
だったら射はあっても冪はない圏などを考えれば胡散臭さは軽減される気がする
2019/11/16(土) 09:25:34.99ID:0kRbSQZl
>射はあっても冪はない圏
集合論を取っ払うなんてことは圏論は望んでねーわ。
馬鹿すぎて話にならん。
2019/11/16(土) 11:41:35.91ID:Zb6iL5XI
馬鹿を取っ払いたい願望があるとはっきり言い切る方が簡潔で良い
2019/11/17(日) 11:04:47.89ID:zhdkDGU4
私代数幾何ではありませんが数学科で代数系で圏論バリバリ使ってました。
しかし計算論への圏論の応用という意味ではほとんど役に立ってません。
圏論はその表現力の高さゆえにほとんどの数学に登場します。
しかし逆に言えばその登場の仕方で全く別の顔で出てくるのである一つのジャンルで出てくる圏論を極めても他ではほとんど役に立たなくなる事は多々あると思います。
まだ計算論で出てくる圏論の勉強は始めようとしてるとこなので代数幾何に出てくる圏論がどの程度役に立つかは断言はできませんが、あまり期待はできないと思います。
780デフォルトの名無しさん
垢版 |
2019/11/17(日) 11:15:51.64ID:X9AhIAwA
CSに出て来る圏論はフェイク
2019/11/17(日) 12:27:10.16ID:zvcjV9Be
型はフェイクではない
○○を応用した成果が型である
ゆえに○○はフェイクではない

このように「応用」や「成果」の概念がフェイクに加担している
2019/11/17(日) 20:43:59.01ID:56xYlt3M
>>780
> CSに出て来る圏論はフェイク

CSとCSでないとの境界は曖昧なわけだが
例えば構成主義的な型理論などはその典型だ
少なくともBart JacobsのCategorical Logic and Type Theoryでの型理論はCSでなく数理論理学で
そこで出て来る圏論はフェイクでなく本物だと思うがねえ
Lambek & Scott (Phil)とそこで出て来る圏論に関しても同様

だからこそ数学を基礎付ける枠組みとしてのHTT (Homotopical Type Theory)などという考えが出てくるわけで

逆に言えば代数幾何で出て来る圏論は間違いなく本物なのは事実だが数理論理学で出て来る圏論から見ると酷く偏った部分だけだし
逆から見れば数理論理で出て来る圏論は代数幾何の圏論から見れば同様に非常に偏って見える

最近の高階圏や高次元圏の隆盛を見てもわかるとおり圏論の可能性は極めて広く豊かだから
「××で出て来る圏論はフェイク」といった主張はナンセンスだよ

ただ、本来、数学を知らずに使えねばならない単なるプログラミング言語に過ぎないのに
「圏論がどうした、モナドがどうした」、といって圏論を勉強しておかないとプログラムを書けないかの如く喧伝するのは
フェイクというか一種の羊頭狗肉あるいは虎の威(圏論、あるいは純粋数学という一種の高級ブランド)を借りる狐(プログラミング言語という実用道具)であり
間違った姿勢だとは思うけれどね
2019/11/17(日) 20:55:22.99ID:N5iPOVW/
そうそう
多言語との差別化、マウント
選民主義の道具
あるいは原理主義で貫いてますよという言い訳みたいなもの
圏論必須みたいに言うのはバカ
2019/11/17(日) 21:23:18.02ID:S3IAhXB4
とはいえほとんどのプログラマが欲しいのはどうせ虎の威だろ。
だからこの業界は何の発展もない。
2019/11/17(日) 21:25:48.05ID:4jNKOHdS
何言ってのこの人
2019/11/17(日) 21:55:46.27ID:N5iPOVW/
>>784
そう
僕らは「正しく」後追い根性から抜け出さなければならないと思うよ
そこから抜け出せないから日本はIT後進国
2019/11/17(日) 22:02:43.05ID:nzTNCHtX
PostgREST は Haskell のキラーコンテンツになれるか
2019/11/17(日) 22:12:35.26ID:zvcjV9Be
動的型付け原理主義なら権威もないしダメージもないんだが
ノーダメージな選択肢を冷笑して程々のダメージ受けてるやつもそれはそれで難儀な性格だ
2019/11/17(日) 23:21:11.81ID:S3IAhXB4
まあ権威が言ってんだからで済ましたり静的チェックしてるから大丈夫とか
言い聞かせる方が地道にベンチマーク取るよりよっぽど楽だからな。
結局はそういうことだろ。
言い訳をしたいんだよ。
2019/11/18(月) 07:09:05.16ID:6/WJcbq2
>>787
REST API作るのは他言語でも簡単だし、いまさらRESTっていう気もするし、
これだけで使ってもらうのは無理筋
791デフォルトの名無しさん
垢版 |
2019/11/18(月) 11:01:11.35ID:ahZzeXy3
rubyをいくらdisっても構わないと思うが
disるだけじゃ何も産まれないからな
2019/11/18(月) 19:55:00.90ID:6QIkNIz7
どこが嫌いかより、どこが好きかで言語を語れよ!
793デフォルトの名無しさん
垢版 |
2019/11/19(火) 11:11:47.89ID:8naC8O/U
反日パヨク野党にはほめるところもすきなところも何もないわ
2019/11/19(火) 13:04:27.10ID:TS8kcjoi
誰だよそいつは
自分を匿名化するのは別にいいけど敵を匿名にするなよ
2019/11/19(火) 14:46:28.06ID:qFuVzVhm
>>793
>野党
は言語なのか?

はじめにことばがあった。ことばは髪とともにあった。
ことばは髪であった。

というくらいだから気になるかしらんが。
2019/11/19(火) 20:45:50.91ID:EAp6ZFS6
何が問題のある機能か語る方がプログラム技術は向上する。
好きなものだけやってるバカは働いてほしくない。
2019/11/20(水) 11:22:47.40ID:9VJHrV5/
技術自体が目的になることを問題視する風潮なので

サイコパスですら手段の目的化には強い罪悪感を持つようだ
もはやサイコパスでもなんでもないただの人
2019/11/20(水) 11:23:39.17ID:ADcW+Cyo
つまらない
2019/11/20(水) 13:02:17.44ID:i01367Jm
東京でのhaskellプログラマの求人だとさ
https://www.reddit.com/r/haskell/comments/dyh4rz/job_purescript_and_haskell_tokyo_or_remote/
2019/11/21(木) 20:19:49.90ID:BfqobOk+
apiサーバー実装としてhaskell結構いけるという話が出てるな。
ちと興味出てきた。
モナドガーとかずっと言ってるバカしかいないのかと思ってたがそうでもないようだ。
2019/11/27(水) 15:44:41.54ID:iuzce+69
よわそう
2019/11/28(木) 00:39:29.58ID:W12oiqHO
圏論流行っているのって、人工知能の機械学習の理論のベースが複素多様体(複素ファジー)
にあってアルゴリズムに落とし込むにあたってバッチリ実学になるからとかそういう理由から?
2019/11/28(木) 00:44:08.38ID:W12oiqHO
haskellの真価は機械学習で出るとかそういうやつかな。勝手に納得くっそー。
2019/11/28(木) 00:58:23.73ID:O/IccFcB
FRPの金脈は掘り尽くされてみな失望して出て行ったの?
Haskellでゲーム作りを通してFRPを学べるみたいな本がLeanpubで書かれてたけど
作者途中で断念しちゃったんだよね
2019/11/28(木) 00:59:05.39ID:W12oiqHO
ちくしょう。
2019/11/28(木) 01:00:13.06ID:W12oiqHO
慈善事業で地位向上やってたんだろうが。ちくしょう。
2019/11/28(木) 01:06:40.27ID:W12oiqHO
くっそ。こんな頭に線繋いで文意の通らないコミュニケーションとれるとか。
公認基地外化してなんてやろうだ。
邪魔するつもりはないが、全国クイズ大会とかいつまでやるつもりだ。
2019/11/28(木) 19:49:21.00ID:mtRfePwe
>>802
圏論の流行の理由はそっち方面とは全く関係ない
一つは関数型プログラミング言語の型の体系の理論的基盤である型理論が圏論と直接的な繋がりがあるところから
もう一つは実用プログラムとしては避けて通れない例外処理や状態の概念をHaskellのような関数型プログラミングで扱うための理論的基盤としてのモナドから
2019/11/28(木) 22:20:47.13ID:8LP6mRiM
関数型言語設計者にとっては重要だとしても、
Haskellを使っている人にはどうでもいい理論ってことか。

 >>圏論
2019/11/28(木) 22:28:37.21ID:KJlOY0hh
アリアドネーの糸か蜘蛛の糸か。
でもどのみち結論はゼロサムだろう。
2019/11/29(金) 10:03:34.54ID:KypBmx9c
arrayパッケージのData.Array.! は配列に O(1) の計算量で参照できるのでしょうか?
2019/11/29(金) 13:42:47.90ID:KypBmx9c
>>811
よく考えたら、IOモナドではないので、O(1)で参照できる配列構造を作れるわけないですね。
質問は無かったことにしてください。
くだらないことでスレを汚してしまい、すいませんでした。
2019/11/29(金) 13:57:38.91ID:BnvrknGG
せやろか
2019/11/29(金) 23:26:58.09ID:rLKSZgh6
命題
IOモナドではない ⇒ O(1)で参照できる配列構造を作れない

を証命せよ
2019/11/29(金) 23:37:51.77ID:UeTdOBou
漢字間違ってんぞ
2019/12/01(日) 02:50:14.51ID:M279qGKp
我々は副作用は使ってないっ!キリッ
完全にクリーンなプログラムを書いているのだ!キリッキリッ
2019/12/01(日) 12:50:50.29ID:ZEhocPVE
色々なコホモロジーの同型の証明については圏論は力を発揮するが、
型理論においてはそういう風にも考えられるよね?以上の意味はない。
単なる箔付けだな。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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