haskell-jp / beginners #17

@mk3 has joined the channel
data 型構築子 型変数 ... =
    データ構築子A 型式A ...
|   データ構築子B 型式B ...
          .....
|   データ構築子N 型式N ...

のような、定義の仕方が最も一般的に書かれている書式?のことは何て呼べば良いですか?
また、そのようなものが集まったホームページなどはありますでしょうか?
... Replies ...
@ has joined the channel
@ has joined the channel
@ has joined the channel
@ねこはち has joined the channel
文法的でも数学的な質問でもなくて申し訳ないのですが、Haskellはどの程度まで書けたら入門レベル脱出でしょうか。友人より「パーサが書けたら初級(それ以前は入門レベル)」と言われて、大分遠い世界だなぁと思ってしまいました。
... Replies ...
@Mayo Tsukuda has joined the channel
@unvalley has joined the channel
現在関数プログラミングの楽しみを学習しており、進め方&1章のヒープの解析に悩んでいます。

1.みなさんはどのようにこの本を学習されましたか?現在1章(ねじれヒープの均し解析等、計算量の算出からピンと来ず…)で1週間ほど止まっています。
先に進めるかこの章をやるか悩んでいます。客観的にアドバイスをいただきたいです。

2.もしくは、均し解析の考えを理解する上でおすすめの資料有れば教えていただけると嬉しいです。
... Replies ...
example15.hs:1:1: error:
    Could not find module 'Monad'
    Use -v (or `:set -v` in ghci) to see a list of the files searched for.
  |
1 | import Monad
  | ^^^^^^^^^^^^

example15.hs:2:1: error:
    Could not find module 'System'
    Use -v (or `:set -v` in ghci) to see a list of the files searched for.
  |
2 | import System
  | ^^^^^^^^^^^^^

example15.hs:3:1: error:
    Could not find module 'IO'
    Perhaps you meant Id (needs flag -package-key ghc-8.10.4)
    Use -v (or `:set -v` in ghci) to see a list of the files searched for.
  |
3 | import IO
  | ^^^^^^^^^

example15.hs:4:1: error:
    Could not find module 'Random'
    Use -v (or `:set -v` in ghci) to see a list of the files searched for.
  |
4 | import Random
  | ^^^^^^^^^^^^^

このようなエラーが出ます。
何かがうまく行ってないのですが、cabalを編集しても全くうまくいきません。
助けてください。
... Replies ...
すみません cabalでインストールしたmodduleを編集することってできないのでしょうか?
... Replies ...
メモリ増設を機にubuntu20.04を削除してインストールしなおしてからstackを入れてstack setupまで行うと画像のようなエラーが発生します。buildのほうも成功しません。検索しましたが、私見では有用な解決策が見当たりませんでした。どなたかお力添えいただけると助かります。Haskellを、書きたいです。
Preparing to install GHC (tinfo6) to an isolated location.
This will not interfere with any system-level installation.
Downloaded ghc-tinfo6-8.10.4.
ghc-pkg: Couldn't open database /home/sa/.stack/programs/x86_64-linux/ghc-tinfo6-8.10.4/lib/ghc-8.10.4/package.conf.d for modification: {handle: /home/sa/.stack/programs/x86_64-linux/ghc-tinfo6-8.10.4/lib/ghc-8.10.4/package.conf.d/package.cache.lock}: hLock: invalid argument (Invalid argument)
make[1]: *** [: install_packages] Error 1
make: *** [Makefile:51: install] Error 2
Received ExitFailure 2 when running
Raw command: /usr/bin/make install
Run from: /home/sa/.stack/programs/x86_64-linux/ghc-tinfo6-8.10.4.temp/ghc-8.10.4/





