gpt4 book ai didi

haskell - GHC 7.6 中类型级别 Nat 的匹配

转载 作者:行者123 更新时间:2023-12-02 09:03:45 26 4
gpt4 key购买 nike

我的问题可能最容易以示例的形式解释:

type family   Take (n :: Nat) (xs :: [k]) :: [k]
type instance Take 0 xs = '[]
type instance Take (n+1) (x ': xs) = x ': Take n xs

这里的第二个实例被拒绝,因为 (+) 本身就是一个类型族,不能在参数中使用。但似乎没有任何 Succ 或任何通常用于匹配 Nats 的东西。

那么,这个可以表达吗?如果是这样,怎么办?

更新。我注意到 GHC.TypeLits 中的 isZeroisEven 函数位于“破坏 type-nats”标题下。它们是否意味着以某种方式在类型级别使用?我怀疑不会……但主要是因为我不知道该怎么做。 :)

最佳答案

我认为这是当前 TypeNats 实现中的一个已知问题。但它正在开发中,看看: https://plus.google.com/117760254622432568621/posts/iMYU2SMViay

关于haskell - GHC 7.6 中类型级别 Nat 的匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12463474/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com