関数型プログラミング言語 Haskell について語るスレです。
Haskell Language(公式サイト)
https://www.haskell.org/
日本Haskellユーザーグループ - Haskell-jp
https://haskell.jp/
前スレ
関数型プログラミング言語Haskell Part32
https://mevius.5ch.net/test/read.cgi/tech/1548720347/
関数型プログラミング言語Haskell Part33
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2020/02/10(月) 18:17:36.49ID:L6eYQqyh217デフォルトの名無しさん
2020/04/15(水) 17:47:28.61ID:/WUIZ9Nz お礼書き忘れたすみません
回答ありがとうございますなんとか通ってもらいます
回答ありがとうございますなんとか通ってもらいます
218デフォルトの名無しさん
2020/04/15(水) 19:54:09.51ID:JKZ0KcR7 >>216
なんの話かよく知らないけど39を素因数分解してるのなら、
約数として3が見つかったら、その時点でもう39が素数じゃないことが判明するから、13を調べる必要ないよ
√39以下の数字調べればオッケー
なんの話かよく知らないけど39を素因数分解してるのなら、
約数として3が見つかったら、その時点でもう39が素数じゃないことが判明するから、13を調べる必要ないよ
√39以下の数字調べればオッケー
219デフォルトの名無しさん
2020/04/15(水) 19:55:22.34ID:JKZ0KcR7 間違えた
「素因数分解してるのなら」じゃなくて「素数判定してるのなら」だった
「素因数分解してるのなら」じゃなくて「素数判定してるのなら」だった
220デフォルトの名無しさん
2020/04/16(木) 01:02:59.81ID:6p+dWGIK >>208
計算速度や使用メモリ量以前に、解が正しくないよ。
試しに sumOfDivided [8] やってみ。
もう少し言うと、prime_factors 関数がおかしい。
関数名に相応しくない計算をしていられる。
まずは、必要な個数の正しい素数列を作ることを考えた方がいいと思うぞ。
計算速度や使用メモリ量以前に、解が正しくないよ。
試しに sumOfDivided [8] やってみ。
もう少し言うと、prime_factors 関数がおかしい。
関数名に相応しくない計算をしていられる。
まずは、必要な個数の正しい素数列を作ることを考えた方がいいと思うぞ。
221デフォルトの名無しさん
2020/04/16(木) 01:13:24.21 >>216
あ、説明で嘘を吐いてしまった。確かに√m以降に素因数は存在しないは偽だった
それでも尚、√で打ち切っていい手筋は揺るがない。
√39より前の3を発見して、39 `quot` 3 (=13) に対して再帰的に同じことをする
ただし割ることを試すのは今割り切れた素数からね(同じ素数で複数回われることもある)。
もう一回3で割ろうとして失敗し、次は√13 を超えるので打ち切って、13 は素数と判定してリストに加える
だから結果として、√m 以降の素因数を取りこぼすことはない
あ、説明で嘘を吐いてしまった。確かに√m以降に素因数は存在しないは偽だった
それでも尚、√で打ち切っていい手筋は揺るがない。
√39より前の3を発見して、39 `quot` 3 (=13) に対して再帰的に同じことをする
ただし割ることを試すのは今割り切れた素数からね(同じ素数で複数回われることもある)。
もう一回3で割ろうとして失敗し、次は√13 を超えるので打ち切って、13 は素数と判定してリストに加える
だから結果として、√m 以降の素因数を取りこぼすことはない
222デフォルトの名無しさん
2020/04/16(木) 09:43:04.65ID:xRrLSzP4 >>221
素数系のアルゴリズムは手続き的にはよく知られたものが色々あるけど
それをHaskellっぽく(宣言的に)定義しろって言われると割と悩む
STMonadとか使えば手続き的な実装はできるけど何かに負けた気分になる
素数系のアルゴリズムは手続き的にはよく知られたものが色々あるけど
それをHaskellっぽく(宣言的に)定義しろって言われると割と悩む
STMonadとか使えば手続き的な実装はできるけど何かに負けた気分になる
223デフォルトの名無しさん
2020/04/16(木) 12:23:07.85ID:DtoAMVDb 速度あげようと思ったら、どうのように計算するかということに介入する必要があるから手続き的になるのはしょうがないのでは
224デフォルトの名無しさん
2020/04/16(木) 14:44:08.63ID:ta7mONc0 魔法を使える主人公がなぜか銃を乱射するというマナー違反
を許せない真面目系脇役の魅力
を許せない真面目系脇役の魅力
225デフォルトの名無しさん
2020/04/17(金) 17:52:04.90 騎士道はCで書くなど、汚い真似をして勝つことを認めていない
226デフォルトの名無しさん
2020/04/17(金) 18:51:48.64ID:Tw57yEwr ごきげんよう、高貴なるhaskellプログラマの皆様方
今日も可憐におプログラミングですことよ
ほほほ
今日も可憐におプログラミングですことよ
ほほほ
227デフォルトの名無しさん
2020/04/17(金) 23:16:02.21ID:kOeZUqy9 haskellマスターすると新型コロナにかからないってよ
228デフォルトの名無しさん
2020/04/18(土) 03:43:48.65ID:ehKqAcW4 コロナ菌に強い言語なん?
229デフォルトの名無しさん
2020/04/18(土) 11:31:33.48ID:v8V9P+IO C言語プログラムなどを実行すると電磁波の影響で身体への副作用が発生するからな
副作用を抑え人間本来の自然な免疫力を高めるのがhaskell
副作用を抑え人間本来の自然な免疫力を高めるのがhaskell
230デフォルトの名無しさん
2020/04/18(土) 12:26:02.03ID:kkncOpcu haskellマスターで彼女ができました!
231デフォルトの名無しさん
2020/04/18(土) 13:41:19.98ID:urv0mT/N >>229
我慢できずにモナドに手を出して感染する事例が後を立たない
モナドは自粛すべきと何度も言われているのに
屁理屈をこねて手を出す者が多すぎる
本当にHaskellに副作用がないのだと詭弁を弄せずごり押しするのならば
絶対にモナドをやるべきではないと言われている
我慢できずにモナドに手を出して感染する事例が後を立たない
モナドは自粛すべきと何度も言われているのに
屁理屈をこねて手を出す者が多すぎる
本当にHaskellに副作用がないのだと詭弁を弄せずごり押しするのならば
絶対にモナドをやるべきではないと言われている
232デフォルトの名無しさん
2020/04/18(土) 19:32:57.82ID:DCiZBX2v モナドを「やる」ってなんだよw
モナドを禁止薬物か何かと勘違いしてるのか?
すべての人間は二分される
すなわち「モナドである」人間と、そうでない人間、だ
俺はモナド
お前はモナドではない
「上」で待ってるで
モナドを禁止薬物か何かと勘違いしてるのか?
すべての人間は二分される
すなわち「モナドである」人間と、そうでない人間、だ
俺はモナド
お前はモナドではない
「上」で待ってるで
233デフォルトの名無しさん
2020/04/18(土) 20:20:58.00ID:aIlZnP1D おれモナド使いだけど、おまえ俺に使われてんのか
234デフォルトの名無しさん
2020/04/18(土) 20:52:26.11 C言語プログラムなどを実行するとストレスの影響で毛髪への副作用が発生するからな
脱毛を抑え人間本来の自然な論理を書けるのがhaskell
脱毛を抑え人間本来の自然な論理を書けるのがhaskell
235デフォルトの名無しさん
2020/04/18(土) 22:32:39.62ID:DCiZBX2v >>233
モナドに使われてるやつほど、自分はモナドを使ってると勘違いするよなw
モナドに使われてるやつほど、自分はモナドを使ってると勘違いするよなw
236デフォルトの名無しさん
2020/04/18(土) 23:24:30.65ID:jMxNMUbH モナドを使う時、モナドもまたあなたを使っているのだ
237デフォルトの名無しさん
2020/04/19(日) 01:35:32.46ID:WM8Q0HWB [状態モナド](https://wiki.haskell.org/State_Monad)を
[随伴](https://en.wikipedia.org/wiki/Adjoint_functors) on Rails
に乗せてみる。
``` code
type W x a b = (a, x) -> (b, x)
type S x a b = a -> x -> (b, x)
in_away :: W x c d -> W x b c -> W x a b -> W x a d
in_away cd bc ab = cd . bc . ab
in_home :: S x c d -> S x b c -> S x a b -> S x a d
-- in_home cd bc ab = to_home $ in_away (to_away cd) (to_away bc) (to_away ab) where
-- in_home cd bc ab = ext cd . ext bc . ab where
in_home cd bc ab a = new a %>>=% ab %>>=% bc %>>=% cd where
(%>>=%) = flip ext
ext = to_home_fmap . to_away
new = to_home id
to_home_fmap = (.)
to_home = curry
to_away = uncurry
```
`to_home`が[記事](https://en.wikipedia.org/wiki/Adjoint_functors)での`Phi`
に、`ext`が[Kleisliのスター](https://en.wikipedia.org/wiki/Kleisli_category)
に対応する。`in_away`は通常の関数の合成で、`in_home`はそれを黒魔術に
翻訳している。
[継続モナド](https://wiki.haskell.org/Continuation)も随伴で書ける。
[随伴](https://en.wikipedia.org/wiki/Adjoint_functors) on Rails
に乗せてみる。
``` code
type W x a b = (a, x) -> (b, x)
type S x a b = a -> x -> (b, x)
in_away :: W x c d -> W x b c -> W x a b -> W x a d
in_away cd bc ab = cd . bc . ab
in_home :: S x c d -> S x b c -> S x a b -> S x a d
-- in_home cd bc ab = to_home $ in_away (to_away cd) (to_away bc) (to_away ab) where
-- in_home cd bc ab = ext cd . ext bc . ab where
in_home cd bc ab a = new a %>>=% ab %>>=% bc %>>=% cd where
(%>>=%) = flip ext
ext = to_home_fmap . to_away
new = to_home id
to_home_fmap = (.)
to_home = curry
to_away = uncurry
```
`to_home`が[記事](https://en.wikipedia.org/wiki/Adjoint_functors)での`Phi`
に、`ext`が[Kleisliのスター](https://en.wikipedia.org/wiki/Kleisli_category)
に対応する。`in_away`は通常の関数の合成で、`in_home`はそれを黒魔術に
翻訳している。
[継続モナド](https://wiki.haskell.org/Continuation)も随伴で書ける。
238デフォルトの名無しさん
2020/04/19(日) 01:36:44.08ID:WM8Q0HWB ``` code
type O x a b = (b -> x) -> a -> x
type C x a b = a -> (b -> x) -> x
in_away :: O x c d -> O x b c -> O x a b -> O x a d
in_away cd bc ab = cd %.% bc %.% ab where (%.%) = flip (.)
in_home :: C x c d -> C x b c -> C x a b -> C x a d
-- in_home cd bc ab = to_home $ in_away (to_away cd) (to_away bc) (to_away ab) where
-- in_home cd bc ab = ext cd . ext bc . ab where
in_home cd bc ab a = new a %>>=% ab %>>=% bc %>>=% cd where
(%>>=%) = flip ext
ext = to_home_fmap . to_away
new = to_home id
to_home_fmap = flip (.)
to_home = flip
to_away = flip
```
厳密には、`flip`は随伴ではないが、`Set^op (a, b)`と`Set (b, a)`が集合
として同型になることを使うと、実質的な随伴の役割を果たす。
type O x a b = (b -> x) -> a -> x
type C x a b = a -> (b -> x) -> x
in_away :: O x c d -> O x b c -> O x a b -> O x a d
in_away cd bc ab = cd %.% bc %.% ab where (%.%) = flip (.)
in_home :: C x c d -> C x b c -> C x a b -> C x a d
-- in_home cd bc ab = to_home $ in_away (to_away cd) (to_away bc) (to_away ab) where
-- in_home cd bc ab = ext cd . ext bc . ab where
in_home cd bc ab a = new a %>>=% ab %>>=% bc %>>=% cd where
(%>>=%) = flip ext
ext = to_home_fmap . to_away
new = to_home id
to_home_fmap = flip (.)
to_home = flip
to_away = flip
```
厳密には、`flip`は随伴ではないが、`Set^op (a, b)`と`Set (b, a)`が集合
として同型になることを使うと、実質的な随伴の役割を果たす。
239デフォルトの名無しさん
2020/04/19(日) 23:13:07.04ID:hRJ8C0Os その話題は伸びない。このスレにはHaskellerいないからコード貼ったって誰も読めないし圏論を理解してるやつなんかいないから
240デフォルトの名無しさん
2020/04/20(月) 03:13:59.48 Haskeller 戻ってきて
241デフォルトの名無しさん
2020/04/20(月) 04:21:55.04ID:VYi0JRSU エアプしかいないの?
242デフォルトの名無しさん
2020/04/20(月) 12:33:40.11ID:KoBCLV49 ここには数学とプログラミング両方できる人がいるようだからお聞きしたいのだけど
プログラミングのクロージャーってトポロジーのクロージャーから引っ張ってきた用語なの?トポロジーの方の定義を眺めてみてもイマイチつながりが理解出来なくて
プログラミングのクロージャーってトポロジーのクロージャーから引っ張ってきた用語なの?トポロジーの方の定義を眺めてみてもイマイチつながりが理解出来なくて
243デフォルトの名無しさん
2020/04/20(月) 12:39:30.50ID:PYrLoVAx まったく別
244デフォルトの名無しさん
2020/04/20(月) 12:40:47.15ID:gGVXVDIS 量子化とかもおいおいって思う
245デフォルトの名無しさん
2020/04/20(月) 13:57:45.52ID:a2Vdb5nD 全く別なんすね
ありがとうございます
ありがとうございます
246デフォルトの名無しさん
2020/04/20(月) 21:31:54.79ID:CMTCfm7W 別でもあるし同じでもある
具体的には
具体的には
247デフォルトの名無しさん
2020/04/21(火) 00:24:43.90ID:dIhpNk/e 量化子を量子化!
248デフォルトの名無しさん
2020/04/21(火) 01:33:16.33ID:iOWmjrKd そう言えば、佐野量子化って子もいたな
249デフォルトの名無しさん
2020/04/21(火) 21:16:16.93ID:JxCMv4cD この言語って純粋に理論的な側面に興味を感じてしまって、アプリ制作進まなくなるわ
250デフォルトの名無しさん
2020/04/23(木) 00:29:18.48ID:wNzYQ5IM それよりメモリ管理の理論に興味を感じないか
static変数のようなものを使えばメモリ管理と無縁のアプリ製作ができるのだが
static変数のようなものを使えばメモリ管理と無縁のアプリ製作ができるのだが
251デフォルトの名無しさん
2020/04/23(木) 02:23:16.94ID:mBUbZ8gm 何を言ってるんだ
252デフォルトの名無しさん
2020/04/23(木) 03:15:59.03 メモリ管理に興味を感じないか? → メモリ管理と無縁の〜ができるのだ
??????
メモリ管理するんじゃなかったのか?
??????
メモリ管理するんじゃなかったのか?
253デフォルトの名無しさん
2020/04/23(木) 07:00:20.01ID:eoS2PMe8 staticおじさん来てんね
254デフォルトの名無しさん
2020/04/23(木) 13:10:01.98ID:rjrgI3oq 10年以上前から同じ会話してるだろ
免疫がつくまで繰り返すんだぜこれ
免疫がつくまで繰り返すんだぜこれ
255デフォルトの名無しさん
2020/04/23(木) 21:43:23.72 Haskellスレって荒らされてるの?
256デフォルトの名無しさん
2020/04/23(木) 22:27:14.34ID:mBUbZ8gm これが平常運転
257デフォルトの名無しさん
2020/04/24(金) 01:31:48.04ID:Zatb8XkV 低俗なねらーにはHaskellはら難しすぎたんや…
258デフォルトの名無しさん
2020/04/24(金) 23:19:15.10ID:FUZNUOcv メモリ管理の様な世俗的な因習に捕らわれず神の領域を安らかたらしめん為の関数型言語では無かったか
259デフォルトの名無しさん
2020/04/25(土) 01:04:25.27ID:7jpIjPuc 現実のハスケラ達は評価順やサンク潰しの制御のテクニックを競ってマウンティングし合ってるよ
260デフォルトの名無しさん
2020/04/25(土) 01:48:47.32ID:n1+IBCwB くだらない事をダベってるくらいなら、Polysemyの基礎でも勉強してろ
https://sir4ur0n.github.io/
https://sir4ur0n.github.io/
261デフォルトの名無しさん
2020/04/25(土) 04:06:57.78 それを知るとどんな良い事があるのか、学習の動機づけをください
262デフォルトの名無しさん
2020/04/25(土) 05:14:26.69ID:n1+IBCwB 簡単に言えば、安全で明確でテストしやすいプログラムが書ける。
IOモナドの関数は中でどんなIOアクションでもできてしまい危険だ。
大事なファイルを上書きしようが、大音量でビープを鳴らそうが。
Polysemyに代表されるエフェクトシステムを使うと、
関数の中で使えるIOアクションの内容を関数シグネチャで制限できる。
ファイル読取アクションを宣言した関数の中では、書込や画像表示など他のIOアクションは一切できず安全だ。
また、ビジネスロジックのコードではどんなアクションをするのか(what)というレシピだけを書き、
そのアクションを実際のIOを使ってどの様に実現するか(how)は別のコードで書くことになる。
whatとhowがしっかり分かれ明確だ。
なので、ビジネスロジックのコードは純粋関数で書け、テストしやすくなる。
howのコードだけをモックに変えることもでき、これもまたテストを容易にする。
と言うようなことを例を交えて分かりやすく説明しているのが >>260 の記事だ。
IOモナドの関数は中でどんなIOアクションでもできてしまい危険だ。
大事なファイルを上書きしようが、大音量でビープを鳴らそうが。
Polysemyに代表されるエフェクトシステムを使うと、
関数の中で使えるIOアクションの内容を関数シグネチャで制限できる。
ファイル読取アクションを宣言した関数の中では、書込や画像表示など他のIOアクションは一切できず安全だ。
また、ビジネスロジックのコードではどんなアクションをするのか(what)というレシピだけを書き、
そのアクションを実際のIOを使ってどの様に実現するか(how)は別のコードで書くことになる。
whatとhowがしっかり分かれ明確だ。
なので、ビジネスロジックのコードは純粋関数で書け、テストしやすくなる。
howのコードだけをモックに変えることもでき、これもまたテストを容易にする。
と言うようなことを例を交えて分かりやすく説明しているのが >>260 の記事だ。
263デフォルトの名無しさん
2020/04/25(土) 08:08:07.66 目を通しました(理解できたとは言ってない)
粒度の粗い物を制限してもっと細かくして、その組み合わせで書き直すことで間違いを排除する、
(手を入れられない)既存ライブラリに対して、ぼくのかんがえたさいきょうのリファクタリングをエミュレートする基盤となるものですか?
粒度の粗い物を制限してもっと細かくして、その組み合わせで書き直すことで間違いを排除する、
(手を入れられない)既存ライブラリに対して、ぼくのかんがえたさいきょうのリファクタリングをエミュレートする基盤となるものですか?
264デフォルトの名無しさん
2020/04/25(土) 10:58:51.70ID:n1+IBCwB >>263
前半はその通り。
が、すまん、後半は意味が分からない。
リファクタリングをエミュレートするってどういう事?
初めて聞いたフレーズだ。
リファクタリングをする事と、リファクタリングをエミュレートする事の違いを教えてくれ。
前半はその通り。
が、すまん、後半は意味が分からない。
リファクタリングをエミュレートするってどういう事?
初めて聞いたフレーズだ。
リファクタリングをする事と、リファクタリングをエミュレートする事の違いを教えてくれ。
265デフォルトの名無しさん
2020/04/25(土) 12:04:03.93 真のリファクタリングは、設計しなおしてソースコードも書き直す事が含まれるとすると
標準ライブラリであるIOモナドの設計やソースコードを直接弄ることはできませんから、ポリ蝉版は本当にIOを再設計したわけではなく、
リファクタリングを疑似的に再現したという解釈はできないでしょうか
リファクタリングの真似事なのでエミュレートと言いました
標準ライブラリであるIOモナドの設計やソースコードを直接弄ることはできませんから、ポリ蝉版は本当にIOを再設計したわけではなく、
リファクタリングを疑似的に再現したという解釈はできないでしょうか
リファクタリングの真似事なのでエミュレートと言いました
266デフォルトの名無しさん
2020/04/25(土) 12:44:25.69ID:d+Khct7b 現実問題として純粋関数だけじゃ成り立たないからね
267デフォルトの名無しさん
2020/04/25(土) 13:20:46.87ID:n1+IBCwB >>265
なんか、私と貴方の間にリファクタリングという言葉に齟齬があるような・・・
今までIOモナドを直接使っていたコードをPolysemyを使うようにリファクタリングすることはできるよ。
エフェクトシステムの設計者たちはそれを推奨している。
でもそれは、IOライブラリのコードが弄れないから、仕方ないので、Polysemyで擬似的に弄ったように見せましょう、
という話では全くないよ。
なんか、私と貴方の間にリファクタリングという言葉に齟齬があるような・・・
今までIOモナドを直接使っていたコードをPolysemyを使うようにリファクタリングすることはできるよ。
エフェクトシステムの設計者たちはそれを推奨している。
でもそれは、IOライブラリのコードが弄れないから、仕方ないので、Polysemyで擬似的に弄ったように見せましょう、
という話では全くないよ。
268デフォルトの名無しさん
2020/04/25(土) 17:18:59.24ID:zjFjVVvP Polysemyってはじめてきいた
Extensible effectsとは別もの?
Extensible effectsとは別もの?
269デフォルトの名無しさん
2020/04/25(土) 18:29:06.56ID:n1+IBCwB270デフォルトの名無しさん
2020/04/26(日) 08:52:10.51ID:K9Hk9jTV IOは副作用じゃなくて作用だからハスケルは副作用が無いんだなんていってるやつ初めて見たんだけど
271デフォルトの名無しさん
2020/04/26(日) 09:58:35.47ID:igL2TSix あらかじめ宣言した型に従う作用じゃなくて
宣言していないことを勝手にやるのが副作用の弊害だから
Haskellにはこの弊害が無いんだな
宣言していないことを勝手にやるのが副作用の弊害だから
Haskellにはこの弊害が無いんだな
272デフォルトの名無しさん
2020/04/26(日) 10:22:30.54ID:FBxVgLTh273デフォルトの名無しさん
2020/04/26(日) 11:39:57.10ID:K9Hk9jTV ブログを観る限り素人の書いたクソ記事だな
読む価値なし
読む価値なし
274デフォルトの名無しさん
2020/04/26(日) 14:00:45.22ID:igL2TSix この毒舌が日本の平常運転
275デフォルトの名無しさん
2020/04/26(日) 14:32:48.40ID:jQbFLCNe Haskellの玄人って研究者とか?
276デフォルトの名無しさん
2020/04/26(日) 17:02:22.77ID:i7pDRaTP このスレ住人のことだよ
277デフォルトの名無しさん
2020/04/27(月) 14:12:58.96ID:AM55pzUu 「Prelude>:browse」の実行結果をテキストファイルにリダイレクトする方法
browse.hsという名前のファイルに:browseを記入して保存
保存したファイルのあるディレクトリでコマンドプロンプトを立ち上げて以下を実行
stack ghci < browse.hs > browse.txt
Redirecting Haskell GHCi output to text file [duplicate]
https://stackoverflow.com/questions/14688119/redirecting-haskell-ghci-output-to-text-file
browse.hsという名前のファイルに:browseを記入して保存
保存したファイルのあるディレクトリでコマンドプロンプトを立ち上げて以下を実行
stack ghci < browse.hs > browse.txt
Redirecting Haskell GHCi output to text file [duplicate]
https://stackoverflow.com/questions/14688119/redirecting-haskell-ghci-output-to-text-file
278デフォルトの名無しさん
2020/04/27(月) 17:47:14.78ID:AOepTdHn このスレで延々と副作用やモナドの話ばかりされてるのなんか既視感があると思ったら、物理学板の相対論スレでポアンカレ群やリーマン幾何の話は一切せず
モノの本で読んだようなマイケルソン・モーレイの実験の話に関する持論をひたすら展開して相対論は間違ってる!って騒いでる連中に似てる
モノの本で読んだようなマイケルソン・モーレイの実験の話に関する持論をひたすら展開して相対論は間違ってる!って騒いでる連中に似てる
279デフォルトの名無しさん
2020/04/27(月) 17:48:43.80ID:l27UEbbh 相対性理論も量子力学もどっちも間違ってる
280デフォルトの名無しさん
2020/04/27(月) 18:04:41.79ID:3bdWQ9Vo まあ副作用やモナドに関する理解の甘さは初心者にありがちだからな
281デフォルトの名無しさん
2020/04/27(月) 19:40:47.96 最新 stack で 7.8.4 をセットアップしようとしたら realgcc.exe を使おうとしてコケる
新しい GHC にはあるみたいだけど古い GHC には mingw\bin に存在しないようだ
なのに使おうとしている
なぜ古いのを入れようとしてるかというと競プロサイトのGHCが古いからだ
最新版で通るコードが向こうで弾かれたりして苛ついたから、じゃあそっちの環境で通るコードを提出してやるよとなってインストールを試みたのだ
スタックで古いバージョンのセットアップに自身ニキ、助けて
新しい GHC にはあるみたいだけど古い GHC には mingw\bin に存在しないようだ
なのに使おうとしている
なぜ古いのを入れようとしてるかというと競プロサイトのGHCが古いからだ
最新版で通るコードが向こうで弾かれたりして苛ついたから、じゃあそっちの環境で通るコードを提出してやるよとなってインストールを試みたのだ
スタックで古いバージョンのセットアップに自身ニキ、助けて
282デフォルトの名無しさん
2020/04/27(月) 21:15:06.74ID:6TeRc6dT 静的型付けの話は一切せず
実行時の振る舞いに関する持論をひたすら展開してモナドがーって
これ半分オブジェクト指向だよ
型はオブジェクトではないから型の話を一切しないんだよ
実行時の振る舞いに関する持論をひたすら展開してモナドがーって
これ半分オブジェクト指向だよ
型はオブジェクトではないから型の話を一切しないんだよ
283デフォルトの名無しさん
2020/04/27(月) 22:39:13.77 相対論スレもHaskellスレ同様に荒らされてるの?
284デフォルトの名無しさん
2020/04/28(火) 00:09:34.24ID:Bz0WEXXQ >>281
複数のバージョンを使い分けたいのなら、
Windowsは向かないと思います。
あくせくしてゴチャゴチャになるくらいなら、
さっさと仮想環境にlinux入れてそっちで環境構築した方が
楽で早いのではないでしょうか。
複数のバージョンを使い分けたいのなら、
Windowsは向かないと思います。
あくせくしてゴチャゴチャになるくらいなら、
さっさと仮想環境にlinux入れてそっちで環境構築した方が
楽で早いのではないでしょうか。
285デフォルトの名無しさん
2020/04/28(火) 00:20:49.19ID:fQrwEc0Y Haskellは何でああも副作用を嫌うの?
286デフォルトの名無しさん
2020/04/28(火) 00:24:10.18ID:6HXykM7G >>285
だから嫌ってない…
だから嫌ってない…
287デフォルトの名無しさん
2020/04/28(火) 01:57:21.75ID:zsCbc70d288デフォルトの名無しさん
2020/04/28(火) 12:53:37.93 よしわかった。ならばWSL Ubuntu を導入だ。stackをインストールし、古すぎるので最新版stackに替え、stack setup 7.8.4
The GHC located at /home/devlin/.stack/programs/x86_64-linux/ghc-7.8.4/bin/ghc-7.8.4 failed to compile a sanity check. Please see:
http://docs.haskellstack.org/en/stable/install_and_upgrade/
for more information. Exception was:
Received ExitFailure 1 when running
Raw command: /home/devlin/.stack/programs/x86_64-linux/ghc-7.8.4/bin/ghc-7.8.4 /tmp/stack-sanity-check47/Main.hs -no-user-package-db
Run from: /tmp/stack-sanity-check47/
Standard output:
[1 of 1] Compiling Main ( /tmp/stack-sanity-check47/Main.hs, /tmp/stack-sanity-check47/Main.o )
Linking /tmp/stack-sanity-check47/Main ...
Standard error:
/usr/bin/ld: -lgmp a??e|?a??a??a??a??a???
collect2: error: ld returned 1 exit status
神はどうあっても試練を与えようというあああああ!!!!
The GHC located at /home/devlin/.stack/programs/x86_64-linux/ghc-7.8.4/bin/ghc-7.8.4 failed to compile a sanity check. Please see:
http://docs.haskellstack.org/en/stable/install_and_upgrade/
for more information. Exception was:
Received ExitFailure 1 when running
Raw command: /home/devlin/.stack/programs/x86_64-linux/ghc-7.8.4/bin/ghc-7.8.4 /tmp/stack-sanity-check47/Main.hs -no-user-package-db
Run from: /tmp/stack-sanity-check47/
Standard output:
[1 of 1] Compiling Main ( /tmp/stack-sanity-check47/Main.hs, /tmp/stack-sanity-check47/Main.o )
Linking /tmp/stack-sanity-check47/Main ...
Standard error:
/usr/bin/ld: -lgmp a??e|?a??a??a??a??a???
collect2: error: ld returned 1 exit status
神はどうあっても試練を与えようというあああああ!!!!
289デフォルトの名無しさん
2020/04/28(火) 17:08:37.94ID:yBopWDZB 言語仕様はHaskellでもいいけど実装は、電池が入ってるインタプリタがいい
コンパイラをコンパイルするのも、ネットのサービス終了も嫌だ
コンパイラをコンパイルするのも、ネットのサービス終了も嫌だ
290デフォルトの名無しさん
2020/04/28(火) 22:24:50.85ID:fQrwEc0Y F#ならスクリプト使えるよー
モナドの代わりにコンピューテーション式も使えるよ
副作用も使いまくりだよー
ライブラリーは.NETつかえるよー
GUIはちょっと苦手 でも、ワンレンボディコンのボインちゃん
シャッチョサン、シャッチョサン
シャッチョさんのことだからまけにまけて0円 もってけどろぼー
モナドの代わりにコンピューテーション式も使えるよ
副作用も使いまくりだよー
ライブラリーは.NETつかえるよー
GUIはちょっと苦手 でも、ワンレンボディコンのボインちゃん
シャッチョサン、シャッチョサン
シャッチョさんのことだからまけにまけて0円 もってけどろぼー
291デフォルトの名無しさん
2020/04/28(火) 22:37:15.08ID:GL0e6TlJ よし採用
292デフォルトの名無しさん
2020/04/29(水) 06:50:08.19 Elmっているこ?いらんこ?
293デフォルトの名無しさん
2020/04/29(水) 07:13:41.98ID:SPs1sTfW 分からん
purescriptとかどうなんだろ
purescriptとかどうなんだろ
294デフォルトの名無しさん
2020/04/29(水) 09:16:57.44ID:GLX6jWJt agdaをjsにコンパイルするのはどうなの?
295デフォルトの名無しさん
2020/04/29(水) 09:36:37.62ID:TuLha3Ht F#スレ落ちてるね
296デフォルトの名無しさん
2020/04/29(水) 10:44:15.44ID:JIRjVKl2 奴は四天王の中でも最弱
297デフォルトの名無しさん
2020/04/29(水) 10:47:45.94ID:SPs1sTfW 5chごときにスレが立たないとは
魔族の面汚しよ・・・
魔族の面汚しよ・・・
298デフォルトの名無しさん
2020/04/29(水) 15:25:39.64ID:Cpi+Il5+ >>288
漏れは、Windows 10, WSL, Ubuntu 18.04 で、
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた
yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト
Windows側で、VSCode の拡張機能、Remote WSLも使う
Haskell のhsenv は、使えないのか?
漏れは、Windows 10, WSL, Ubuntu 18.04 で、
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた
yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト
Windows側で、VSCode の拡張機能、Remote WSLも使う
Haskell のhsenv は、使えないのか?
299298
2020/04/29(水) 15:39:17.08ID:Cpi+Il5+ ちなみに、Ruby on Rails の場合、コンパイルに必要なパッケージは、
sudo apt-get update
してから、
sudo apt install -y build-essential
build-essential には、
gcc(GNU C compiler), g++(GNU C++ compiler), libc6-dev(GNU C Library), make などが入っています
次に、openssl, readline, zlib のパッケージをインストールします。
sudo apt-get install -y libssl-dev libreadline-dev zlib1g-dev
データベースの、libsqlite3-dev, sqlite3 をインストールします。
sudo apt-get install -y libsqlite3-dev sqlite3
sudo apt-get update
してから、
sudo apt install -y build-essential
build-essential には、
gcc(GNU C compiler), g++(GNU C++ compiler), libc6-dev(GNU C Library), make などが入っています
次に、openssl, readline, zlib のパッケージをインストールします。
sudo apt-get install -y libssl-dev libreadline-dev zlib1g-dev
データベースの、libsqlite3-dev, sqlite3 をインストールします。
sudo apt-get install -y libsqlite3-dev sqlite3
300デフォルトの名無しさん
2020/04/29(水) 15:47:47.21ID:ob+X7Nc0 的はずれなのでやめて
301デフォルトの名無しさん
2020/04/29(水) 15:50:08.55ID:l6fPvkOQ -lgmpができないならlibgmp-devをインストールすればいい
302デフォルトの名無しさん
2020/04/30(木) 17:28:15.60 >>298-299
んにゃぴ・・・んまぁ、そう、よくわかんなかったです
>>300
それでようやく原因が判りました
Stack no longer supports Cabal versions below 1.19.2,
but version 1.18.1.5 was found.
This invocation will most likely fail.
To fix this, either use an older version of Stack or a newer resolver
Acceptable resolvers: lts-3.0/nightly-2015-05-05 or later
stack will use a sandboxed GHC it installed
For more information on paths, see 'stack path' and 'stack exec env'
To use this GHC and packages outside of a project, consider using:
stack ghc, stack ghci, stack runghc, or stack exec
7.8.4 のCabal は 1.18.1.5 であるんですが、最新版 stack は 1.19.2 以降のCabal しか対応しない
というわけで諦めました。いうほど 7.8.4 使いたいかって気分になってきて、エラー出たらその都度古いコードに書き直せばいいじゃんってなったんで
このイシューは閉じます。ありがとうございました。
んにゃぴ・・・んまぁ、そう、よくわかんなかったです
>>300
それでようやく原因が判りました
Stack no longer supports Cabal versions below 1.19.2,
but version 1.18.1.5 was found.
This invocation will most likely fail.
To fix this, either use an older version of Stack or a newer resolver
Acceptable resolvers: lts-3.0/nightly-2015-05-05 or later
stack will use a sandboxed GHC it installed
For more information on paths, see 'stack path' and 'stack exec env'
To use this GHC and packages outside of a project, consider using:
stack ghc, stack ghci, stack runghc, or stack exec
7.8.4 のCabal は 1.18.1.5 であるんですが、最新版 stack は 1.19.2 以降のCabal しか対応しない
というわけで諦めました。いうほど 7.8.4 使いたいかって気分になってきて、エラー出たらその都度古いコードに書き直せばいいじゃんってなったんで
このイシューは閉じます。ありがとうございました。
303デフォルトの名無しさん
2020/04/30(木) 17:28:45.70304デフォルトの名無しさん
2020/05/02(土) 07:49:02.53ID:+q7QtdZF cabalってカバルじゃなくカボールなんだな
305デフォルトの名無しさん
2020/05/02(土) 09:29:59.76ID:S0jsNVj+ haskellのライブラリ管理ツールはずっとクソ。
pythonのも大概だけど、haskellはそれを遥かに凌ぐレベルでくそ。
pythonのも大概だけど、haskellはそれを遥かに凌ぐレベルでくそ。
306デフォルトの名無しさん
2020/05/02(土) 12:12:56.17ID:2Bfib/9h そろそろocamlの時代じゃねーか?
307デフォルトの名無しさん
2020/05/02(土) 12:50:23.34ID:F6qz2woZ ライブラリ管理ツールって何をするためのモノなんだ?
ユーザーから何を期待されてるんだ?
ユーザーから何を期待されてるんだ?
308デフォルトの名無しさん
2020/05/02(土) 13:54:24.62ID:QDKxMZyf シェルスクリプトで管理ではなく
そろそろxmlとかyamlとかの時代を期待されてる説
そろそろxmlとかyamlとかの時代を期待されてる説
309デフォルトの名無しさん
2020/05/04(月) 03:20:08.08ID:tNWuxt0H 待ち遠しい「Algorithm Design withHaskell」
https://www.cambridge.org/core/books/algorithm-design-with-haskell/824BE0319E3762CE8BA5B1D91EEA3F52
https://www.cambridge.org/core/books/algorithm-design-with-haskell/824BE0319E3762CE8BA5B1D91EEA3F52
310デフォルトの名無しさん
2020/05/04(月) 16:45:39.46ID:R0S0SfqY ocamlはせっかく盛り返してたのに失言でだいなし
311デフォルトの名無しさん
2020/05/04(月) 23:50:02.51ID:Qeb7CV4E どんな失言?
312デフォルトの名無しさん
2020/05/05(火) 13:49:22.34ID:jdwgKTKz haskellにライブラリ管理ツールなんて無いよね?
313デフォルトの名無しさん
2020/05/06(水) 22:37:05.49ID:wUeYrIi1 釧路湿原
314デフォルトの名無しさん
2020/05/07(木) 10:57:00.07ID:zCrpEpjK 書籍「関数プログラミング 珠玉のアルゴリズムデザイン」で分からない所があります。
2ページ目3行目
xsに含まれない最小の数は、filter (<= n) xs に含まれない最小の数ということになる。
ここで < ではなく、<= なのは何故でしょうか。
< を使って条件を厳しくしても、
xs = [0], n = 1 ===> filter (<n) xs = [0]
[0] に含まれない最小数 = 1
xs = [1], n = 1 ===> filter (<n) xs = []
[] に含まれない最小数 = 0
このように問題無いように思えます。
2ページ目3行目
xsに含まれない最小の数は、filter (<= n) xs に含まれない最小の数ということになる。
ここで < ではなく、<= なのは何故でしょうか。
< を使って条件を厳しくしても、
xs = [0], n = 1 ===> filter (<n) xs = [0]
[0] に含まれない最小数 = 1
xs = [1], n = 1 ===> filter (<n) xs = []
[] に含まれない最小数 = 0
このように問題無いように思えます。
315デフォルトの名無しさん
2020/05/07(木) 16:47:46.68ID:/pjDMUqX 事実を述べているだけに見えるが
何故あの事実ではなくこの事実を切り取ったのかを知りたがるのが面白い
何故あの事実ではなくこの事実を切り取ったのかを知りたがるのが面白い
316デフォルトの名無しさん
2020/05/07(木) 17:22:10.29ID:mCGt79kv >>314
その直前に
[0..(length xs)] の範囲にある数の少なくとも1つはxsに含まれていない
とあるので(鳩の巣原理)、その自然な帰結として
length xs より大きい数は、たとえxsに含まれていたとしても探索の対象にする必要はない
ということで filter (<= n) xs (where n = length xs) が出てくるのだと思う
そこで filter (<n) xs では意味がわからない(自明ではない)
その直前に
[0..(length xs)] の範囲にある数の少なくとも1つはxsに含まれていない
とあるので(鳩の巣原理)、その自然な帰結として
length xs より大きい数は、たとえxsに含まれていたとしても探索の対象にする必要はない
ということで filter (<= n) xs (where n = length xs) が出てくるのだと思う
そこで filter (<n) xs では意味がわからない(自明ではない)
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★5 [BFU★]
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- 【悲報】SANA、発言撤回拒否 [769931615]
- 米シンクタンク「アメリカは台湾問題で"あいまい戦略"を取っている。高市早苗はこの方針から逸脱している」 [603416639]
- 岡田克也「軽々しく存立危機事態とか言うべきじゃない」高市早苗「台湾で武力攻撃が発生したらどう考えても日本の存立危機事態」 [931948549]
- お前ら「サクッとオナニーするか」←何分のイメージ?
- ジャーナリストがテレビで解説「台湾問題は高市総理から言ったのではなく、立憲民主が日本の対応可能能力を暴こうとしたから」 [359572271]
- 俺性格悪いなって思った瞬間あげてけ