Error: Error encountered while installing GHC with
         make install
         run in /home/sa/.stack/programs/x86_64-linux/ghc-tinfo6-8.10.4.temp/ghc-8.10.4/

       The following directories may now contain files, but won't be used by stack:
         - /home/sa/.stack/programs/x86_64-linux/ghc-tinfo6-8.10.4.temp/
         - /home/sa/.stack/programs/x86_64-linux/ghc-tinfo6-8.10.4/

       For more information consider rerunning with --verbose flag

Installing GHC ...

... Replies ...
SemiGroup,Monoidが定義されている状態でGroupを自分で定義してMonoidのインスタンスにしたいのですが<>はSemigroup,memptyはMonoidで定義されている時にインスタンス宣言を一つで済ませる方法はないのでしょうか?
... Replies ...
takumi_matsuura
初心者です。
このサイト()に
fun n xs = xs ! ! (n - 1)と
fun = (last . ) . take . ( + 1)が
同じと書かれているのですがよくわかりません。
特に(last . ) . というのが何を表しているのかが分からないのですが、これはなんなのですか?
... Replies ...
まず、ご存知だとは思いますが . は関数合成をする右結合の演算子です。
次に、 ( ) . take . ( ) というのは、この3つの関数を合成することを意味します。
さらに、`(last .)` というのはセクション記法で、「関数を受け取って、その関数に last を合成したものを返す」ものです。

流れは以下のようになります。
まず、整数 nfun に入ってきます。
n は関数 (+ 1) の作用を受けて n + 1 になります。
さらに、関数 take の作用を受けて、「リストを受け取り、リストの最初の n+1 個を返す関数」になります。
最後に、 (last .) の作用を受けます。これにより、上記の関数は
「リストを受け取り、リストの最初の n+1 個を返」したあと「そのリストの一番最後の値を返す」ような関数に変換されます。
これは、リストの n 番目(ただし n は1-indexed)で取得する関数と等価になります。
初歩的な質問ですが、
あるHaskellファイルFoo.hsで、そこからの相対パスがMydir/Bar.hsのファイルをimportしたいのですが、
Bar.hsの内部のモジュール名をMydir.Barに書き換えずにBarのままImport方法はありますでしょうか?
... Replies ...
:man-bowing: すみません、 https://haskell-jp.slack.com/archives/CR2TETE5R/p1626661764150300?thread_ts=1626591322.147600&cid=CR2TETE5R のとおり、スレッド冒頭の回答は間違いでした。
よく考えたらGHCのコマンドラインオプションでも -i を使えば複数指定できますし、それをcabalから使えないのもおかしな話ですよね... :pray:
すみません
cabalでパッケージをインストールしたかったのですが
Data/Category.hs:60:29:
  Kind variable ‘o’ used as a type
  In the type ‘o’
  In the type family declaration for ‘Kind’
cabal: Error: some packages failed to install:
data-category-0.10 failed during the building phase. The exception was:
ExitFailure 1
というエラーが出てしまいます
cabalのアップデートはしてみたのですが解決せず困っています
これはどのように解決すればいいでしょうか?
... Replies ...
stackをアップデートしようとすると
Invalid package name: \"$locals\
というエラーメッセージが出てしまうのですが
これはどのように解決すればいいでしょうか?
... Replies ...
連投すみません
ghcupをインストールして画面に
To start a simple repl, run:
 ghci

To start a new haskell project in the current directory, run:
 cabal init --interactive

To install other GHC versions and tools, run:
 ghcup tui
というメッセージが表示されたのですがghcupコマンドが存在しないと言われてしまいます
どうすればよいでしょうか
... Replies ...
@Kouji Okamoto has joined the channel
Applicative型クラスですが、数学の圏論的な理解ではどのような立ち位置に属するものなのでしょうか?
先日モナド変換子は「モナド準同型」とお教えくださいましたが、Applicativeはどうも何かが違う……ピンと来ないのです。
どなたか、アプリカティブ関手の圏論的理解を教えてくださる方を募集します。よろしくお願いします。
... Replies ...
連投すみません
stackでインストールしたモジュールがstack内のghciで使えないのですがどうしたらよいでしょうか
... Replies ...
質問です。以下のコードは、getLineで受け取った文字列の先頭に1文字(今回ならk)だけ付け加えているのですが、先頭にではなく末尾に付け加えたいと思っています。`:` の逆バージョンのような簡潔な表現はないのでしょうか?
main=getLine>>=putStrLn.(:)'k'

