New Threads

質問です。 以下のコードはDataKinds+PolyKindsではコンパイルが...

質問です。
以下のコードはDataKinds+PolyKindsではコンパイルが通らず、TypeInTypeを有効にすると通ります。

{-# LANGUAGE TypeFamilies, DataKinds, PolyKinds #-}

import GHC.TypeLits

type S = Symbol

type family T :: Symbol -- OK
type family T2 :: Maybe Symbol -- OK
type family T3 :: Maybe S -- Error!


エラー内容

kind.hs:8:25: error:
    ? Type constructor ‘S’ cannot be used here
        (Perhaps you intended to use TypeInType)
    ? In the first argument of ‘Maybe’, namely ‘S’
      In the kind ‘Maybe S’


TypeInTypeの意味は「*のカインドを*とし、型と同様に扱えるようにする」との事ですが、上記のコードが通る事がそれとどのように関係しているのか理解できていません。
DataKinds+PolyKindsで上記のコードが通らないのはどのような制約によるもので、なぜTypeInTypeを指定するとそれが外れるのでしょうか。

7 replies

実行時の数値からNat種の型を作る(?)には `GHC.TypeLits` の ...

実行時の数値からNat種の型を作る(?)には GHC.TypeLitssomeNatVal 関数などを使えばできるとおもうのですが、この時作られる型を自作の型クラスのインスタンスに限定するにはどのようにすればいいのでしょうか?😭😭😇

10 replies

``` $ stack new blog hakyll-template $ c...

$ stack new blog hakyll-template
$ cd blog
# stack.yaml の resolver を nightly-2018-01-29 に
$ stack build

すると ↓ のようなエラーが出るのですが解決方法が分かりません。
Objective-C のコードを gcc が理解できてないんだろうなぐらいは分かるのですが。
• OS X El Capitan 10.11.6
• stack 1.6.3

5 replies

(Numではなく)任意の型クラスのデフォルトの型を指定する方法ってありましたっけ...

(Numではなく)任意の型クラスのデフォルトの型を指定する方法ってありましたっけ?

10 replies

<https://twitter.com/hsjoihs/status/9518...

https://twitter.com/hsjoihs/status/951851803531816960
freeモナドとかoperationalとかcontとかを学ぶ際に最初に読むべきもの、なんかオススメありますかね(英語可)(現状の理解度:StateTぐらいなら分かる、圏論の背景知識は不足している、LispとかSchemeとかcall/ccとかは全く理解していない)

13 replies

`stack.yaml` で指定してるsolver以外のdb情報などを `.st...

stack.yaml で指定してるsolver以外のdb情報などを .stack-work から消してくれる stack のサブコマンドってあったりしますかね?

13 replies

Win32 な環境で、FFI に stdcall ではなく ccall と書くと...

Win32 な環境で、FFI に stdcall ではなく ccall と書くと何が起きますか?
ときどき ccall を使っているコードを見かけるのですが、大丈夫なのでしょうか?
ちなみに、Win64だとccallと書くと適切なABIを使うようです。
stdcallと書いても適切なABIを使いますが、無意味に警告が出ます。

3 replies

mtlパッケージのReaderTに、 `k` という見慣れない型パラメーターがあ...

mtlパッケージのReaderTに、 k という見慣れない型パラメーターがあるのを見つけたんですが、これは一体何のためのパラメーターで、使用する際型宣言ではどう書けばいいのでしょうか?
https://hackage.haskell.org/package/mtl-2.2.1/docs/Control-Monad-Reader.html#t:ReaderT
まぁ、 kindの宣言を見る限り継続っぽい何かであることは察せられるんですが。。。

6 replies

私はCloudFunctionsを用いたイベント駆動型のサーバーレス設計が好きで...

私はCloudFunctionsを用いたイベント駆動型のサーバーレス設計が好きです。Haskellにそのようなサービスはありますか?

4 replies

JavaScript で Prettier というフォーマッターを最近使っている...

JavaScript で Prettier というフォーマッターを最近使っているのですが、これ保存時に自動的かつ強制的にコードのフォーマットを統一してくるんですね。細かいこだわりとかが無視されてしまうものの、フォーマットを気にしなくて良くなるというユーザ体験はかなり良かったので Haskell 開発でも同じようなことをやってみたいと思っています。

おそらくエディタの保存フックで hfmt や brittany などを走らせればいいと思うのですが、そのようなことをやっている人はいますか? 設定を伺いたいです(できれば Spacemacs か Emacs)。

5 replies

ExcelのRATE関数相当品が、どこかに転がっていないですかね・・・ <htt...

ExcelのRATE関数相当品が、どこかに転がっていないですかね・・・
http://www.excel-list.com/rate.html

4 replies

これって現状, `RecordWildCards` に対応してないって認識でいい...

これって現状, RecordWildCards に対応してないって認識でいいんですかね?なんか対応してない理由とかあるんすかね?(field punsは対応してそうなんですよね)
https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#record-pattern-synonyms

2 replies

過去のコードを読んでいたら ` \u -&gt; return(u,u) ` と...

過去のコードを読んでいたら \u -> return(u,u) というのを見つけたんですが、こういうのってArrowで書くべきなんですかね

2 replies

<#C8KBGEBR7|code-review> で少し触れたのですが、 テスト...

#C8KBGEBR7|code-review で少し触れたのですが、
テストフレームワークはみなさん何がおすすめですかね?個人的にはHSpecをずっと使っていて、この間HUnitを使わざるを得ない状況になったので使ってみたら、HSpecに慣れすぎていたせいか、ものすごく書きにくかったように覚えていまして。。。

2 replies

また、教えて君です :slightly_smiling_face: 型シノニムを...

また、教えて君です 🙂
型シノニムを使用するとき、宣言時のアリティを満さなければならないのですが、そうなっている理由について、いまだに、よくわからないでいます。
そのような制限がないとどのようなことが起こるのでしょうか。

23 replies

Lazy I/O の readFile について resource exhaus...

Lazy I/O の readFile について resource exhausted (Too many open files) という例外を再現しようとして,

main = readFile "file_list.txt" >>= mapM_ (readFile >=> print . length) . lines


というプログラムを書いて ghc-8.2.2 でコンパイルし実行してみたのですが,再現できませんでした.file_list.txt には10万個のファイル名が書いてあり,カレントディレクトリにその10万個のファイルがあります.どうすれば再現できるのでしょうか?.なにか勘違いしている可能性があります.指摘していただければ幸いです.

8 replies

Windowsの質問ですが、Cのヘッダで32ビットか64ビットか判断する方法はあ...

Windowsの質問ですが、Cのヘッダで32ビットか64ビットか判断する方法はありませんか?

8 replies

質問です :raising_hand: [0, 1, 1, 0, 0, 1, ...

質問です 🙋
[0, 1, 1, 0, 0, 1, 0, … みたいな0と1のリスト(もしくは Array Word32 Word8 とか) があった時にこれをビット列とみなしてByteStringに変換する簡単な方法 or 便利な関数ってありませんか?
8個ずつchunksして2のn乗を掛けて足してWord8にしてpackするのは思いついたんですが…

7 replies