haskell-jp / beginners #20

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

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

beginnersチャンネルでは、例えば以下のレベルの質問から歓迎します。
: とは何のことですか。
• タプルとは何ですか。
VSCodeでプログラムを書いているのですが、import文で `Could not find module Data.Attoparsec.Text` などと出たときの対処はどうすれば良いのでしょか。使用している拡張機能は以下の2つです。
・Haskell 
・Haskell Syntax Highlighting 

ちなみに、.ghcup/bin/ghci でこのプログラムをloadすると
Could not find module 'Data.Attoparsec.Text'
とメッセージが VSCode 側と同じエラーが出るのですが、
普段使っている stack 経由で実行した ghci でこのプログラムをloadすると問題なく動きました。
なので、stack 側だけが上手いことやってくれているのだと思いますが、どこの設定を変更すれば良いのかがわかりません。

{-# LANGUAGE OverloadedStrings #-}
import qualified Data.Text as T
import Data.Attoparsec.Text hiding (take)

main :: IO ()
main = do
  print $ parse decimal "1000"

... Replies ...
@Yas Inu has joined the channel
@松永直人 has joined the channel
@idan has joined the channel
かりんとう
オススメのHaskell開発環境について聞きたいです
現在、Windowsでstackを直にインストール、VSCodeでHaskell拡張機能を使ってHaskellを使っています。
現在の焦点は「ダウンロードして実行できる形式の、通信しないグラフィカルなアプリ」(用語あるかもしれませんが)をHaskellで作成することです。
できればWindowsで(今持ってるのがWindowsなので)できる範囲が良いので、それでオススメがあれば聞きたいです。
でもライブラリ導入にMacの方が対応状況良かったりしてるみたいなので、Macの方が都合良いのかなと思ったりもしています。

なので、
・Windows環境の上でHaskell開発にオススメの環境
・Mac環境の上でHaskell開発にオススメの環境(もし余裕があったら)
・Macの方がオススメなのか(もし余裕があったら)
について聞きたいです。
... Replies ...
Atsushi Takimoto
@Atsushi Takimoto has joined the channel
Hiroshi Shimoda
@Hiroshi Shimoda has joined the channel
@ has joined the channel
はじめまして。
Maybe Int のような型から`Int` 型を取り出すことは可能なのかお聞きしたいです。
やりたいこととしてはtypescriptの以下のような推論をやってみたい感じです。
type A<T> = { a: T }
type B<F> = { b: F }

type C = A<B<number>>

type GetT<AA extends A<any>> = AA extends A<infer T> ? T : never
type GetF<BB extends B<any>> = BB extends B<infer F> ? F : never

type D = GetF<GetT<C>> // number

よろしくおねがいします。
... Replies ...
@makoto has joined the channel
数学、論理学寄りの質問なのですが、今私はHaskellでproof checkをしてみたくて、Haskellの型で論理結合子を表現しようとしているのですが、全称量化子と存在量化子の表現方法がわからずに詰まっています。
”BHK解釈”のwikiで以下の画像のような記述を発見したのですが、xが証明ではなく、集合Sの要素であることを表現するにはどのようにすればよいか、教えていただきたいです。
import Data.Void (Void)

type Imply a b = a -> b
type And a b = (a, b)
type Or a b = Either a b
type False = Void
type Not a = a -> False

type Forall x a = x -> a -- xは個体変項 aは論理式
type Exists x a = (x, a)

... Replies ...
Alexandre Prestele
@Alexandre Prestele has joined the channel
@hakamori has joined the channel
THE BLACK COMET CLUB
@THE BLACK COMET CLUB has joined the channel
@ has joined the channel
@matsuo has joined the channel
@d_yama has joined the channel
@queue.r n. has joined the channel
CircleCIでStackのビルドのキャッシュをブランチごとに特殊化して差分コンパイルしようとしたのですが、
殆ど差分になりませんでした。
多分、
CircleCI上でsbtのインクリメンタルコンパイラのキャッシュが効かなくて再コンパイルされる問題 - xuwei-k's blog
と同じような問題が起きている気がしますが、
これの簡単な解決方法を知っている方が居たらお教えいただきたいです。
@Goshi has joined the channel
@James Haydon has joined the channel
@AC has joined the channel
@ has joined the channel
@yasu has joined the channel
高塚由利子
@高塚由利子 has joined the channel
@ has joined the channel
NoFieldSelectorsについての質問です
伝統的なフィールドにデータ名をプレフィクスに付けておくデータ型定義があるファイルを指定して、プレフィクスなしにするマイグレーションツールはありますか?
単に削除だけではなく大文字小文字変換もしないといけないので少し気後れします
無ければ手で頑張って書き換えるか、マイグレーションツールを自作します
... Replies ...
@ndadayo has joined the channel
data Element x = Group [x] | Individual x

groupMached ::  x => (x -> Bool) -> [x] -> [Element x]
groupMached function list =  ????

groupMached odd [1,4,5,1,3]  -- 結果 [Group [1], Individual 4, Group [5,1,3]]

リストの要素の中でfunctionによってTrueになり,隣接している者同士でグループを作る関数を定義しようとしています.なかなか思いつきません.ご教示いただけると嬉しいです.
... Replies ...
@devk has joined the channel
@kaname yamo has joined the channel
@Rj has joined the channel
Reminder: beginnersチャンネルは、新しい人がスムーズにHaskellに慣れるための質問を歓迎するチャンネルです。 Haskell-Beginners ML や IRCの#haskell-beginners  や RedditのMonthly Hask Anythingのような位置づけを意図しています。 beginnersチャンネルでの回答側は、以下の左側のような応答を厳禁とする運用です。 • それはくだらない質問だ → くだらない質問など無い • その質問は以前にもあった → 質問者はそんなこと知らない • Google検索せよ → 検索できないから質問している beginnersチャンネルでは、例えば以下のレベルの質問から歓迎します。 • : とは何のことですか。 • タプルとは何ですか。
@宮入徹也 has joined the channel
@niro has joined the channel
@canalun has joined the channel
@ has joined the channel
@原田勇大 has joined the channel
@soichi has joined the channel
Endo Ryunosuke / minerva
ghcup + cabal + VSCode で Haskell の環境構築をしたくて,推奨の手順等あれば教えて下さい.ゴールとしては,VSCode で HLS の支援を受けつつ小さなコマンドラインツールが作れて,適宜ライブラリをインポートしたりできればいいなと思っています.macOS の Catalina です.
... Replies ...
@宮川哲 has joined the channel
@Kai Ma has joined the channel
takino takayuki
extencibleに関する質問です

scrapboxのプログラムを試していましたが、エラーの修正方法が見付かりませんので、御教授願います。


type Person = Record '[ "personId" :> Int, "name" :> String]
type Address = Record '[ "personId" :> Int, "address" :> String]

-- Associate??
getPersonId :: Associate "personId" Int xs => Record xs -> Int
getPersonId = view #personId


-- エラーメッセージ
-- [1 of 1] Compiling Main ( src/extensible.hs, interpreted )
--
-- src/extensible.hs:83:16: error:
-- Not in scope: type constructor or class ‘Associate’
-- Perhaps you meant one of these:
-- ‘Associated’ (imported from Data.Extensible),
-- ‘Associated'’ (imported from Data.Extensible)
-- |
-- 83 | getPersonId :: Associate "personId" Int xs => Record xs -> Int
-- | ^^^^^^^^^
-- Failed, no modules loaded.


-- 参考にしているサイト
https://scrapbox.io/haskell-shoen/extensible%2F%E5%88%9D%E5%BF%83%E8%80%85%E5%90%91%E3%81%91%E6%94%BB%E7%95%A5%E6%83%85%E5%A0%B1
... Replies ...
@toyboot4e has joined the channel
こんばんは〜

アルゴ式の問題 標準入力 2-1 で、以下のコードがエラーになりました。
ローカルだとエラーにならないのですが、何が原因でしょうか。
エラー内容: `Main: <stdin>: hGetLine: end of file`
よろしくお願いしますm(_ _)m