... Replies ...
以下のようなエラーメッセージが出てきてHLSがうまく動かなくなりました。ghcupでghcのバージョンを9.0.1に上げてghcideに合わせてもメッセージが出てきます。解決策に心当たりのある方はいらっしゃいますか?
ghcide compiled against GHC 9.0.1 but currently using 8.10.4 This is unsupported, ghcide must be compiled with the same GHC version as the project.

... Replies ...
@ has joined the channel
ContinuationTea
@ContinuationTea has joined the channel
@Kelly Brower has joined the channel
@K.Hirata has joined the channel
@HY has joined the channel
@ひて has joined the channel
@noshigoro has joined the channel
Reminder: beginnersチャンネルは、新しい人がスムーズにHaskellに慣れるための質問を歓迎するチャンネルです。
Haskell-Beginners ML や IRCの#haskell-beginners  や RedditのMonthly Hask Anythingのような位置づけを意図しています。

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

beginnersチャンネルでは、例えば以下のレベルの質問から歓迎します。
: とは何のことですか。
• タプルとは何ですか。
@ksrk has joined the channel
はじめまして。Haskell歴1ヶ月程度の初心者です。
現在、Haskellの型システムの上で定理証明器を作りたいと考えています。
やりたいことはに似ているのですが、
証明したい命題を型にどう変換して、証明をどう記述すればよいのかわかりません。
例えば、`((P -> Q) -> P) -> P`を証明する場合、Haskellではどのように書くのでしょうか?
... Replies ...
@K Kasshi has joined the channel
@K Kasshi has joined the channel
@zerosum has joined the channel
@Nessian has joined the channel
stack installで次のようなエラーが出てしまいます。
scientific> configure
scientific> Configuring scientific-0.3.7.0...
scientific> build
scientific> Preprocessing library for scientific-0.3.7.0..
scientific> Building library for scientific-0.3.7.0..
scientific> [1 of 5] Compiling GHC.Integer.Compat
scientific> [2 of 5] Compiling Utils
scientific> [3 of 5] Compiling Data.Scientific
scientific> 
scientific> /tmp/stack-fff8d00fdcd912f1/scientific-0.3.7.0/src/Data/Scientific.hs:196:1: error:
scientific>     • Couldn't match type 'm' with 'Language.Haskell.TH.Syntax.Q'
(略)
scientific>         lift :: Scientific -> m Language.Haskell.TH.Syntax.Exp
scientific>           (bound at src/Data/Scientific.hs:196:1)
scientific>     |
scientific> 196 | deriving instance Lift Scientific
scientific>     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
scientific> 

stack.yamlは次のとおりです。
extra-deps:
  - text-1.2.4.1
  - filepath-1.4.2.1
  - megaparsec-9.1.0
  - parser-combinators-1.3.0
  - template-haskell-2.17.0.0
  - ghc-boot-th-9.0.1

template-haskellを加えると、このエラーが出るようになりました。の依存パッケージにがあり、これが悪さをしているのではないかと思っているのですが、stackの仕組みをまだ理解しておらず、解決できません。何かアイデアはあるでしょうか?
ちなみに、template-haskell単体ではインストールできます。
... Replies ...
windows10のコマンドプロンプトで
stack install hmatrix
としたところ、以下のようなエラーが出ました。
hmatrix> configure
hmatrix> Configuring hmatrix-0.20.2...
hmatrix> Cabal-simple_Z6RU0evB_3.2.1.0_ghc-8.10.4.exe: Missing dependencies on foreign
hmatrix> libraries:
hmatrix> * Missing (or bad) C libraries: blas, lapack
hmatrix> This problem can usually be solved by installing the system packages that
hmatrix> provide these libraries (you may need the "-dev" versions). If the libraries
hmatrix> are already installed but in a non-standard location then you can use the
hmatrix> flags --extra-include-dirs= and --extra-lib-dirs= to specify where they are.If
hmatrix> the library files do exist, it may contain errors that are caught by the C
hmatrix> compiler at the preprocessing stage. In this case you can re-run configure
hmatrix> with the verbosity flag -v3 to see the error messages.

