相关疑难解决方法(0)

使用GHC.TypeLits和单例复制长度索引列表的函数

我正在尝试使用GHC.TypeLits,singletonsconstraints中的机制为长度索引列表编写复制函数.

Vect类型和签名replicateVec给出如下:

data Vect :: Nat -> Type -> Type where
  VNil  :: Vect 0 a
  VCons :: a -> Vect (n - 1) a -> Vect n a

replicateVec :: forall n a. SNat n -> a -> Vect n a
Run Code Online (Sandbox Code Playgroud)

你怎么写这个replicateVec功能?


我有一个replicateVec编译和类型检查的版本,但它似乎在运行时进入无限循环.代码如下.我添加了评论,试图使我使用的法律和证据更容易理解:

{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE …
Run Code Online (Sandbox Code Playgroud)

haskell list dependent-type singleton-type

1
推荐指数
1
解决办法
112
查看次数

标签 统计

dependent-type ×1

haskell ×1

list ×1

singleton-type ×1