関数型プログラミング言語 Haskell について語るスレです。
haskell.org (公式サイト)
https://www.haskell.org/
日本Haskellユーザーグループ
https://haskell.jp/
前スレ
関数型プログラミング言語Haskell Part31
https://mevius.5ch.net/test/read.cgi/tech/1506447188/
探検
関数型プログラミング言語Haskell Part32
レス数が900を超えています。1000を超えると表示できなくなるよ。
2019/01/29(火) 09:05:47.90ID:gJP/u7IJ
824デフォルトの名無しさん
2019/12/02(月) 19:35:22.17ID:+Z2AJKW1 もうよElixirやろうぜElixir
Haskellに近いコーディングパターンマッチングも出来るし
もう、色々ユルユル
非同期マルチスレッドプログラムで受け手がないのにメッセージ送り捲れる(メール形式なので)
割り当てメモリーを使い切るとエラーで止まるけど(メールボックス満杯)
もう、ユルで目からウロコ
Haskellに近いコーディングパターンマッチングも出来るし
もう、色々ユルユル
非同期マルチスレッドプログラムで受け手がないのにメッセージ送り捲れる(メール形式なので)
割り当てメモリーを使い切るとエラーで止まるけど(メールボックス満杯)
もう、ユルで目からウロコ
825デフォルトの名無しさん
2019/12/02(月) 19:39:36.79ID:6AEGHd3a メールボックスがオーバーフローしない証明しながらコーディングするんすか?
826デフォルトの名無しさん
2019/12/02(月) 20:11:00.44ID:+Z2AJKW1 メールボックスだから受け手のプログラムも起動して非同期でメッセージを受け取って
メールボックスから消せばOk.
通常はメッセージの送り手スレッドがメールボックスの空き待ちになるだろ
メールボックス管理は独立したスレッドで動くんじゃね?
とにかくユルイ
僕でも出来たヽ(^o^)丿な感じ
メールボックスから消せばOk.
通常はメッセージの送り手スレッドがメールボックスの空き待ちになるだろ
メールボックス管理は独立したスレッドで動くんじゃね?
とにかくユルイ
僕でも出来たヽ(^o^)丿な感じ
827デフォルトの名無しさん
2019/12/02(月) 20:42:42.47ID:Y5cjsI9c >>822
完全性定理でググレカス。
完全性定理でググレカス。
828デフォルトの名無しさん
2019/12/06(金) 04:46:46.01ID:Nw0PFMDP 話題は?
829デフォルトの名無しさん
2019/12/07(土) 00:50:28.71ID:mKAqVLXw Nothing
830デフォルトの名無しさん
2019/12/07(土) 02:10:24.53ID:nHnMq71L ライブラリーのソースコードをレビューしてるWebサイトってありますか?
この書き方は秀逸だとか、これは泥臭いとか
バージョンアップでのコードの進化を追ったり
英語でも全く構わないのですが
この書き方は秀逸だとか、これは泥臭いとか
バージョンアップでのコードの進化を追ったり
英語でも全く構わないのですが
831デフォルトの名無しさん
2019/12/07(土) 04:27:22.19ID:AZmQeN3A Windows 10 64bit 上で FFI (ccall) 使って Haskell の関数を呼び出してて
呼ぶ前に hs_init() が必要なのは,なんとなくわかるんだけど
hs_exit() の方は,そのあとアプリケーション全体がすぐ終了する場合は
呼ばなくてもいい?
Windows が呼び出し元のプロセスも Haskell ランタイムも開放してくれるよね
hs_exit() 呼ばなくても。たぶん
この辺,わかる人いますか
呼ぶ前に hs_init() が必要なのは,なんとなくわかるんだけど
hs_exit() の方は,そのあとアプリケーション全体がすぐ終了する場合は
呼ばなくてもいい?
Windows が呼び出し元のプロセスも Haskell ランタイムも開放してくれるよね
hs_exit() 呼ばなくても。たぶん
この辺,わかる人いますか
832デフォルトの名無しさん
2019/12/07(土) 12:36:43.68ID:ZsYnLuoj プロセス切り離せば?
そうでもしないと他言語呼び出しなんて低レイヤーデバッグする覚悟ないとやってられんぞ。
そうでもしないと他言語呼び出しなんて低レイヤーデバッグする覚悟ないとやってられんぞ。
833デフォルトの名無しさん
2019/12/07(土) 20:22:19.70ID:JHE2lozm やってられない理由は低級言語でもHaskellでもなくGHC
Haskell実装はGHC以外にもいくらでもありえるから
Haskell実装はGHC以外にもいくらでもありえるから
834デフォルトの名無しさん
2019/12/07(土) 21:02:46.11ID:KFm7FNER Haskellでスマホアプリ作りたいの!
835831
2019/12/08(日) 05:30:16.98ID:9cPQrEyK836デフォルトの名無しさん
2019/12/10(火) 15:02:27.60ID:6qyfceqR 計算のキャッシュをしたい。
ある重い計算 heavy :: IO Char があってそれを f,g :: IO () から呼び出す。
一度 heavy が呼び出されて Char が返ってきた後はそれを使いまわしたい。
f で呼び出したなら、その結果の Char を g でも使う。
ただし heavy の実行は f,g のどちらかが呼ばれるまではしたくない。
cachedHeavy = unsafePerformIO heavy
とすれば cachedHeavy が利用されたときに一度だけ簡約がおこなわれて、
その時だけ heavy が実行されるので、これを使えば事は足りる。
でもなるべく unsafe は使いたくない。どうすればいいでしょうか。
ある重い計算 heavy :: IO Char があってそれを f,g :: IO () から呼び出す。
一度 heavy が呼び出されて Char が返ってきた後はそれを使いまわしたい。
f で呼び出したなら、その結果の Char を g でも使う。
ただし heavy の実行は f,g のどちらかが呼ばれるまではしたくない。
cachedHeavy = unsafePerformIO heavy
とすれば cachedHeavy が利用されたときに一度だけ簡約がおこなわれて、
その時だけ heavy が実行されるので、これを使えば事は足りる。
でもなるべく unsafe は使いたくない。どうすればいいでしょうか。
837デフォルトの名無しさん
2019/12/10(火) 15:23:28.41ID:hI+yeapE 何もしなくても最適化で一回しか使われなくなるんじゃないの
haskellはそんなに馬鹿なの?
haskellはそんなに馬鹿なの?
838デフォルトの名無しさん
2019/12/10(火) 15:23:58.32ID:48kVELqA memcached
839デフォルトの名無しさん
2019/12/10(火) 17:01:00.59ID:6qyfceqR840デフォルトの名無しさん
2019/12/11(水) 22:52:31.45ID:r4LYbsNN -- cached :: IO a -> IO (IO a)
main = cached heavy >>= \ cachedHeavy -> 云々
こういうのでいいならunsafePerformIOは不要
main = cached heavy >>= \ cachedHeavy -> 云々
こういうのでいいならunsafePerformIOは不要
841デフォルトの名無しさん
2019/12/12(木) 11:38:57.75ID:y6+ig4ik >>840
はい。 f,g はトップレベルではなくIOアクションの中で定義しても大丈夫です。
IORefを使わなきゃ無理かな、と思ってたんだけど、これは目から鱗でした。
cached = pure
でいいんだよね?単にモナド一枚かぶせるだけで計算のキャッシュになるなんて、
今年一番のオドロキですわ
はい。 f,g はトップレベルではなくIOアクションの中で定義しても大丈夫です。
IORefを使わなきゃ無理かな、と思ってたんだけど、これは目から鱗でした。
cached = pure
でいいんだよね?単にモナド一枚かぶせるだけで計算のキャッシュになるなんて、
今年一番のオドロキですわ
842デフォルトの名無しさん
2019/12/12(木) 13:37:02.84ID:9RMznkJC843デフォルトの名無しさん
2019/12/12(木) 15:32:55.96ID:y6+ig4ik844デフォルトの名無しさん
2019/12/12(木) 15:46:44.83ID:y6+ig4ik つまり… こんな感じでいいのかしら
cached :: IO a -> IO (IO a)
cached f = do
r <- newIORef Nothing
pure $ do
c <- readIORef r
case c of
Nothing -> do
ts <- f
modifyIORef r . const . Just $ ts
pure ts
Just ts -> pure ts
> x <- cached $ print "heavy" >> pure 42
> x
"heavy"
42
> x
42
cached :: IO a -> IO (IO a)
cached f = do
r <- newIORef Nothing
pure $ do
c <- readIORef r
case c of
Nothing -> do
ts <- f
modifyIORef r . const . Just $ ts
pure ts
Just ts -> pure ts
> x <- cached $ print "heavy" >> pure 42
> x
"heavy"
42
> x
42
845デフォルトの名無しさん
2019/12/13(金) 00:08:15.85ID:0IkxZSMD IORefをご存知でない?
846デフォルトの名無しさん
2019/12/13(金) 11:45:01.85ID:Zghtw6X7 >>845
間違っているところがあったら、具体的に教えていただきたい。
間違っているところがあったら、具体的に教えていただきたい。
847デフォルトの名無しさん
2019/12/14(土) 10:44:10.58ID:EaJih9JU cabalファイルの中でexectableで同じcabalファイルの
ライブラリー名をbuild-dependsにかいてあるのに
そのライブラリーのbuild-depensを全部書かないとコンパイルできない
のはなんで?テンプレート使ってるからとかある?
ライブラリー名をbuild-dependsにかいてあるのに
そのライブラリーのbuild-depensを全部書かないとコンパイルできない
のはなんで?テンプレート使ってるからとかある?
848デフォルトの名無しさん
2019/12/14(土) 14:55:50.10ID:EaJih9JU ソースディレクトリをexeとlibに別々にしたら直った
なんだこのバグは酷いバグだ
なんだこのバグは酷いバグだ
849デフォルトの名無しさん
2019/12/16(月) 18:39:37.82ID:fwNQkg00 岡部健 (Ken Okabe)今度はQuoraでもアカウントBANされる
https://link.medium.com/EX3Y4COIs2
https://link.medium.com/EX3Y4COIs2
850デフォルトの名無しさん
2019/12/16(月) 19:25:09.38 終わったコンテンツでしょ、彼はもう
851デフォルトの名無しさん
2019/12/17(火) 00:03:50.44ID:3VYtFLTP オワコン。人間もっとやることある
852デフォルトの名無しさん
2019/12/17(火) 08:07:51.17ID:hHVSxQ9g キャッシュ? https://wandbox.org/permlink/98ZKnQW0uSr5c5CV
f () = print "hoge" >> getLine >>= \x -> print "foo" >> return (\() -> x)
main = do
putStrLn "1234"
f () >>= \g -> do
let e = g ()
print e
print e
f () = print "hoge" >> getLine >>= \x -> print "foo" >> return (\() -> x)
main = do
putStrLn "1234"
f () >>= \g -> do
let e = g ()
print e
print e
853836
2019/12/17(火) 15:16:27.15ID:zdxsmCDQ854デフォルトの名無しさん
2019/12/17(火) 22:59:40.32ID:nTHXuzTI そもそもライブラリを全てimportする奴はいないので
使わなかったライブラリのコードは最後まで実行されない
全てのライブラリについて使うか使わないか予測できないならば実行の順序は予測できない
使わなかったライブラリのコードは最後まで実行されない
全てのライブラリについて使うか使わないか予測できないならば実行の順序は予測できない
855デフォルトの名無しさん
2019/12/18(水) 00:29:20.63ID:RN3F5ybK856デフォルトの名無しさん
2019/12/18(水) 09:15:25.20ID:fJHQ6oEy え、岡部健ってQuoraで暴れてたの?
アカウント停止はまた癇癪起こして名誉毀損してたとかが理由??
アカウント停止はまた癇癪起こして名誉毀損してたとかが理由??
857デフォルトの名無しさん
2019/12/18(水) 11:17:26.49ID:RrfoIO3F >>856
彼がなにかしらのコミュニティーでうまくやっていけないのは、これまでの活動からわかりきっている。
むしろ、Quoraではよく持った方だと思うよ。お薬をきちんと服用するようになってるんだろうね。
彼がなにかしらのコミュニティーでうまくやっていけないのは、これまでの活動からわかりきっている。
むしろ、Quoraではよく持った方だと思うよ。お薬をきちんと服用するようになってるんだろうね。
858デフォルトの名無しさん
2019/12/18(水) 14:06:51.57ID:eMsBbOWH あいつか
859デフォルトの名無しさん
2019/12/19(木) 00:31:57.76ID:MqZ434Qi haskell自体はいいんだけどstackとかhieとかいちいちでかくてめんどくさい
本当にhaskell書いてる人はいるの?
本当にhaskell書いてる人はいるの?
860デフォルトの名無しさん
2019/12/19(木) 07:07:47.77ID:lwXrm8Zb 依存関係を管理するのは理想
依存関係を消すのが現実
C++やSTLに依存することすら嫌ってCだけで書くみたいな現実
依存関係を消すのが現実
C++やSTLに依存することすら嫌ってCだけで書くみたいな現実
861デフォルトの名無しさん
2019/12/19(木) 07:48:35.49ID:gwJfRXBJ hieはもうちょっとなんとかならんのかとは思う
862デフォルトの名無しさん
2019/12/19(木) 10:21:19.22ID:+cpLTGtZ >>860
Rubyをdisるのは止めれ
Rubyをdisるのは止めれ
863デフォルトの名無しさん
2019/12/19(木) 14:13:07.54ID:rbd8D3sc 実際にHaskellでコード書いてみると分かるけど
コンパイル通れば計算結果は確かに正しいんだけど
巨大なメモリを謎に使うようなバグが混入する事が結構あって
その種類のバグってエラー吐かないから特定がめっちゃ難しい。
巨大なプロジェクトでHaskell使うのは現実的には無理だと思う。
コンパイル通れば計算結果は確かに正しいんだけど
巨大なメモリを謎に使うようなバグが混入する事が結構あって
その種類のバグってエラー吐かないから特定がめっちゃ難しい。
巨大なプロジェクトでHaskell使うのは現実的には無理だと思う。
864デフォルトの名無しさん
2019/12/19(木) 14:32:39.93ID:0ocPbHfL それ
haskell で書かれたプログラムのパフォーマンスチューニングむずすぎる
haskell で書かれたプログラムのパフォーマンスチューニングむずすぎる
865デフォルトの名無しさん
2019/12/19(木) 14:54:58.39 あればあるだけ使おうとするんでない?
足りなくなってからようやく(これからやる処理に必要最低限の)ガベコレ
この繰り返しだから永遠に自転車操業
足りなくなってからようやく(これからやる処理に必要最低限の)ガベコレ
この繰り返しだから永遠に自転車操業
866デフォルトの名無しさん
2019/12/19(木) 19:09:11.03ID:rbd8D3sc この種のバグの混入原因って大抵の場合
ネットに散らばっている'Haskellらしい'記法にあったりするから
初心者の頃に読んだ書き方が
「(実はこの人全然Haskellでコード書いてないじゃんっ!!)」
と気が付くまでワンセット
ネット上だと処理が大きくなると破綻するようなサンプルコードばっかりでウンザリする
特に遅延評価を活用するような記法は
大抵メモリ関連のバグの原因になるから実際には避けなきゃダメなのばかり
ネットに散らばっている'Haskellらしい'記法にあったりするから
初心者の頃に読んだ書き方が
「(実はこの人全然Haskellでコード書いてないじゃんっ!!)」
と気が付くまでワンセット
ネット上だと処理が大きくなると破綻するようなサンプルコードばっかりでウンザリする
特に遅延評価を活用するような記法は
大抵メモリ関連のバグの原因になるから実際には避けなきゃダメなのばかり
867デフォルトの名無しさん
2019/12/19(木) 20:23:04.10ID:l1p3Y60G デフォルトの挙動性格評価にするやつあったよね
あれ使ってる?
あれ使ってる?
868デフォルトの名無しさん
2019/12/19(木) 20:49:23.97ID:lwXrm8Zb ガベコレ言語を全否定してみるのも一つの方法
たとえばスマホが壊れたら全部新品にするかそれとも壊れた部品を特定してそこだけ修理するか
たとえばスマホが壊れたら全部新品にするかそれとも壊れた部品を特定してそこだけ修理するか
869デフォルトの名無しさん
2019/12/19(木) 20:50:47.99ID:mvsIV7PX 結局最適化しようとするとコンパイラのくせをしっかり理解してたり
凄まじい技術力がいるという。。
凄まじい技術力がいるという。。
870デフォルトの名無しさん
2019/12/19(木) 23:44:31.80 つまり Rust の時代か
871デフォルトの名無しさん
2019/12/20(金) 10:00:27.91ID:lm7vpsLR Rustってhaskellerにも結構評判いいけどどうなの
872デフォルトの名無しさん
2019/12/20(金) 11:16:14.21ID:MYxSal4F >>871
俺は「あぁ,Haskell でいうアレね」みたいな感じで学べた
厳密な感じが好きなら,気にいるんじゃないのかな
ドキュメントも揃っていて学びやすいと思う
ただ,俺はいまいち使い所を見いだせてない
Haskell で書ける分野なら Haskell で書いちゃうし
ちょっとしたツールとかサーバーサイドとかは Go のが楽だし
WebAssembly を生成するために使うのが
今一番,Rust の活きる分野な気がする
Rust は,クロスコンパイルが楽なので
(個人の感想です
俺は「あぁ,Haskell でいうアレね」みたいな感じで学べた
厳密な感じが好きなら,気にいるんじゃないのかな
ドキュメントも揃っていて学びやすいと思う
ただ,俺はいまいち使い所を見いだせてない
Haskell で書ける分野なら Haskell で書いちゃうし
ちょっとしたツールとかサーバーサイドとかは Go のが楽だし
WebAssembly を生成するために使うのが
今一番,Rust の活きる分野な気がする
Rust は,クロスコンパイルが楽なので
(個人の感想です
873デフォルトの名無しさん
2019/12/20(金) 11:25:55.75ID:mQBHONqp >>871
ただのLisp方言やML方言はもう飽きたってことだろ
ただのLisp方言やML方言はもう飽きたってことだろ
874デフォルトの名無しさん
2019/12/20(金) 12:03:56.77ID:tZwYgFV3 「C言語は純粋関数型」と言ってたのってQuoraの岡部健?
875デフォルトの名無しさん
2019/12/20(金) 21:36:07.96ID:/W4lQx2e フロントをrustで書くとか一番馬鹿な選択だろ。話にならん。
876デフォルトの名無しさん
2019/12/23(月) 17:59:43.65ID:/flai8cL もしかしてParsecってあんまり使われてない?
Parsecのドキュメントが2001年とか古いのしか無くて、最初のサンプルコードすら通らない
ライブラリの使い方が解らなくていきなり躓いてる
Parsecのドキュメントが2001年とか古いのしか無くて、最初のサンプルコードすら通らない
ライブラリの使い方が解らなくていきなり躓いてる
877デフォルトの名無しさん
2019/12/23(月) 18:29:48.72ID:B7hjQJ1Z ここの住民、圏論とかの話だと玄人っぽいのにプログラミングの話になると初心者っぽくて謎
878デフォルトの名無しさん
2019/12/23(月) 20:24:57.43ID:E1rjr0pL >>876
ドキュメントと言うのが何を指しているのか具体的なURLを示してくれないと、
何が原因でどう躓いているのか、助けようにも調べる取っ掛かりが無くて困る。
あと、本当にその古いドキュメントとやらしか学習資料は無いのか?
他にチュートリアルやブログなどは参考にならないのか?
ドキュメントと言うのが何を指しているのか具体的なURLを示してくれないと、
何が原因でどう躓いているのか、助けようにも調べる取っ掛かりが無くて困る。
あと、本当にその古いドキュメントとやらしか学習資料は無いのか?
他にチュートリアルやブログなどは参考にならないのか?
879デフォルトの名無しさん
2019/12/23(月) 20:56:14.64ID:A/dzNHpI どうせ躓くなら一番最初に躓く初心者っぽい奴の方が運が良い
ビギナーズラック
巨大なメモリを使う巨大なプロジェクトの完成直前に躓くのはかなり運が悪い
ビギナーズラック
巨大なメモリを使う巨大なプロジェクトの完成直前に躓くのはかなり運が悪い
880デフォルトの名無しさん
2019/12/23(月) 21:51:15.50ID:pH3djwe1 >>876
Parsec の開発は今や"メンテナンスモード"に入っていて、代わりに attoparsec や megaparsec が活発。
https://haskell.e-bigmoon.com/posts/2019/07-14-megaparsec-tutorial.html
Parsec の開発は今や"メンテナンスモード"に入っていて、代わりに attoparsec や megaparsec が活発。
https://haskell.e-bigmoon.com/posts/2019/07-14-megaparsec-tutorial.html
881デフォルトの名無しさん
2019/12/23(月) 21:58:54.38ID:/flai8cL ここ[parsec: Monadic parser combinators](http://hackage.haskell.org/package/parsec)に載ってる
これ[Parsec, a fast combinator parser](https://web.archive.org/web/20140528151730/http://legacy.cs.uu.nl/daan/download/parsec/parsec.pdf)です
他のは、ついでにParsecに触れているという感じで、詳しそうなのはこれしか見付けられませんでした
<続く>
これ[Parsec, a fast combinator parser](https://web.archive.org/web/20140528151730/http://legacy.cs.uu.nl/daan/download/parsec/parsec.pdf)です
他のは、ついでにParsecに触れているという感じで、詳しそうなのはこれしか見付けられませんでした
<続く>
882デフォルトの名無しさん
2019/12/23(月) 21:59:30.49ID:/flai8cL 最初のサンプルコードをGHCiで打ち込んで試そうとしてるんですが、
Prelude> module Main where
Prelude> import Parsec
<no location info>: error:
Could not find module ‘Parsec’
Perhaps you meant Parser (needs flag -package-key ghc-8.6.5)
モジュールが見つからないと言われます
最新バージョンの名前空間?と明らかに違っているので、
ここ[Text.Parsec](http://hackage.haskell.org/package/parsec-3.1.14.0/docs/Text-Parsec.html)で、この二行
import Text.Parsec.Prim
import Text.Parsec.Combinator
を見付け書いたところ
Prelude> import Text.Parsec.Prim
Prelude Text.Parsec.Prim> import Text.Parsec.Combinator
<続く>
Prelude> module Main where
Prelude> import Parsec
<no location info>: error:
Could not find module ‘Parsec’
Perhaps you meant Parser (needs flag -package-key ghc-8.6.5)
モジュールが見つからないと言われます
最新バージョンの名前空間?と明らかに違っているので、
ここ[Text.Parsec](http://hackage.haskell.org/package/parsec-3.1.14.0/docs/Text-Parsec.html)で、この二行
import Text.Parsec.Prim
import Text.Parsec.Combinator
を見付け書いたところ
Prelude> import Text.Parsec.Prim
Prelude Text.Parsec.Prim> import Text.Parsec.Combinator
<続く>
883デフォルトの名無しさん
2019/12/23(月) 22:00:22.40ID:/flai8cL Prelude Text.Parsec.Prim Text.Parsec.Combinator> simple :: Parser Char
<interactive>:6:11: error:
Not in scope: type constructor or class ‘Parser’
Perhaps you meant one of these:
‘Parsec’ (imported from Text.Parsec.Prim),
‘ParsecT’ (imported from Text.Parsec.Prim)
Prelude Text.Parsec.Prim Text.Parsec.Combinator> simple :: Parsec Char
<interactive>:7:11: error:
? Expecting two more arguments to ‘Parsec Char’
Expected a type, but ‘Parsec Char’ has kind ‘* -> * -> *’
? In an expression type signature: Parsec Char
In the expression: simple :: Parsec Char
In an equation for ‘it’: it = simple :: Parsec Char
Prelude Text.Parsec.Prim Text.Parsec.Combinator> simple :: ParsecT Char
<interactive>:8:11: error:
? Expecting three more arguments to ‘ParsecT Char’
Expected a type, but
‘ParsecT Char’ has kind
‘* -> (* -> *) -> * -> *’
? In an expression type signature: ParsecT Char
In the expression: simple :: ParsecT Char
In an equation for ‘it’: it = simple :: ParsecT Char
引数が足りないみたいなことを言われます
英語も怪しいのに英語の解説も使えないとなるとどうして良いやら…
<interactive>:6:11: error:
Not in scope: type constructor or class ‘Parser’
Perhaps you meant one of these:
‘Parsec’ (imported from Text.Parsec.Prim),
‘ParsecT’ (imported from Text.Parsec.Prim)
Prelude Text.Parsec.Prim Text.Parsec.Combinator> simple :: Parsec Char
<interactive>:7:11: error:
? Expecting two more arguments to ‘Parsec Char’
Expected a type, but ‘Parsec Char’ has kind ‘* -> * -> *’
? In an expression type signature: Parsec Char
In the expression: simple :: Parsec Char
In an equation for ‘it’: it = simple :: Parsec Char
Prelude Text.Parsec.Prim Text.Parsec.Combinator> simple :: ParsecT Char
<interactive>:8:11: error:
? Expecting three more arguments to ‘ParsecT Char’
Expected a type, but
‘ParsecT Char’ has kind
‘* -> (* -> *) -> * -> *’
? In an expression type signature: ParsecT Char
In the expression: simple :: ParsecT Char
In an equation for ‘it’: it = simple :: ParsecT Char
引数が足りないみたいなことを言われます
英語も怪しいのに英語の解説も使えないとなるとどうして良いやら…
884デフォルトの名無しさん
2019/12/23(月) 22:04:05.15ID:pH3djwe1 haskell ide engine って今どんな使用感?
そろそろ spacemacs haskell layer (中身 intero) から乗り換えようと思ってんだけど
未だにバージョン 1 未満なのが気になった。まだ待つべきかな。
そろそろ spacemacs haskell layer (中身 intero) から乗り換えようと思ってんだけど
未だにバージョン 1 未満なのが気になった。まだ待つべきかな。
885デフォルトの名無しさん
2019/12/23(月) 22:05:51.18ID:/flai8cL886デフォルトの名無しさん
2019/12/23(月) 22:07:10.46ID:wextYSDX887デフォルトの名無しさん
2019/12/23(月) 22:28:25.82ID:pH3djwe1 >> 883
このエラーメッセージ
Not in scope: type constructor or class ‘Parser’
これは Parser が見つからないよ。みたいな意味
検索サイトのフーグルを「パッケージ指定」機能を使って探すと
https://hoogle.haskell.org/?hoogle=Parser%20package%3Aparsec
Parser は import Text.Parsec.String すれば使えるってことが解って、
同じように letter の場所も調べられる。
attoparsec や megaparsec にも似たやつあるっぽいから、何となくで読み替えていけばいいんじゃないかな。
このエラーメッセージ
Not in scope: type constructor or class ‘Parser’
これは Parser が見つからないよ。みたいな意味
検索サイトのフーグルを「パッケージ指定」機能を使って探すと
https://hoogle.haskell.org/?hoogle=Parser%20package%3Aparsec
Parser は import Text.Parsec.String すれば使えるってことが解って、
同じように letter の場所も調べられる。
attoparsec や megaparsec にも似たやつあるっぽいから、何となくで読み替えていけばいいんじゃないかな。
888デフォルトの名無しさん
2019/12/23(月) 23:28:55.39ID:fuVSP632 >>886
> クヌースなんかもそんなもんだぞ。
Knuthはそんなことはないだろ
TeXもMetafontも最初のはKnuth自身が実装したのだから
> プログラム理論と実装ガツガツやる能力は別物だから。
圏論なんかの知識は実装と全く関係ないからね、そういう方面に明るいのと実装能力とは全く無関係だ
> クヌースなんかもそんなもんだぞ。
Knuthはそんなことはないだろ
TeXもMetafontも最初のはKnuth自身が実装したのだから
> プログラム理論と実装ガツガツやる能力は別物だから。
圏論なんかの知識は実装と全く関係ないからね、そういう方面に明るいのと実装能力とは全く無関係だ
889デフォルトの名無しさん
2019/12/23(月) 23:34:33.07ID:A/dzNHpI KnuthやLinusって
圏論どころかカプセル化・継承・ポリモーフィズムすら使ってない印象がある
実装能力とは全く無関係だし
圏論どころかカプセル化・継承・ポリモーフィズムすら使ってない印象がある
実装能力とは全く無関係だし
890デフォルトの名無しさん
2019/12/24(火) 07:35:31.98ID:nFH9kbNZ891デフォルトの名無しさん
2019/12/24(火) 08:12:11.27ID:IDR7+yeu 何をもってknuthにスキルを疑うのか分からんのだけど、彼のプログラミングスキルが
ゴミクズな世界があったとしても、scratchから書く問題ならアルゴリズムだけで
他の人より速いもの書いてそう
ゴミクズな世界があったとしても、scratchから書く問題ならアルゴリズムだけで
他の人より速いもの書いてそう
892デフォルトの名無しさん
2019/12/24(火) 16:43:33.89ID:Y/zbyQKx >>876
すごくタイムリーに reddit に似た質問が上がってるんだが偶然?
https://www.reddit.com/r/haskell/comments/ee6lwy/resources_for_learning_parsec/
すごくタイムリーに reddit に似た質問が上がってるんだが偶然?
https://www.reddit.com/r/haskell/comments/ee6lwy/resources_for_learning_parsec/
893デフォルトの名無しさん
2019/12/24(火) 21:34:10.54ID:4c9jV6+e 本人がtex書くまでこれほど大変と思ってなかったいうとるやん。
そのあとの文芸プログラミングとか、cのコード見てても、これあかんなとしか思わんわ。
そのあとの文芸プログラミングとか、cのコード見てても、これあかんなとしか思わんわ。
894デフォルトの名無しさん
2019/12/27(金) 22:57:25.24ID:LIBStdaN Getting started with Haskell
https://stackoverflow.com/questions/1012573/getting-started-with-haskell
https://stackoverflow.com/questions/tagged/haskell
https://stackoverflow.com/questions/tagged/functional-programming
https://stackoverflow.com/questions/tagged/monads
https://stackoverflow.com/questions/tagged/category-theory
https://stackoverflow.com/questions/tagged/functor
https://stackoverflow.com/questions/tagged/ghc
https://stackoverflow.com/questions/tagged/ghci
https://stackoverflow.com/questions/tagged/haskell-stack
https://stackoverflow.com/questions/tagged/cabal
.
.
.
https://stackoverflow.com/questions/1012573/getting-started-with-haskell
https://stackoverflow.com/questions/tagged/haskell
https://stackoverflow.com/questions/tagged/functional-programming
https://stackoverflow.com/questions/tagged/monads
https://stackoverflow.com/questions/tagged/category-theory
https://stackoverflow.com/questions/tagged/functor
https://stackoverflow.com/questions/tagged/ghc
https://stackoverflow.com/questions/tagged/ghci
https://stackoverflow.com/questions/tagged/haskell-stack
https://stackoverflow.com/questions/tagged/cabal
.
.
.
895デフォルトの名無しさん
2019/12/28(土) 23:16:17.55ID:wvWoDqVP Haskellは小さいプログラムを作るには最適なんだけど
大きいプログラムになるとメモリ周りの最適化が困難なのよね
実行結果自体は正しいからテストすり抜けるだろうし
バックエンドで採用しても
本番環境で初めてメモリヤバイと気付いて死ぬ未来しか見えない
大きいプログラムになるとメモリ周りの最適化が困難なのよね
実行結果自体は正しいからテストすり抜けるだろうし
バックエンドで採用しても
本番環境で初めてメモリヤバイと気付いて死ぬ未来しか見えない
896デフォルトの名無しさん
2019/12/29(日) 00:21:25.50ID:J8aGFBX9 自家用ジェット機と大型旅客機みたいなイメージかな
897デフォルトの名無しさん
2019/12/29(日) 11:10:02.50ID:09k8oxGS898デフォルトの名無しさん
2019/12/29(日) 13:22:56.43ID:/UuMyPob >>897
最初に上がってたsigmaの記事を発見したぞ
https://engineering.fb.com/security/fighting-spam-with-haskell/
なるほどHaskellを実運用するコツはGHCの魔改造から着手する事なのか
・・・って真似できるかーい!!
最初に上がってたsigmaの記事を発見したぞ
https://engineering.fb.com/security/fighting-spam-with-haskell/
なるほどHaskellを実運用するコツはGHCの魔改造から着手する事なのか
・・・って真似できるかーい!!
899デフォルトの名無しさん
2019/12/29(日) 15:18:21.26ID:n6JnyT9E >>898
ノリで採用したら地獄を見た感がヒシヒシと伝わってくる記事だね
その後facebookでHaskellを採用していない事実で察し
https://livedoor.blogimg.jp/sag_alt/imgs/7/e/7ece2698.png
ノリで採用したら地獄を見た感がヒシヒシと伝わってくる記事だね
その後facebookでHaskellを採用していない事実で察し
https://livedoor.blogimg.jp/sag_alt/imgs/7/e/7ece2698.png
900デフォルトの名無しさん
2019/12/29(日) 16:42:39.91ID:ADVmDYvb 遅延評価を諦めて型システムとパターンマッチ系統だけを
よくわからないけどCとかC++辺りに持っていくじゃだめかな
よくわからないけどCとかC++辺りに持っていくじゃだめかな
901デフォルトの名無しさん
2019/12/29(日) 22:43:02.62ID:J8aGFBX9 何を諦めたら最適解になるか?
これは愚問
これは愚問
902デフォルトの名無しさん
2019/12/30(月) 01:49:49.36ID:zGgGf8ov 赤黒木のコード読んでいたら
関数の定義に型情報があるけど
型推論で処理されるコード部分には型情報がない
目視で定義ーコード部を交互確認すると結構きつい
抽象化には貢献してるけど、人間が読み下すのは大変、オレはコンピュータじゃない(怒
そんな感じ
関数の定義に型情報があるけど
型推論で処理されるコード部分には型情報がない
目視で定義ーコード部を交互確認すると結構きつい
抽象化には貢献してるけど、人間が読み下すのは大変、オレはコンピュータじゃない(怒
そんな感じ
903デフォルトの名無しさん
2019/12/30(月) 07:02:47.72ID:gVSpb87m そんなのエディタにやらせればいい
904デフォルトの名無しさん
2019/12/30(月) 09:12:01.80ID:zGgGf8ov 要件定義が整っている関数の書き下ろしと
プログラムで記述されたコードの読み下しは難度が異なる
Haskellのコードは情報密度が高い事と抽象度の高さが強烈に効く
プログラムで記述されたコードの読み下しは難度が異なる
Haskellのコードは情報密度が高い事と抽象度の高さが強烈に効く
905デフォルトの名無しさん
2019/12/30(月) 09:50:40.36ID:aMPpMkgz Hakellだしコード読めば分かるだろ(コメントなし)
↓数カ月後
俺の書いたコードなのに意味が分からない・・・
↓数カ月後
俺の書いたコードなのに意味が分からない・・・
906デフォルトの名無しさん
2019/12/30(月) 10:41:43.52ID:0IC+e4Ro 工学と名のついた無根拠な宗教が蔓延ってる言語よりは科学してるだけマシ
907デフォルトの名無しさん
2019/12/30(月) 12:14:13.13ID:WAqdspci908デフォルトの名無しさん
2019/12/30(月) 13:26:36.21ID:khitn85K 赤黒木は左右対称のコードを2回書かされるから書きたくない
コードを読まなくても分かる
読む前から分かることをどれだけ知っているかが重要
読み始めてから努力するのは遅い
コードを読まなくても分かる
読む前から分かることをどれだけ知っているかが重要
読み始めてから努力するのは遅い
909デフォルトの名無しさん
2019/12/30(月) 16:27:15.32ID:LA/Q6l88910デフォルトの名無しさん
2019/12/30(月) 20:14:21.30ID:fOmQS2Mv911デフォルトの名無しさん
2019/12/30(月) 21:52:49.75ID:rDj24KcK >>909
よく読め、受賞は2019年だが
受賞内容は2009年の功績の話だぞ
そこで語られてる内容も2014年のGHC魔改造の件の話だし
5年も経過してるのに未だにその話しか出てこないって事はそういう事よ
よく読め、受賞は2019年だが
受賞内容は2009年の功績の話だぞ
そこで語られてる内容も2014年のGHC魔改造の件の話だし
5年も経過してるのに未だにその話しか出てこないって事はそういう事よ
912デフォルトの名無しさん
2019/12/30(月) 22:25:35.97ID:khitn85K よく読んだら分かること
読まなくても分かること
普遍的な方を重視するのがいいと思うよ
読まなくても分かること
普遍的な方を重視するのがいいと思うよ
913デフォルトの名無しさん
2019/12/30(月) 23:48:10.12ID:LA/Q6l88914デフォルトの名無しさん
2019/12/31(火) 00:12:07.17ID: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が実用的に使われているっていう傍証にはならないけどプロジェクトは生きてる様子
またその後別の各技術にとってかわられたという情報もなさげ
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が実用的に使われているっていう傍証にはならないけどプロジェクトは生きてる様子
またその後別の各技術にとってかわられたという情報もなさげ
915デフォルトの名無しさん
2019/12/31(火) 01:50:17.69ID:Lj+eqMzp916デフォルトの名無しさん
2019/12/31(火) 02:29:04.76ID:MpeDYErb ナイス
917デフォルトの名無しさん
2019/12/31(火) 23:30:17.57ID:a+xjNkxx >>898
haskellやってる奴が評価されるのはその手の最適化できることを見込まれてるからだぞ。
haskellやってる奴が評価されるのはその手の最適化できることを見込まれてるからだぞ。
918デフォルトの名無しさん
2020/01/01(水) 04:13:12.99ID:IaAF7ILo Haskellを始めたばかりの者です
do構文は多用しても良いのですか?
手続き型を書いているような気分になります
関数型言語は初めてなので不安です
do構文は多用しても良いのですか?
手続き型を書いているような気分になります
関数型言語は初めてなので不安です
919デフォルトの名無しさん
2020/01/01(水) 09:08:22.50ID:msO/HyKq >>918
いいよ。モナドは手続きを実現するのに役立つ抽象だよ。
でもアプリカティブで用が足りるならアプリカティブを使うべき。
IO モナドを do で合成するシーンが多いならリファクタリングの余地があるかも。
Control.Monad や Control.Applicative のユーティリティが利用できないか検討してみて
いいよ。モナドは手続きを実現するのに役立つ抽象だよ。
でもアプリカティブで用が足りるならアプリカティブを使うべき。
IO モナドを do で合成するシーンが多いならリファクタリングの余地があるかも。
Control.Monad や Control.Applicative のユーティリティが利用できないか検討してみて
920デフォルトの名無しさん
2020/01/01(水) 09:16:52.80ID:msO/HyKq =>= 2020年の抱負 =>=
・珠玉本を再開したい。少なくとも二度目の四天王登場回までは行きたい
・Haskell でごはん食べる
・珠玉本を再開したい。少なくとも二度目の四天王登場回までは行きたい
・Haskell でごはん食べる
921デフォルトの名無しさん
2020/01/01(水) 10:49:49.64ID:1YmeR5a8 豊富なんてかいちゃって意識高い系かよwwwwww
922デフォルトの名無しさん
2020/01/01(水) 11:24:31.90ID:msO/HyKq >>921 いいでしょw 新年なんだし
923 【最底辺】 【25円】
2020/01/01(水) 13:25:14.55ID:tqBP4ADq Haskellの未来
924デフォルトの名無しさん
2020/01/01(水) 16:23:17.36ID:0CkTsEaj 一般化が未来だと仮定すると未来は...
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 中国の局長は「両手をポケット」で対峙 宣伝戦で国民に示す ★3 [蚤の市★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【大分】佐賀関で大規模火災、170棟以上が延焼中 70代男性1人と連絡取れず [ぐれ★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 「クマはなるべく山に返す努力を」「クマと戦争は間違っている」動物保護活動家の主張 棲み分けと学習放獣でクマ被害なくなるのか?★7 [ぐれ★]
- とらせん IPあり
- 【DAZN】ワールドカップ欧州予選総合 ★5
- 巨専】
- こいせん 全レス転載禁止
- 侍ジャパンシリーズ2025「日本vs韓国」その12
- 【J SPORTS】FIFA U-17ワールドカップ ★10
- 高市「次回選挙争点は台湾有事よ!!」自民立憲公明維新国民「やめろーー!!」これが現実になりそうな件 [469534301]
- 経済保安相「気に入らないことがあれば経済的威圧をする国への依存はリスク」日本さん遂にアメリカと断交へ!!! [472617201]
- 自閉症が「んなっしょい」と連呼するお🏡
- 「世の中、バカが多くて疲れません?」👉1991年日本人大発狂 [543236886]
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 来年は卵が1パック400円以上になるらしい