情報が足りないかもしれませんが、このエラーの原因を教えていただきたいです。よろしくお願いします。
... Replies ...
けんたろう
@けんたろう has joined the channel
けんたろう
はじめまして、今年に入ってから「入門Haskellプログラミング」などの本を見ながらHaskellを始めました。
今まではJavaやC#などOOPを使ってきて、関数型言語は初めてです。
今まで使用してきた言語は、文法こそ違えど考え方や内容はほぼ似たようなものでした。
しかしHaskellでは、今までとは異なる概念というか発想法みたいなものに出会えて、ワクワクしています。
どういったことが得意なのか、実用性はどうなのかを探りながら勉強していきたいと思っています。
どうぞよろしくお願いいたします。
再掲)
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

新しいクロスプラットフォームの PowerShell をお試しください 

PS C:\Users\toshi> wsl.exe
Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 4.4.0-19041-Microsoft x86_64)

 * Documentation:  
 * Management:     
 * Support:        

  System information as of Fri Aug 27 09:50:26 JST 2021

  System load:    0.52      Processes:              7
  Usage of /home: unknown   Users logged in:        0
  Memory usage:   52%       IPv4 address for eth1:  192.168.56.1
  Swap usage:     0%        IPv4 address for wifi0: 192.168.2.100

139 updates can be installed immediately.
58 of these updates are security updates.
To see these additional updates run: apt list --upgradable


The list of available updates is more than a week old.
To check for new updates run: sudo apt update


This message is shown once a day. To disable it please create the
/home/pig_dweller/.hushlogin file.
pig_dweller@DESKTOP-IF52AIJ:/mnt/c/Users/toshi$ stack install hmatrix
Preparing to install GHC (tinfo6) to an isolated location.
This will not interfere with any system-level installation.
Already downloaded.
ghc-pkg: Couldn't open database /home/pig_dweller/.stack/programs/x86_64-linux/ghc-tinfo6-8.10.4/lib/ghc-8.10.4/package.conf.d for modification: {handle: /home/pig_dweller/.stack/programs/x86_64-linux/ghc-tinfo6-8.10.4/lib/ghc-8.10.4/package.conf.d/package.cache.lock}: hLock: invalid argument (Invalid argument)
make[1]: *** [: install_packages] Error 1
make: *** [Makefile:51: install] Error 2
Received ExitFailure 2 when running
Raw command: /usr/bin/make install
Run from: /home/pig_dweller/.stack/programs/x86_64-linux/ghc-tinfo6-8.10.4.temp/ghc-8.10.4/


Error: Error encountered while installing GHC with
         make install
         run in /home/pig_dweller/.stack/programs/x86_64-linux/ghc-tinfo6-8.10.4.temp/ghc-8.10.4/

       The following directories may now contain files, but won't be used by stack:
         - /home/pig_dweller/.stack/programs/x86_64-linux/ghc-tinfo6-8.10.4.temp/
         - /home/pig_dweller/.stack/programs/x86_64-linux/ghc-tinfo6-8.10.4/

       For more information consider rerunning with --verbose flag

Installing GHC ...
pig_dweller@DESKTOP-IF52AIJ:/mnt/c/Users/toshi$

このえらーのないようをおしえてください
... Replies ...
@Moy has joined the channel
@ has joined the channel
@山下壮樹 has joined the channel
@ has joined the channel
@gemmaro has joined the channel