関数型プログラミング言語 Haskell について語るスレです。
haskell.org (公式サイト)
https://www.haskell.org/
前スレ
関数型プログラミング言語Haskell Part30
http://mevius.2ch.net/test/read.cgi/tech/1484491434/
探検
関数型プログラミング言語Haskell Part31©2ch.net
レス数が950を超えています。1000を超えると書き込みができなくなります。
2017/09/27(水) 02:33:08.70ID:2XAqPuH2
881デフォルトの名無しさん
2018/12/16(日) 14:26:10.12ID:d+Ts3kFC よりスマートに
https://gist.github.com/WhiteCat6142/a3270468cbf829200b7f66acd048b1a2
bsort=foldr bs []
where bs x []=[x]
bs x (y:ys)|x<=y =(x:y:ys)
|otherwise =(y:bs x ys)
https://gist.github.com/WhiteCat6142/a3270468cbf829200b7f66acd048b1a2
bsort=foldr bs []
where bs x []=[x]
bs x (y:ys)|x<=y =(x:y:ys)
|otherwise =(y:bs x ys)
882デフォルトの名無しさん
2018/12/18(火) 11:44:17.44ID:/M0/bFGF 歯透ける
883デフォルトの名無しさん
2018/12/18(火) 12:01:03.47ID:NUNmy+BV パンツ透ける
884デフォルトの名無しさん
2018/12/18(火) 14:51:09.99ID:LIt8HoLP885デフォルトの名無しさん
2018/12/18(火) 17:19:38.38ID:D1bDvywT 余再帰でも最適化かかる場合があるとかないとか
886デフォルトの名無しさん
2018/12/19(水) 09:01:32.80ID:xYxnZ8u2 最適化って言うけど最適化無しのddump-asmでもあんまりcallは使われてないんだよね
詳しくは知らないけど再帰と言えど少なくともWHNFで値を返すわけだから
サンクに入った再帰呼び出しを実際に再帰的に呼ぶ必要も無いってことだろう
つまり実際の呼び出しに評価元のスタックが使われるんだとしたら
リストを評価する場合には伸びだ分のスタックがコンスセル毎にクリアされる
詳しくは知らないけど再帰と言えど少なくともWHNFで値を返すわけだから
サンクに入った再帰呼び出しを実際に再帰的に呼ぶ必要も無いってことだろう
つまり実際の呼び出しに評価元のスタックが使われるんだとしたら
リストを評価する場合には伸びだ分のスタックがコンスセル毎にクリアされる
887デフォルトの名無しさん
2018/12/20(木) 07:30:09.47ID:y4SKaDG8888デフォルトの名無しさん
2018/12/20(木) 21:14:07.04ID:X0Fr2Ixv これバブルソートじゃなくて挿入ソートだよね
889デフォルトの名無しさん
2018/12/21(金) 00:03:36.39ID:1VggrQKb bsort = unfoldr (uncons . foldr step [])
where step x [] = [x]
step x (y:ys) | x <= y = (x:y:ys)
| otherwise = (y:x:ys)
where step x [] = [x]
step x (y:ys) | x <= y = (x:y:ys)
| otherwise = (y:x:ys)
890デフォルトの名無しさん
2018/12/21(金) 13:18:39.50ID:V4JbVdgQ スタックマシンじゃなくてセルオートマトンだったらスタック消費しないよね
891デフォルトの名無しさん
2018/12/22(土) 08:09:42.23ID:9xYrH7YE Prelude.div関数について。
Preludeモジュールをインポートしないで同義の関数を使いたい場合、
どのモジュールをインポートするのが理にかなっているでしょうか。
理にかなっていると言うのは、
import X (div)
という記述を見て「整数の商を求めるのだな」とか、
「数学的な計算の意味での div なんだな」と分かるという意味です。
import Prelude (div)
では意味が分かりません。
(正確には長年Haskell使ってるので意味は分かるが気持ち悪い)
できるだけ役割がハッキリして仕事が限定された小さなモジュールを求めています。
また stackage の中でお願いします。
basement の Basement.Numerical.Multiplicative.div が良い感じですが、
もっと良いものはあるでしょうか。
Preludeモジュールをインポートしないで同義の関数を使いたい場合、
どのモジュールをインポートするのが理にかなっているでしょうか。
理にかなっていると言うのは、
import X (div)
という記述を見て「整数の商を求めるのだな」とか、
「数学的な計算の意味での div なんだな」と分かるという意味です。
import Prelude (div)
では意味が分かりません。
(正確には長年Haskell使ってるので意味は分かるが気持ち悪い)
できるだけ役割がハッキリして仕事が限定された小さなモジュールを求めています。
また stackage の中でお願いします。
basement の Basement.Numerical.Multiplicative.div が良い感じですが、
もっと良いものはあるでしょうか。
892デフォルトの名無しさん
2018/12/22(土) 09:55:43.41ID:NgVSh9Jk >>888
(y:bs x ys)は遅延評価だから捜査逆のバブルソート
(y:bs x ys)は遅延評価だから捜査逆のバブルソート
893デフォルトの名無しさん
2018/12/22(土) 10:39:40.85 ミ /、`二//-‐''"´::l|::l l! ';!u ';/:::l ', ';::::::l ';:::::i:::::
ニ レ/::/ /:イ:\/l:l l::l u !. l / ';:::l ', ';:::::l. ';::::l:::::
マ レ /:l l:::::lヽ|l l:l し !/ ';:l,、-‐、::::l ';::::l::::
リ /::l l:::::l l\l ヽ-' / ';!-ー 、';::ト、';::::l:::
ス /::::l/l::::lニ‐-、`` / /;;;;;;;;;;;;;ヽ! i::::l:::
ト /i::/ l::l;;;;;ヽ \ i;;;;;;;;;;;;;;;;;;;l l::l:::
/:::l/:l /;;l:!;;;;;;;;;', ';;;;;;;;;;;;;;;;;ノ l:l::
/::::;ィ::l. l;;;;!;;;;;;;;;;;l `‐--‐'´.....:::::::::!l
__|_ ヽヽ /イ//l::l ヽ、;;;;;;;ノ.... し :::::::::::::::::::::ヽ /!リ l
| ー /::::l';!:::::::::::::::::::: u ', i ノ l
| ヽー /イ';::l ’ し u. i l l
| /';:';:!,.イ し 入 l l U
| /,、-'´/ し / ヽ、 u し ,' ,' l
| /l し _,.ノ `フ" ,' ,' ,ィ::/:
| /::::::ヽ ヽ / し ,' ,' / l::
| /::::::::::::`‐、 し ', / u ,、-'´ l,、-
| ``‐-、._::::::::::` ‐ 、 ',/ , -'´`'´ ,-'´
| _,、-‐'"´';:::::::::イ:l';:::` ‐ 、._____,、-‐'"´ u /
| | | | \ l::/ l::::::/リ ';:::::lリ:::::l';:::l l:l:::::l\ u /
| | | |
ニ レ/::/ /:イ:\/l:l l::l u !. l / ';:::l ', ';:::::l. ';::::l:::::
マ レ /:l l:::::lヽ|l l:l し !/ ';:l,、-‐、::::l ';::::l::::
リ /::l l:::::l l\l ヽ-' / ';!-ー 、';::ト、';::::l:::
ス /::::l/l::::lニ‐-、`` / /;;;;;;;;;;;;;ヽ! i::::l:::
ト /i::/ l::l;;;;;ヽ \ i;;;;;;;;;;;;;;;;;;;l l::l:::
/:::l/:l /;;l:!;;;;;;;;;', ';;;;;;;;;;;;;;;;;ノ l:l::
/::::;ィ::l. l;;;;!;;;;;;;;;;;l `‐--‐'´.....:::::::::!l
__|_ ヽヽ /イ//l::l ヽ、;;;;;;;ノ.... し :::::::::::::::::::::ヽ /!リ l
| ー /::::l';!:::::::::::::::::::: u ', i ノ l
| ヽー /イ';::l ’ し u. i l l
| /';:';:!,.イ し 入 l l U
| /,、-'´/ し / ヽ、 u し ,' ,' l
| /l し _,.ノ `フ" ,' ,' ,ィ::/:
| /::::::ヽ ヽ / し ,' ,' / l::
| /::::::::::::`‐、 し ', / u ,、-'´ l,、-
| ``‐-、._::::::::::` ‐ 、 ',/ , -'´`'´ ,-'´
| _,、-‐'"´';:::::::::イ:l';:::` ‐ 、._____,、-‐'"´ u /
| | | | \ l::/ l::::::/リ ';:::::lリ:::::l';:::l l:l:::::l\ u /
| | | |
894デフォルトの名無しさん
2018/12/22(土) 11:38:44.98ID:SGb2VOwM895デフォルトの名無しさん
2018/12/22(土) 15:07:06.49ID:j3oO0IK0896デフォルトの名無しさん
2018/12/23(日) 00:20:58.06ID:OufBT+Yp897デフォルトの名無しさん
2018/12/23(日) 00:50:21.75ID:2lSG181k 型推論って、いったい何を目指してるの?
コンパイラは推論できても、人間にとって読みやすいものと思えないんだけど
コンパイラは推論できても、人間にとって読みやすいものと思えないんだけど
898デフォルトの名無しさん
2018/12/23(日) 02:11:43.05ID:YigQT2JG template<typename T>って宣言してもどうせ読めないから宣言しないのを目指す
899デフォルトの名無しさん
2018/12/23(日) 02:17:29.50ID:zMRMmtKp >>897
関数型言語だと型を考えることがプログラミングだと言うね
関数型言語だと型を考えることがプログラミングだと言うね
900デフォルトの名無しさん
2018/12/23(日) 16:02:25.42ID:dHWagv9n Practical Web Development with Haskellってのがまだ70Pくらいしか読んでないけど
認証つきWebアプリをいちから写経しようぜってつくりで初〜中級者にいい感じっぽい
Data.Hasとかこれで初めて知ったわ
認証つきWebアプリをいちから写経しようぜってつくりで初〜中級者にいい感じっぽい
Data.Hasとかこれで初めて知ったわ
901デフォルトの名無しさん
2018/12/23(日) 19:07:09.70ID:VkAdoKxx902デフォルトの名無しさん
2018/12/23(日) 19:28:31.47ID:14edUGfJ Preludeなんてものは要らなくて、divはData.integralに入ってて、divを使うには毎回Data.Integralからimportするのが理想って認識で合ってる?
Preludeのその他諸々の関数も含めて
Preludeのその他諸々の関数も含めて
903デフォルトの名無しさん
2018/12/23(日) 20:21:12.14ID:YigQT2JG LinuxにたとえるとデフォルトのGUIなんてものは要らなくて
無数のディストリビューションから選択するのが理想という認識
無数のディストリビューションから選択するのが理想という認識
904895
2018/12/23(日) 20:57:49.01ID:gIQVihKw >>901
http://hackage.haskell.org/package/base-4.12.0.0/docs/src/Prelude.html
を読んで思いついたんだけど、
import GHC.Real (div)
はどうだい。プレリュードはそのモジュールをre-exportしてる。
http://hackage.haskell.org/package/base-4.12.0.0/docs/src/Prelude.html
を読んで思いついたんだけど、
import GHC.Real (div)
はどうだい。プレリュードはそのモジュールをre-exportしてる。
905デフォルトの名無しさん
2018/12/24(月) 17:05:01.14ID:ovQS6rqM >>900
Javerが4年で手本になるこなれたコードを書けてるのか疑問なんだがどんな?
Javerが4年で手本になるこなれたコードを書けてるのか疑問なんだがどんな?
906デフォルトの名無しさん
2018/12/24(月) 18:43:23.42ID:ovQS6rqM うわああああこの前Amazon.comから輸入したHaskellの洋書Amazon.co.jpでも売ってたああああ
失敗した
失敗した
907デフォルトの名無しさん
2018/12/24(月) 20:36:56.95ID:OvWyYJqn 当初から比べたらco.jpの洋書の品揃えはずいぶん充実したよね
アカウントを未だ両方持っているけど米版は使わなくなった
アカウントを未だ両方持っているけど米版は使わなくなった
908デフォルトの名無しさん
2018/12/25(火) 11:18:00.52ID:yeWprDEr 洋書なら輸入の方が安いって話では
909デフォルトの名無しさん
2018/12/25(火) 12:11:51.62ID:3tfaERbL 専門書だと、各地域のamazonで送料込みでも一万円近く違ったりするから
確認はしてる。ごく稀にamazon.co.jpが破格になることもあるけど。
haskell関連だと
Computational Oriented Matroids: Equivalence Classes of Matrices within a Natural Framework
Juergen G. Bokowski
をco.jpで2800円で購入してた。他だと1万円超え。いまもco.jpでセールになって5700円で買えるみたい。
なお、haskellの学習にはなんの役にも立たないので、その分野の数学をやりたい場合だけ買ってね。
確認はしてる。ごく稀にamazon.co.jpが破格になることもあるけど。
haskell関連だと
Computational Oriented Matroids: Equivalence Classes of Matrices within a Natural Framework
Juergen G. Bokowski
をco.jpで2800円で購入してた。他だと1万円超え。いまもco.jpでセールになって5700円で買えるみたい。
なお、haskellの学習にはなんの役にも立たないので、その分野の数学をやりたい場合だけ買ってね。
910デフォルトの名無しさん
2018/12/25(火) 22:13:34.24ID:S7Os6UpT >>904
ありがとうございます。
実はそれ、存在は知ってました。
実際インポートできる事も試して知ってます。
ただそのモジュール、base パッケージで公開されていません。
https://www.stackage.org/lts-13.0/package/base-4.12.0.0
これを使うのは、Internal 系モジュールを使うよりもっとヤバくないですか?
ありがとうございます。
実はそれ、存在は知ってました。
実際インポートできる事も試して知ってます。
ただそのモジュール、base パッケージで公開されていません。
https://www.stackage.org/lts-13.0/package/base-4.12.0.0
これを使うのは、Internal 系モジュールを使うよりもっとヤバくないですか?
911デフォルトの名無しさん
2018/12/28(金) 21:37:48.04ID:+Hytqb0t Haskellerって薬漬けのヤベー奴しかいねーのかよwww
http://fumieval.hatenablog.com/entry/2018/12/27/213853
http://fumieval.hatenablog.com/entry/2018/12/27/213853
912デフォルトの名無しさん
2018/12/28(金) 21:49:01.05ID:Wkr1Do53 なんか、Haskellなかなか理解進まない
今は、遅延評価あたりをwebで探して読んでるんだけど、
ここら辺のいい日本語の本無いですか?
キーワードは
遅延評価、サンク、ラムダ式、簡約(出来ればグラフ簡約もあれば)当たりが載ってれば
あとは、コンビネータとかもあるとうれしい
情報系の教科書でも、Haskellの教科書でもどちらも大歓迎
今は、遅延評価あたりをwebで探して読んでるんだけど、
ここら辺のいい日本語の本無いですか?
キーワードは
遅延評価、サンク、ラムダ式、簡約(出来ればグラフ簡約もあれば)当たりが載ってれば
あとは、コンビネータとかもあるとうれしい
情報系の教科書でも、Haskellの教科書でもどちらも大歓迎
>>911
エビリファイなんて飴玉ですよ…
私はセレネース(ハロペリドール)とベゲタミンでなんとか生きています…
https://ameblo.jp/kyupin/entry-10102907726.html
「ベゲタミンAおよびBは神の薬で、あれを思いついた人はたぶん天才だと思う。あれは合剤だから神なのであって、あの成分をバラバラに処方すると、なぜかベゲタミンほどは効かない。まぁいずれにせよ絶妙な組み合わせなのだろう。」
エビリファイなんて飴玉ですよ…
私はセレネース(ハロペリドール)とベゲタミンでなんとか生きています…
https://ameblo.jp/kyupin/entry-10102907726.html
「ベゲタミンAおよびBは神の薬で、あれを思いついた人はたぶん天才だと思う。あれは合剤だから神なのであって、あの成分をバラバラに処方すると、なぜかベゲタミンほどは効かない。まぁいずれにせよ絶妙な組み合わせなのだろう。」
914デフォルトの名無しさん
2018/12/28(金) 23:38:37.19ID:8YrCKoD/ もともとポエマーな感じだったけどガチやん・・・
915デフォルトの名無しさん
2018/12/28(金) 23:49:03.28ID:6JJumxSW >>912
遅延評価実装の仕組みが知りたいと?
遅延評価実装の仕組みが知りたいと?
>>914
これらより強力な薬はいろいろ見聞きする限りではないようですね…
これらより強力な薬はいろいろ見聞きする限りではないようですね…
917デフォルトの名無しさん
2018/12/29(土) 02:03:55.74ID:Btke7xay 何が目的で何がわからないかわからないとググって出てきたページ読めくらいしか言えない
918デフォルトの名無しさん
2018/12/29(土) 05:40:28.14ID:KKd0HoHx この人殺人予告まがいのことしてた人じゃん
919デフォルトの名無しさん
2018/12/29(土) 08:40:48.37ID:+cssvHV/ >>911
この人、技術的にはなんか凄腕っぽくてフォローしてたけど、こんな人だったんか……(困惑)
この人、技術的にはなんか凄腕っぽくてフォローしてたけど、こんな人だったんか……(困惑)
920デフォルトの名無しさん
2018/12/29(土) 10:05:29.13ID:sjBWTUOw 今朝のテレビの天才特集で
西川徹でてたわ pfiのひと
西川徹でてたわ pfiのひと
921デフォルトの名無しさん
2018/12/29(土) 11:49:29.33ID:um1nA50l >>915
うんにゃ 一番知りたいのは レスポンス周り
ちょっと、混乱中なのでうまく書けないんだけど
例えば、サンクってどういうルールで作られるとか どういうルールでつぶされていくのかとか
(単純な四則演算だけど括弧付きがあった場合と 2*2*(3+4)のサンクのの適用法は?最左最外簡約との関係は?)
遅延評価では、必要なところまで評価と書かれているけど、WHNFとそれは一致するのか
(WHNFの中でλ式が出てくるところまでとあるけど、それは式の評価の必要なところなの?)
正直いうと、プリミティブも曖昧なイメージはあるけど、正確には分かっていない。多分組み込み的な型とか演算子、関数だよねw
Webで得られるのは、どうしても断片的な知識になるんで、個々の知識が繋がりづらいのと、
あとはちょっと信頼性が落ちてたりする(初心者には間違いが分かりづらい)
ある程度知識がしっかりしてる人には、内容の真偽を含めそれで十分なのかもしれないけど
うんにゃ 一番知りたいのは レスポンス周り
ちょっと、混乱中なのでうまく書けないんだけど
例えば、サンクってどういうルールで作られるとか どういうルールでつぶされていくのかとか
(単純な四則演算だけど括弧付きがあった場合と 2*2*(3+4)のサンクのの適用法は?最左最外簡約との関係は?)
遅延評価では、必要なところまで評価と書かれているけど、WHNFとそれは一致するのか
(WHNFの中でλ式が出てくるところまでとあるけど、それは式の評価の必要なところなの?)
正直いうと、プリミティブも曖昧なイメージはあるけど、正確には分かっていない。多分組み込み的な型とか演算子、関数だよねw
Webで得られるのは、どうしても断片的な知識になるんで、個々の知識が繋がりづらいのと、
あとはちょっと信頼性が落ちてたりする(初心者には間違いが分かりづらい)
ある程度知識がしっかりしてる人には、内容の真偽を含めそれで十分なのかもしれないけど
>>918
「殺人予告」と「殺人予告まがい」とは違うものですよね…
「殺人予告」と「殺人予告まがい」とは違うものですよね…
923デフォルトの名無しさん
2018/12/29(土) 12:16:13.76ID:UYTJL+lP >>921
SICP読んだ後、言語ごとの構文解析ちゃんと調べればいいんじゃないかな
SICP読んだ後、言語ごとの構文解析ちゃんと調べればいいんじゃないかな
924デフォルトの名無しさん
2018/12/29(土) 12:54:03.27ID:EK4sWEwk >>919
ほんそれ
ほんそれ
925デフォルトの名無しさん
2018/12/29(土) 13:00:10.35ID:um1nA50l >言語ごとの構文解析ちゃんと調べればいいんじゃないかな
構文解析という言葉になじみが無いんですが
Haskellの場合具体的に何をすればいいですか?
(情報系の教育は受けてないんで ただ、これからそっち系を漁ろうとはしているけど)
SICPは多分自分の好物w 読みたい候補に入れとく
構文解析という言葉になじみが無いんですが
Haskellの場合具体的に何をすればいいですか?
(情報系の教育は受けてないんで ただ、これからそっち系を漁ろうとはしているけど)
SICPは多分自分の好物w 読みたい候補に入れとく
926デフォルトの名無しさん
2018/12/29(土) 13:48:17.43ID:0jIQbIRd 形式的なのはhaskell language reportってのがあるけど
ボトム(undefinedとか)の扱いが定義されてるだけでサンクの項目は無いね
ボトムの定義としては評価してみないと区別できないってことだから
これを関数に渡してもエラーにしないって感じで評価方法が規定されてる
ボトム(undefinedとか)の扱いが定義されてるだけでサンクの項目は無いね
ボトムの定義としては評価してみないと区別できないってことだから
これを関数に渡してもエラーにしないって感じで評価方法が規定されてる
927デフォルトの名無しさん
2018/12/29(土) 14:32:03.91ID:Btke7xay 基本的な知識なしに局所的に理解しようとするからわからないんでしょ
数冊テキスト読んでるうちにたいていの疑問は消える
数冊テキスト読んでるうちにたいていの疑問は消える
928デフォルトの名無しさん
2018/12/29(土) 14:51:54.06ID:HTMRsjvp The implementation of functional programming languages
https://www.microsoft.com/en-us/research/wp-content/uploads/1987/01/slpj-book-1987-small.pdf
https://www.microsoft.com/en-us/research/wp-content/uploads/1987/01/slpj-book-1987-small.pdf
929デフォルトの名無しさん
2018/12/29(土) 16:29:44.50ID:um1nA50l930デフォルトの名無しさん
2018/12/29(土) 17:00:23.21ID:e0g6OpD4931デフォルトの名無しさん
2018/12/29(土) 17:36:10.57ID:FOaDygsP 遅延評価は並列処理を学ぶときにちょろっと深くやるくらいな印象
Haskellにおける並列実行 - 純粋関数型魔境 http://amothic.hatenablog.jp/entry/2013/10/09/220004
『Haskellによる並列・並行プログラミング』の中で
この記事の前半部分をもうちょっと詳しく書いてるけど
それでも10ページ未満くらいの分量
Haskellにおける並列実行 - 純粋関数型魔境 http://amothic.hatenablog.jp/entry/2013/10/09/220004
『Haskellによる並列・並行プログラミング』の中で
この記事の前半部分をもうちょっと詳しく書いてるけど
それでも10ページ未満くらいの分量
932デフォルトの名無しさん
2018/12/31(月) 00:40:09.80ID:eNA22sUO 参照カウントを除けばGCのアルゴリズムはみんなメモリ解放を遅延しているという事実
のせいでC++のようなGC無し言語の支持率が異常に高い
のせいでC++のようなGC無し言語の支持率が異常に高い
933デフォルトの名無しさん
2018/12/31(月) 11:19:16.45 GC管轄外領域にROMを作って高速に読み出す機能ができたんですって?
934デフォルトの名無しさん
2018/12/31(月) 20:24:52.37ID:/+DS/TZA >>910
「公開されてないモジュール」というのがあるんだ…
stackageから探せなくて、 GHC.Real のように https://hackage.haskell.org/package/base-4.12.0.0
でリンクなしになってるモジュール。これらは一体どういうものなの? どうやって作る?
外部から使いたいモジュールは、cabal ファイルの exposed-modules セクションに並べる。
テストなどのために外から使いたいが、あまり使って欲しくないものをInternalモジュール配下に。
使用を禁止したいものは exposed-modules から外す。
モジュールの公開はその三択だと思ってた。
「公開されてないモジュール」というのがあるんだ…
stackageから探せなくて、 GHC.Real のように https://hackage.haskell.org/package/base-4.12.0.0
でリンクなしになってるモジュール。これらは一体どういうものなの? どうやって作る?
外部から使いたいモジュールは、cabal ファイルの exposed-modules セクションに並べる。
テストなどのために外から使いたいが、あまり使って欲しくないものをInternalモジュール配下に。
使用を禁止したいものは exposed-modules から外す。
モジュールの公開はその三択だと思ってた。
935 【吉】 【116円】
2019/01/01(火) 00:46:23.00ID:I2U7Qk8Q936デフォルトの名無しさん
2019/01/01(火) 11:32:28.92ID:9+QtWrOm それです
937デフォルトの名無しさん
2019/01/01(火) 17:19:58.78ID:7ZW7L+dS HRR(Haskell relational record)で遊んでるんだけど、
ポスグレのreturning○○に対応したinsert文を生成する機能てないかな?
オートインクリメントある表とかはべたにクエリ書いたほうが楽に感じてしまう
ポスグレのreturning○○に対応したinsert文を生成する機能てないかな?
オートインクリメントある表とかはべたにクエリ書いたほうが楽に感じてしまう
938デフォルトの名無しさん
2019/01/05(土) 19:51:01.28ID:iNZzFN2I Javaでいえばルール付きインターフェイスがHaskellのモナドという理解でOK?
実装時インターフェイスよりちょっと守るべきルールと性質が多いのがモナド。
型はJavaでいえば複数のインターフェイスを継承できる感じでいいですか?
実装時インターフェイスよりちょっと守るべきルールと性質が多いのがモナド。
型はJavaでいえば複数のインターフェイスを継承できる感じでいいですか?
939デフォルトの名無しさん
2019/01/05(土) 20:04:34.05ID:KrQndHog モナドは単なる自己関手の圏におけるモノイド対象だよ。
940デフォルトの名無しさん
2019/01/05(土) 22:45:17.04 モナドは単なる自己関手の圏におけるモノイド対象だよおじさん「モナドは単なる自己関手の圏におけるモノイド対象だよ」
941デフォルトの名無しさん
2019/01/06(日) 00:04:04.86ID:13gMXODg Javaのクラスやインターフェイスは
メソッドの定義を変えられるがメソッドの型は変わらない
例えばObjectクラスのメソッドの定義を変えてもメソッドの型が変わらないので
型チェックが甘い
Haskellのクラスはメソッドの型も変わる
メソッドの定義を変えられるがメソッドの型は変わらない
例えばObjectクラスのメソッドの定義を変えてもメソッドの型が変わらないので
型チェックが甘い
Haskellのクラスはメソッドの型も変わる
942デフォルトの名無しさん
2019/01/06(日) 09:16:44.99ID:7U4qFACZ943デフォルトの名無しさん
2019/01/06(日) 20:47:40.51ID:8Nv8H8lo 「where」の日本語読みに関してだけど
「左記の名前(モジュール名/クラス名/インスタンス名/関数名)が
示す物の中では以下の定義が行われています。」
て言う読み方でいいの?
英語の関係福祉 where の「〜する所の」と同じ意味でいいのかどうか。
「左記の名前(モジュール名/クラス名/インスタンス名/関数名)が
示す物の中では以下の定義が行われています。」
て言う読み方でいいの?
英語の関係福祉 where の「〜する所の」と同じ意味でいいのかどうか。
944デフォルトの名無しさん
2019/01/06(日) 21:59:18.26ID:RK31I1jj 右な左。
945デフォルトの名無しさん
2019/01/07(月) 06:30:03.04ID:Tzw/TAIJ >>943
haskell の where は数学の教科書なんかに同じ使い方で普通に出てくる。
というか、haskell が数学から借りてきた。
難しく考えないで、自然に
f = g x where x = ...
f は g x と定義される。
「なお、ここで x は ... である」
みたいに読めばいい。
haskell の where は数学の教科書なんかに同じ使い方で普通に出てくる。
というか、haskell が数学から借りてきた。
難しく考えないで、自然に
f = g x where x = ...
f は g x と定義される。
「なお、ここで x は ... である」
みたいに読めばいい。
946デフォルトの名無しさん
2019/01/07(月) 14:03:18.35 ん? x の定義は where?となるから先回りして where と書いてる
947デフォルトの名無しさん
2019/01/08(火) 00:20:15.62ID:t9mDJmjK 数学の教科書・・?
948デフォルトの名無しさん
2019/01/08(火) 11:30:51.32ID:GKZx39y6 SQLか
949デフォルトの名無しさん
2019/01/08(火) 11:56:51.91ID:ZgpKo6ms >>947
ごめん、何が ? なのか分からないんだが。
ぼかさず具体的に質問してくれると助かる。
教科書とか参考書とか読み物とかでよく見るよ。
例えば、Haskell に関係ありそうなのだと、
Steve Awodey 著 Category Theory Second Edition の 15~16 ページ目とか。
-----[ 引用 ]-----
The arrow category C-> of a category C has the arrows of C as objects,
and an arrow g from f : A -> B to f' : A' -> B' in C-> is a "commutative square"
(ここに図があり、g1 と g2 が出てくる)
where g1 and g2 are arrows in C.
-----
ごめん、何が ? なのか分からないんだが。
ぼかさず具体的に質問してくれると助かる。
教科書とか参考書とか読み物とかでよく見るよ。
例えば、Haskell に関係ありそうなのだと、
Steve Awodey 著 Category Theory Second Edition の 15~16 ページ目とか。
-----[ 引用 ]-----
The arrow category C-> of a category C has the arrows of C as objects,
and an arrow g from f : A -> B to f' : A' -> B' in C-> is a "commutative square"
(ここに図があり、g1 と g2 が出てくる)
where g1 and g2 are arrows in C.
-----
950デフォルトの名無しさん
2019/01/09(水) 03:54:07.58ID:bacokaDQ フォルダの中身を列挙再帰するのって1回で1階層しか見れなくてIOモナドぶっかけられるから
1関数の中のwhereの中で回すしかない感じですかね?
1関数の中のwhereの中で回すしかない感じですかね?
951デフォルトの名無しさん
2019/01/09(水) 06:47:34.41ID:SOqsE/HW 数学の教科書「関数の中・・?・・スコープ・・?」
952デフォルトの名無しさん
2019/01/09(水) 16:57:29.61 数学は無限に高速なCPU、無限に使えるメモリを前提として処理を議論する
953デフォルトの名無しさん
2019/01/09(水) 19:12:59.65ID:Me/cgKlM なんだ高卒か
954デフォルトの名無しさん
2019/01/09(水) 19:19:36.45ID:vBKfOHsm 時間を考慮に入れないなら高速である必要すらない
956デフォルトの名無しさん
2019/01/14(月) 01:01:35.99ID:oPHKHfrN 944は心理か何かか?俺には理解出来んw
957デフォルトの名無しさん
2019/01/14(月) 10:58:12.74ID:hZswZX0S >>950
質問の意味がよく分からないが、
where じゃなくても、自分自身を再帰的に呼べばいいのでは?
directories :: FilePath -> [FilePath]
という型の関数を定義して、その中で、
1. 引数で渡されたパス内のコンテンツを列挙
2. そのうち、ディレクトリであるものを抽出
3. それらに directories 関数を適用
4. 1 と 3 の結果を結合して return
これじゃダメ?
質問の意味がよく分からないが、
where じゃなくても、自分自身を再帰的に呼べばいいのでは?
directories :: FilePath -> [FilePath]
という型の関数を定義して、その中で、
1. 引数で渡されたパス内のコンテンツを列挙
2. そのうち、ディレクトリであるものを抽出
3. それらに directories 関数を適用
4. 1 と 3 の結果を結合して return
これじゃダメ?
958デフォルトの名無しさん
2019/01/14(月) 14:48:46.72ID:hZswZX0S959デフォルトの名無しさん
2019/01/14(月) 16:11:26.66ID:tN6VIVTj -- ほげ :: FilePath -> IO (Bool, [FilePath])
(d, paths) <- ほげ path
if d then foldr (>>) (return ()) $ map 再帰 paths
else ふが
(d, paths) <- ほげ path
if d then foldr (>>) (return ()) $ map 再帰 paths
else ふが
960デフォルトの名無しさん
2019/01/15(火) 19:39:53.51ID:bDKJ3jpf ディープラーニング用ライブラリ grenade を使ってみようと思いましたが、
依存関係のせいで stack でパッケージをインストールできず困っています。
grenade は stackage には無いので stack プロジェクトの stack.yaml ファイルに
必要なパッケージを書き加えました。
extra-deps:
- grenade-0.1.0
- containers-0.5.11.0
- exceptions-0.8.3
- hmatrix-0.18.2.0
- singletons-2.2
- th-desugar-1.6
- template-haskell-2.11.1.0
しかし依存関係が解消されません。
template-haskell が問題を起こしているようです。
exceptions-0.8.3 が template-haskell の >=2.2 && <2.14 を必要とし、
th-desugar-1.6 が同じ template-haskell の <2.12 を必要としています。
よって、template-haskell-2.11.1.0 は両方の条件を満たすと思うのですが、依存関係のエラーが出ます。
しかも、なぜか template-haskell-2.13.0.0 を extra-deps に加えろと推奨されます。
試しに template-haskell-2.13.0.0 を extra-deps に記述してみましたが、
2.11.1.0 の時と全く同じエラーが出ます。
(相変わらず 2.13.0.0 を追加しろと推奨されます)
何が問題なのでしょうか?
stack のバージョンは 1.7.1 です。
依存関係のせいで stack でパッケージをインストールできず困っています。
grenade は stackage には無いので stack プロジェクトの stack.yaml ファイルに
必要なパッケージを書き加えました。
extra-deps:
- grenade-0.1.0
- containers-0.5.11.0
- exceptions-0.8.3
- hmatrix-0.18.2.0
- singletons-2.2
- th-desugar-1.6
- template-haskell-2.11.1.0
しかし依存関係が解消されません。
template-haskell が問題を起こしているようです。
exceptions-0.8.3 が template-haskell の >=2.2 && <2.14 を必要とし、
th-desugar-1.6 が同じ template-haskell の <2.12 を必要としています。
よって、template-haskell-2.11.1.0 は両方の条件を満たすと思うのですが、依存関係のエラーが出ます。
しかも、なぜか template-haskell-2.13.0.0 を extra-deps に加えろと推奨されます。
試しに template-haskell-2.13.0.0 を extra-deps に記述してみましたが、
2.11.1.0 の時と全く同じエラーが出ます。
(相変わらず 2.13.0.0 を追加しろと推奨されます)
何が問題なのでしょうか?
stack のバージョンは 1.7.1 です。
961デフォルトの名無しさん
2019/01/15(火) 19:48:20.12ID:URfldHzA ディープラーニングにHaskellを使おうとしていることが問題
962デフォルトの名無しさん
2019/01/15(火) 23:33:41.05ID:fNWkI4iJ >>960
>>=2.2 && <2.14
>>=2.2 && <2.14
963デフォルトの名無しさん
2019/01/16(水) 00:57:57.45ID:Rf1WUy5G >>960
stack.yaml で指定している resolver のバージョンはいくつ?
自分は stack が 1.9.3 で resolver: lts-12.26 で試してみたが、
template-haskell-2.13.0.0 from stack configuration does not match...
というエラーが出た。 lts-12.26 が 2.13.0.0 を要求しているためのようだ。
それで resolver を、2.11.1.0 を要求する lts-9.21 に落としてやってみたら依存の解決はできた。
(その後にリンクエラーになってしまったがこれは別の問題だと思う…https://github.com/commercialhaskell/stack/issues/3487 と同じっぽい)
stack.yaml で指定している resolver のバージョンはいくつ?
自分は stack が 1.9.3 で resolver: lts-12.26 で試してみたが、
template-haskell-2.13.0.0 from stack configuration does not match...
というエラーが出た。 lts-12.26 が 2.13.0.0 を要求しているためのようだ。
それで resolver を、2.11.1.0 を要求する lts-9.21 に落としてやってみたら依存の解決はできた。
(その後にリンクエラーになってしまったがこれは別の問題だと思う…https://github.com/commercialhaskell/stack/issues/3487 と同じっぽい)
964デフォルトの名無しさん
2019/01/16(水) 17:48:25.37ID:f7x8T+kZ >>962
ごめんなさい、何を指摘されているのか分かりませんでした。
>>963
私は lts-13.3 でやっていました。
指摘通り 9.21 でやってみたところ、問題なくビルドできました。
grenade の githab にある example も動きました。
( 言い忘れていましたが OS は archlimux です)
また、指摘から hackage ではなく githab から grenade のプロジェクトをクローンし、
最新の lts-13.3 でビルドしてみる事を思いつきました。
試したら、こちらも問題なくできました。
想定されてる ghc のバージョンが違うのでそのままではコンパイルエラーが出ますが、
ソースを多少改変したら動きました。
お陰様で作業を進められそうです。
ありがとうございました。
ごめんなさい、何を指摘されているのか分かりませんでした。
>>963
私は lts-13.3 でやっていました。
指摘通り 9.21 でやってみたところ、問題なくビルドできました。
grenade の githab にある example も動きました。
( 言い忘れていましたが OS は archlimux です)
また、指摘から hackage ではなく githab から grenade のプロジェクトをクローンし、
最新の lts-13.3 でビルドしてみる事を思いつきました。
試したら、こちらも問題なくできました。
想定されてる ghc のバージョンが違うのでそのままではコンパイルエラーが出ますが、
ソースを多少改変したら動きました。
お陰様で作業を進められそうです。
ありがとうございました。
965デフォルトの名無しさん
2019/01/17(木) 21:37:06.39ID:R/7pNsew cabal new-ナントカ
を日本語で解説してほしい
を日本語で解説してほしい
966デフォルトの名無しさん
2019/01/19(土) 10:09:04.13ID:XQ+5XzTr >>961
> ディープラーニングにHaskellを使おうとしていることが問題
>>960 です。
いや、実用を考えているわけではないです。
haskell 大好きなので、以前 python でやったことを haskell でもできないかと。
ただの遊びです。
ただ、実際 haskell で CartPole が上手くいった画面を見ると感動しました。
物理演算も haskell ライブラリなので python の gym とは違いますが。
(gym-http-api パッケージがなぜか動かないので)
使った主なパッケージは、
学習用
apecs
apecs-physics
grenade
確認用 (アニメーション)
apecs
apecs-gloss
gloss
です。
あとは細々としたものを幾つか。
> ディープラーニングにHaskellを使おうとしていることが問題
>>960 です。
いや、実用を考えているわけではないです。
haskell 大好きなので、以前 python でやったことを haskell でもできないかと。
ただの遊びです。
ただ、実際 haskell で CartPole が上手くいった画面を見ると感動しました。
物理演算も haskell ライブラリなので python の gym とは違いますが。
(gym-http-api パッケージがなぜか動かないので)
使った主なパッケージは、
学習用
apecs
apecs-physics
grenade
確認用 (アニメーション)
apecs
apecs-gloss
gloss
です。
あとは細々としたものを幾つか。
967sage
2019/01/19(土) 21:02:03.11ID:K21HdJ2L Haskellの「->」という記号の読み方はありますか?
他のプログラミング言語だと「->」には「アロー演算子」という名前が付けられていますが、Haskellの場合は何という名前なのでしょうか?
他のプログラミング言語だと「->」には「アロー演算子」という名前が付けられていますが、Haskellの場合は何という名前なのでしょうか?
968デフォルトの名無しさん
2019/01/19(土) 22:34:36.32ID:nurYb0Ef969デフォルトの名無しさん
2019/01/20(日) 14:28:23.05ID:J4e1TPCS data T = D { f :: Int -> Int }
という型があったら、関数 f の実際の型は T -> Int -> Int だよね。
で、この関数 f の中で、引数として渡されたT 型の値にアクセスする方法って無いかな?
g :: T -> Int -> Int って型の関数を作っても、
D { f = g } なんてできないよね。
h :: Int -> Int なら D { f = h } はできる。
という型があったら、関数 f の実際の型は T -> Int -> Int だよね。
で、この関数 f の中で、引数として渡されたT 型の値にアクセスする方法って無いかな?
g :: T -> Int -> Int って型の関数を作っても、
D { f = g } なんてできないよね。
h :: Int -> Int なら D { f = h } はできる。
970デフォルトの名無しさん
2019/01/20(日) 19:41:43.18ID:xPUxeMcd data D = D { f :: Int -> Int, x :: Int }
g d y = x d + y
d = D { f = g d, x = 1 }
f d 1 == 2
とか?
g d y = x d + y
d = D { f = g d, x = 1 }
f d 1 == 2
とか?
971デフォルトの名無しさん
2019/01/21(月) 21:42:26.44ID:xU0cTMEl GHC(Haskell)の上流リポジトリ等がGitLabに移行しました 2019年01月20日
https://qiita.com/takenobu-hs/items/a2eeb327088bb1d2fe77
https://qiita.com/takenobu-hs/items/a2eeb327088bb1d2fe77
972デフォルトの名無しさん
2019/01/22(火) 18:35:04.27ID:Lbcg1DYs973デフォルトの名無しさん
2019/01/23(水) 00:07:49.58ID:UhkibQh6 既出かも知れませんが
「 木 (tree) 」の読み方について質問です。
化学では「塩」をシオではなくエンと読む様に
「 木 」もモクやボクと読むのか
訓読みでキと読むのか確認したいです。
「 木 (tree) 」の読み方について質問です。
化学では「塩」をシオではなくエンと読む様に
「 木 」もモクやボクと読むのか
訓読みでキと読むのか確認したいです。
974デフォルトの名無しさん
2019/01/23(水) 00:12:29.03ID:e48tmJNP >>973
き
https://ja.wikipedia.org/wiki/%E6%9C%A8%E6%A7%8B%E9%80%A0_(%E3%83%87%E3%83%BC%E3%82%BF%E6%A7%8B%E9%80%A0)
https://ja.wikipedia.org/wiki/%E6%9C%A8_(%E6%95%B0%E5%AD%A6)
き
https://ja.wikipedia.org/wiki/%E6%9C%A8%E6%A7%8B%E9%80%A0_(%E3%83%87%E3%83%BC%E3%82%BF%E6%A7%8B%E9%80%A0)
https://ja.wikipedia.org/wiki/%E6%9C%A8_(%E6%95%B0%E5%AD%A6)
975デフォルトの名無しさん
2019/01/23(水) 00:18:53.14ID:UhkibQh6976デフォルトの名無しさん
2019/01/23(水) 00:19:35.51ID:Ysgk2cll その質問は既出じゃないと思う
977デフォルトの名無しさん
2019/01/23(水) 00:27:46.89ID:UhkibQh6 そうでしたか。
しかし良く考えてみたら
薔薇木(ばらぼく)って同性愛雑誌みたいでした。
しかし良く考えてみたら
薔薇木(ばらぼく)って同性愛雑誌みたいでした。
978デフォルトの名無しさん
2019/01/23(水) 12:32:21.82ID:8dbvKkbn 薔薇刑 ← 読めない
979デフォルトの名無しさん
2019/01/23(水) 15:57:01.39ID:I7vJASel 葉は
枝えだ
木き
根ね
枝えだ
木き
根ね
980デフォルトの名無しさん
2019/01/23(水) 16:07:41.36ID:OFN8YGgg 男根おとこね
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… [BFU★]
- 高市早苗首相。財務省の経済対策草案を「しょぼすぎる」と一刀両断し自らテコ入れ [バイト歴50年★]
- 立憲・野田代表が主張 台湾有事答弁で「質問者批判は筋違い」「答弁がおかしい」「高市総理迎合のネット世論は危険」★4 [♪♪♪★]
- 日中関係悪化で「日本からもうすぐパンダがいなくなる」 中国SNSでトレンド1位に★2 [♪♪♪★]
- 【音楽】石川ひとみ「まちぶせ」はストーカーか 衆院委で質問 [膳摩漏★]
- 【🍝】「偽カルボナーラ」にイタリア激怒、パンチェッタの使用は「犯罪」と非難 ★3 [Ailuropoda melanoleuca★]
- 【速報】高市早苗「答弁撤回はしない」経済制裁へ★2 [931948549]
- 【実況】白銀ノエルと博衣こよりのえちえちパワフルプロ野球
- 【んな専🏡】ルーナイトたち~1週間お疲れ様なのらぁ~(・o・🍬)🏰
- おさかなさんあつまれえ🐟˜˷
- イギリス、軍需企業スターク社の新たな攻撃用ドローン工場を国内に開設へ [706581883]
- 【悲報】高市答弁、誤解だった [834922174]
