haskell-jp / beginners #15

set up a reminder “"
beginnersチャンネルは、新しい人がスムーズにHaskellに慣れるための質問を歓迎するチャンネルです。
Haskell-Beginners ML や IRCの#haskell-beginners や RedditのMonthly Hask Anythingのような位置づけを意図しています。

beginnersチャンネルでの回答側は、以下の左側のような応答を厳禁とする運用です。
• それはくだらない質問だ → くだらない質問など無い
• その質問は以前にもあった → 質問者はそんなこと知らない
• Google検索せよ → 検索できないから質問している

beginnersチャンネルでは、例えば以下のレベルの質問から歓迎します。
: とは何のことですか。
• タプルとは何ですか。
"” in this channel at noon Thursday, June 3rd, Japan Standard Time.
set up a reminder “beginnersチャンネルは、新しい人がスムーズにHaskellに慣れるための質問を歓迎するチャンネルです。
Haskell-Beginners ML や IRCの#haskell-beginners  や RedditのMonthly Hask Anythingのような位置づけを意図しています。

beginnersチャンネルでの回答側は、以下の左側のような応答を厳禁とする運用です。
• それはくだらない質問だ → くだらない質問など無い
• その質問は以前にもあった → 質問者はそんなこと知らない
• Google検索せよ → 検索できないから質問している

beginnersチャンネルでは、例えば以下のレベルの質問から歓迎します。
: とは何のことですか。
• タプルとは何ですか。
” in this channel at 9AM every 12 weeks (next occurrence is Thursday, May 27th), Japan Standard Time.
@a5ob7r has joined the channel
こんにちわ、はじめまして。
xmonadが好きなので、普段、ブログでxmonad情報を非力ながら発信しています。
ここの#xmonadチャンネルは、あまり人気がないようなので、話題の一つとして、
自分のblogのurlとかリンクを書いたりしてもいいんでしょうか?
書いてみました。xmonadに興味のある方は、#xmonadへどうぞー
そういえば xmonad チャンネルを https://haskell.jp/slack-log/ に追加するのを忘れていたので追加しておきます。
... Replies ...
@Kenta Inoue has joined the channel
@sako has joined the channel
$の記号と.の記号の使い方で、

a :: PP -> X()
b :: PP -> PP
myPP :: PP

-- 普段は
a myPP

-- bで加工してからaに渡す(その1)
a $ b myPP

-- bで加工してからaに渡す(その2)
a . b $ myPP

その1とその2で同じ様になりますか?
... Replies ...
@yousuke has joined the channel
@pyar6329 has joined the channel
こんばんわ
今、stackの勉強をしているんですけれど、
プロジェクトを作る時のテンプレートファイルは、
今の自分のプロジェクトを元にして簡単に作ってくれるコマンドとかあるんでしょうか?
... Replies ...
そっか、、単純に貼り付ければいいだけみたいですね。
Could not find module ‘Data.Vector.Unboxed’というエラーが出ました。
ハッケージにはあるんですけどこれは何故なのでしょうか?
... Replies ...
すみません追加質問です。
stackのghcを8.10.4にアップデートしたいのですが、スタックでのアップグレードのやり方がわかりません。
調べたのですがインストールの方法しかなく、アップグレードのやり方が見つかりませんでした。
... Replies ...
@quarter has joined the channel
Kengo Tachibana
@Kengo Tachibana has joined the channel
@金具 has joined the channel
@さんたむ has joined the channel
HaskellではなくIdrisを始めようとしているのですが、idringenをインストールしようとする過程でhackage.haskell.orgから502が帰ってきて困っています。これってしばらくすれば解決する問題なのでしょうか?それとも自分の環境に問題があるのでしょうか?
... Replies ...
@algas has joined the channel
@ has joined the channel
ペッパー君
@ペッパー君 has joined the channel
VSCode の質問です。
IDEのエラーか何かで
ghcide compiled against GHC 8.8.2 but currently using 8.6.5 This is unsupported, ghcide must be compiled with the same GHC ...
と出てきてしまい、何を打っても一番最初の行に赤線が引かれてしまいます。
解決したいのですが、調べてもわからず、困ってしまいました。助けてくださると幸いです。
... Replies ...
@Tomo has joined the channel
@ has joined the channel
@basashi has joined the channel
@Benjamin Bray has joined the channel
@Yasutaka Odo has joined the channel
Shinichi Takano
@Shinichi Takano has joined the channel
こんばんは。Haskellで以下の振る舞いをするコードを書こうとしています。
ghci> Val 1   
1
ghci> Var 2 3 
x 23
ghci> Plus [Val 1, Var 2 3]
(+ 1 x23)

そこで以下のようなコードを書いてみました。
data Exp = Var Int Int | Val Int | Plus [Exp]
instance Show Exp where
    show (Var i j) = "x" ++ show i ++ show j
    show (Val n) = show n
    show (Plus (exp1:exp2:exp)) = "(+" ++ " " ++ show exp1 ++ " " ++ show exp2 ++ ")"

これでも(おそらく)正しく動いているのですが、VSCode上で以下のように注意されます。
Pattern match(es) are non-exhaustive
In an equation for 'show':
    Patterns not matched:
        Plus [(Var _ _)]
        Plus [(Val _)]
        Plus [(Plus _)]
        Plus []

パターンマッチが網羅的では無いのですが、具体的にどう書けば良いか分かりませんでした。
どう書けば網羅的になるのか、ご教示いただけると嬉しいです。よろしくお願いいたします。
... Replies ...
@ has joined the channel
@Kenta Arai has joined the channel
@千吉川 has joined the channel
@ has joined the channel
@tomonaga has joined the channel
Pachiras Yokohama
@Pachiras Yokohama has joined the channel
@Koki Sato has joined the channel
@ has joined the channel
こんにちは!
私はVscodeを用いてHaskellの環境構築を行いました。
MacOSを使っていて、Stackは用いず、Cabalのみで環境を構築しました。
https://github.com/haskell/vscode-haskell
上記のURLの拡張機能を使用しているのですが、中にHLSやHlintが入っています。

その中でHlintのヒントを設定したいです。HlintのREADME通りに.hlint.yamlを記述しても適切に反映されず、コード内に{- HLINT ignore -}と記述してもヒントが消えません。vscodeの設定では、hlintをオンにするかオフにするかの設定しかなく、ヒントをひとつ無視するといった細かい設定ができません。どうすればvscodeにインストールされたhlintを設定できるのでしょうか?

ご存知の方いらっしゃいましたらご教授いただければ幸いです。
(もし、普通にyamlで設定できているなどあればそれだけでもすごく助けになります!お願いします。)
また、不要かと思い詳細な私のPCの情報はあえて記載していませんが、必要そうであれば記載します。
@TH has joined the channel
@juxtapose has joined the channel
@Xosdy has joined the channel
すごいH本をやっているのですがflipの実装で上のようなコードが示されていました.これは関数に対してパターンマッチを行っているということでしょうか?
@basashi 関数の -> は右結合なので、 (a->b->c) -> (b->a->c)(a->b->c) -> (b -> (a -> c)) と、すなわち (a->b->c) -> b -> a -> c と同じです。すなわち、この f, x, y はそれぞれ a->b->cba に対応する引数を取っているということです。ただし、セマンティクスは2つの引数の順番を変えるということなので、あえて flip' の型アノテーションは (a->b->c) -> (b->a->c) と書かれているのだと思います。
@ddd has joined the channel
あーなるほど,型宣言をそのように捉えるのですね.
迅速な回答ありがとうございます.