我可以在Idris中指定因变量的名称吗? 我想动态生成一个函数,该函数接受名为 的自然数,就像chars的输入向量一样? 伊德里斯有可能吗?
我有一个工作函数fn
,该函数创建了一个从属函数,但变量名称错误。
fn : Vect n Char -> Type -> Vect m Nat -> Type
fn [] a ys = Tensor ys a
fn (x :: xs) a ys = (i : Nat) -> fn xs a (i::ys)
data Tensor : Vect rank Nat -> Type -> Type where
....
预期结果:
λΠ> fn ['i','j','k'] Double []
(i : Nat) -> (j : Nat) -> (k : Nat) -> Tensor [i, j, k] Double : Type
实际结果:
λΠ> fn ['i','j','k'] Double []
(i : Nat) -> (i1 : Nat) -> (i2 : Nat) -> Tensor [i2, i1, i] Double : Type