questions (Last updated at 2021-01-14 11:17:12 +0900)
#1
naohaq2017-10-02 13:24:47 +0900
少なくともHackageのソースを見る限り <https://hackage.haskell.org/package/bytestring-0.10.8.2/docs/src/Data.ByteString.html#local-6989586621679051445> 、findEOFというローカ...
#2
naohaq2017-10-12 12:52:17 +0900
再帰/余再帰という言葉は「数学的帰納法」と関連が深くて、帰納/余帰納とも呼ばれます。
数学的帰納法で任意の自然数nについて性質p(n)が成り立つことの証明をすることを思い出してみます。
(i) Base case: p(0) が成り立つことを示す。
(ii) Hypothesis: ある自然数kにつ...
#5
mizunashi-mana2017-11-18 19:25:32 +0900
それはコンパイルエラーになるということでしょうか?それとも,例外が出るということでしょうか?テンプレートが思った通りに表示できないということでしょうか?
#15
mizunashi-mana2018-02-27 13:07:52 +0900
何故正規表現を使いたく無いかよく分かって無いですが,ワイドルカードや許容文字が複数ある場合などは, `regex-applicative-text` や `regex-tdfa` などをよく使います
#19
fujiyan182018-04-22 15:34:42 +0900
ありがとうございます。
私の質問が言葉足らずでしたが、
パーサーを使う程でもない、10数行程度の入門レベルのコンソールアプリのサンプルを作る際に、
毎回(pack . show)と(read . unpack)で行数がやや膨らむので悩んだところでした。
特に定番的なものがなければ、入門レベルならむ...
#21
igrep2018-05-10 12:12:28 +0900
はい、なので実際のコードでは `Word64` にしています。
実際のところは正確にわからないので本当は `Integer` のほうがいいのかもしれませんが。
#22
hexirp2018-06-04 07:56:55 +0900
ghc-paths-0.1.0.9: using precompiled package
ghc-pkg.EXE: cannot find package ghc-paths-0.1.0.9
#23
cosmiafu2018-07-04 11:05:01 +0900
“A monad is a monoid in the category of endofunctors.” Is there something similar for comonad? Hmm, say, comonoid? What does it looks like if there is...
#25
a_kirisaki2018-07-18 17:12:27 +0900
行けました!
```
deriving instance ToFormKey a => ToFormKey (Identity a)
```
追加したら動くました。ありがとうございます!
#26
wado2018-08-06 15:00:27 +0900
<https://github.com/alanz/vscode-hie-server/blob/master/package.json#L100>
<https://github.com/alanz/vscode-hie-server/blob/master/src/extension.ts#L1...
#28
kakkun612018-09-26 21:30:36 +0900
#29
kazu2018-10-11 15:11:30 +0900
Semigroup の <> って、なんで右結合なんですかね。
Alternative の <|> は、左結合なのに。
a <> (b <> c) = (a <> b) <> c を達成するには、左が勝つようにしなければならず、...
#30
igrep2018-11-03 21:03:46 +0900
そうです。ただ、「最初の発行年」の部分を「ウェブサイトは毎年新たに発行されうるものだから~」と解釈して都度更新する習慣もないわけではないので、そういう慣習にしたがった人が見れば「あれ?」と思うであろうと言うことで「体裁の問題」と言いました。
<https://liginc.co.jp/designe...
#31
takohati08212018-11-22 12:46:19 +0900
例えば、"Applicative f => (a -> f b) -> s -> f t"で検索したらlensパッケージのTraversalがヒットして欲しい、みたいな具合です
#37
shunsuke.masuda2019-01-21 09:40:54 +0900
こんにちは。HRRの導入を検討しておりまして、質問があります。
HRR、動的に決まるテーブル名に対応していますか?
時系列データを日付ごとのテーブルに格納する要件がありまして、テーブル自体は実行時に作成されます。
これらのテーブルですが、テーブル名に日付が含まれる以外、カラムや各種制約はすべて一致...
#38
sugano2019-01-24 08:28:17 +0900
モジュールは定義してないので読まれないのはいいんですけど、まあたぶんdoubleMeも読まれてませんよね?、ここで<https://haskell-jp.slack.com/archives/C5666B6BB/p1548172078203000?thread_ts=1548136855.19050...
#41
koyama2019-01-30 18:00:31 +0900
OOP 脳に洗脳されていると、二項演算子の左と右が同じ型でないといけないっていうこと自体がびっくりだろうからそれを言おうとしてるのかなあ、と。
#42
koyama2019-01-31 18:03:31 +0900
ざっと見、ネストが深くなった最初の行の空白を二重にパースしようとしている感じがします(whenJust mNumofSpaces のところで一回、その行自体を含めて続きを many1 $ do でパースしつづけるので、その行は blockParser (Just $ numOfSpaces + s)...
#43
junji.hashimoto2019-02-07 20:18:31 +0900
お疲れ様です。
<https://qiita.com/mod_poppo/items/03fc14f693b601e0a00f>
なぜIORefだと遅いのでしょうか。
自分でベンチマークとるのが一番かもしれませんが。
あと既出だったらすみません。
:man-bowing:
#44
koyama2019-02-20 20:29:33 +0900
実のところ、 ghc に関しては ghci を起動しちゃえばわかるじゃん、という回秘策を使っていたので、真面目に調べていなかったのです… 今回 haddock のバージョンを知りたくなってハマった、というのが正直なところです :sweat_smile:
#46
kazu2019-03-01 12:28:02 +0900
Hutton本2に「newtypeで宣言するデータ型も再帰的にできる」って書いてあるんですが、これは誤りですよね? 再帰的にできるのは、data だけですよね?
#47
maoe2019-03-04 15:30:51 +0900
デフォルトなのは外部のCライブラリに依存しないでビルドできるからだと思います。
僕もtls回りが遅くて以前見てみたことがあります。詳細は忘れましたが依存ライブラリ(Haskellコード)を少し弄ったら速度が結構改善しました。全体的にあまり速度を気にして書いているコードではない印象でした。
#48
autotaker2019-03-06 10:57:48 +0900
プロファイルは `cabal.project.local` という名前のファイルに `profiling: True`と書いて `cabal new-build`でコンパイルすると良い感じにやってくれます。これだと各モジュールの公開される関数にSCCをつけてくれます。より細かいのを見る場合は `{-...
#49
cutsea1102019-03-06 17:20:38 +0900
あとLLVMも
<https://ghc.haskell.org/trac/ghc/wiki/Commentary/Compiler/Backends/LLVM/Installing>
これみるとGHC 8.4系だとLLVM5.0なんですね.
最初LLVM7.0が入ったときにビルド時にwarnnin...
#51
koyama2019-03-07 21:55:00 +0900
もし本当に「リストの長さが違っていて長い方のリストの後ろの方に Nothing がある場合も Nothing」にしたいなら、先にそれぞれ sequence してから liftA2 zip して fmap fromList すればよさそうですね
#53
as_capabl2019-03-13 21:35:07 +0900
```
Map.insert k v <$> buildMap (ks, vs)
```
これはbuildMapが全部返ってきてからMaybeでパターンマッチする形になるから、確かにスタック積み上がりそう。こういう所はHaskellでも末尾再帰気にしないといけないんですね
#56
cohei2019-04-09 17:57:07 +0900
`Control.Bifunctor` ってあったっけと思ったら、 category-extras にあったんですね。今は obsolete なパッケージですが
#58
kayhide2019-04-27 16:18:20 +0900
```
type PersonParams (f :: * -> *) (g :: * -> *) =
Field Identity :*
'[ "name" >: f Text
, "age" >: g Int
]
```
↓
```
type Pers...
#59
myuon_myon2019-05-13 22:55:56 +0900
alexで文字列リテラルを正規表現で定義する方法を知ってる方いたら教えてください。
```
$strlit = "\""([^\n\"\\]*(\\[.\n])*)*"\""
```
みたいに書くとparse errorと言われます(この正規表現自体はググって出てきたやつなので実際は何でも構わないで...
#60
shunsuke.masuda2019-05-24 09:43:48 +0900
こんにちは。型クラスについて質問です。
Int64をラップしたMyNumberという型をつくりました。
この型について、以下のような操作を定義したいのですが、どうもうまくいきません。そもそもこのようなことが可能なのか、可能であればどうしたらよいのか、ぜひ教えてください。
やりたいこと:
- 許可:...
#61
shunsuke.masuda2019-06-03 17:57:37 +0900
まったくの思いつきで恐縮ですが、
`forkIO`で別スレッドで処理される中で、コネクションの`close`が意図するタイミングで呼ばれていない可能性はありませんか?
#62
igrep2019-06-06 17:48:38 +0900
うーん、それで `No module named 'GHC.Arr' is imported.` というエラーはさすがに不自然ですね。。。
#63
matsubara05072019-06-19 13:16:35 +0900
適宜その場所で log 出力したい派だったので
全部 Either にして最後に error ログだったら ExceptT でも良いと思います
#64
shunsuke.masuda2019-06-27 16:50:43 +0900
こんにちは。いつもお世話になります。
関数の定義で型変数を使った場合、実際にどの型が使われたかを、その関数内部で取得することはできますか? ログ出力を目的としていて、`typeOf`を使えばよいのですが、それだと冗長になるケースがありまして、お尋ねしています。
以下のケースで`f`の中で`typ...
#65
junji.hashimoto2019-07-15 23:55:11 +0900
`--write-ghc-environment-files=always`でいけました。ありがとうございました。
#66
notogawa2019-07-25 14:16:32 +0900
型の上で計算するだけで終わりにしていいのならそのように大概のことはできるんですが,今やろうとしているのは証明であり,値レベルで云々する(≒singletonsとかでゴニョゴニョする)必要があります.たとえば,
```
sNatToNat' :: Sing n -> Sing (ConvertN...
#67
mizunashi-mana2019-07-31 16:16:09 +0900
一応補足ですが,現在の GHC では full laziness が入るタイミングが調整されていて,
```
factMemo :: Int -> Integer
factMemo = (map fact' [0..] !!)
where
fact' 0 = 1
fact'...
#68
k.marumaru5242019-08-19 22:04:14 +0900
<@U4LGTMTMK>
あ!!spacesがspaceになっているのが原因でした..
ありがとうございます
前々からspacesはやたら出てくるなぁと感じていたので教えていただいたものを使うとだいぶスッキリ書けました
#69
igrep2019-09-04 19:03:01 +0900
あともう一つのアプローチとして、Alexが返す例外をパーサーコンビネーターなどでパースしてしまう、というやや遠回しな手もあるかと思います :sweat:
#71
pontyan122019-09-12 19:33:14 +0900
出先でしたのでご返信遅れてしまいすいません。
動作確認できました!
お手伝いいただいたみなさまありがとうございました!!
これからの拡張はどこを参考にしたらよいでしょうか…?
#72
shunkichi.sato2019-09-29 01:02:58 +0900
添付の例で期待した結果が得られません
ターミナルで実行すると `["` とだけ表示され、あとは `Ctrl+C` するしかない状態になります
最終行の `(c:r)` の部分が犯人らしいことは分かっているのですが
どういうわけなのでしょうか
#74
matonix2019-10-29 13:30:19 +0900
学習用途でしたら,ぜひ再帰版もがんばってみてください.(私なら,リストのリストを処理する再帰関数Aから,リストを処理する再帰関数Bを呼ぶ,みたいな方針にすると思います)
#75
hexirp2019-11-20 16:42:21 +0900
一例を挙げます。
環境: stack を使っています。それによって GHC 8.6.5, cabal 2.4.0.1 が使われています。 cabal-install はちょっとわかりません。
cabal ファイル: <https://github.com/Hexirp/hexirp-hakyll/b...
#79
igrep2020-02-07 12:21:19 +0900
そうですね。正確には、 `[e| |]` のなかで束縛されてない変数が自動で `unboundVarE $ mkName "e"` されるところが、です。
#80
as_capabl2020-02-26 20:14:31 +0900
実装を見ると、入力値を全て記憶していますね。これはfumievalさんに上で説明頂いた対角化のようです <https://www.stackage.org/haddock/lts-15.1/machines-0.7/src/Data.Machine.Mealy.html#driveMealy>
#81
tcokygets2020-03-08 20:18:47 +0900
いえ 何もしてないのにいつのまにかこうなってしまったので……それにいくら再インストールしても同じ問題が発生しちゃうんですよ もう手詰まりで
#82
mizunashi-mana2020-03-30 15:02:02 +0900
あ、なるほど、representational 以外の role 持つやつだと表示されるんですね。ありがとうございます、解決しました
#84
igrep2020-05-01 15:50:12 +0900
詳しい事情はhaskell-cafeあたりで何度か触れられていると思います(自分もぶっちゃけよく調べてない...
<https://takenobu-hs.github.io/haskell-wiki-search/?siteview=full> からチェックを入れて検索してみてください。
#85
gettaplacetogo2020-05-12 15:19:52 +0900
(GHCはcabalではないので、 `cabal.project` や `vector.cabal` を読まないのは当たり前っちゃあ当たり前で、問題はprecompiled packageがGHCからvisibleでないことだけなのですが)
#86
igrep2020-06-04 11:37:56 +0900
メンテが止まってるのはやっぱ避けた方がいいと思いますよ。
別に学習用途で使う分には全く問題ないと思いますが、真面目に長期間運用するアプリケーションに採用するのは避けた方がいいと思います。
#87
cj.bc-sd2020-06-20 11:34:47 +0900
返信遅くなりましたがうまく行きました!!!
ありがとうございます!!
Lensはoverやsetやviewと使うものだという固定概念がありました…今度からもっと型を注意してみるようにしてみます
```Prelude Control.Lens> _2 (\a -> print ("PRI...
#89
mizunashi-mana2020-08-08 00:48:20 +0900
Haskell の `head` / `tail` は単連結リストの言葉ですね。Haskell のリストはそのまま単連結リストなので、単連結リストの先頭を示す `head` とそれ以降を示す `tail` という言葉を関数名にそのまま流用したものです。
確かにコマンドの `head` / `tai...
#91
igrep2020-10-06 06:58:02 +0900
あるいは、
```instance MonadFail m => AWST' env m where
fail = ...```
というインスタンスなら汎用性があるのでそれをPRしてあげるか。
#93
ttaakkee2020-11-03 22:38:56 +0900
なるほど〜
整理して考えるとたしかに!
`name` は `env` に依存してないってだけなのに、それだけで、`AnyBot`の定義のせいで異質なメソッドになっちゃってる感じですね༼;´༎ຶ ༎ຶ༽
(ちなみにpackってなんですか?:exploding_head:)
#94
kazu2020-12-03 14:49:28 +0900
昔の GHC だと、UNPACK で Strict な小さな値は、ポインターではなく即値が格納されるようになります。
しかし、現在の GHC は UNPACK は必要なく、Strict で小さければ、既値が格納されます。