在 Idris 中命名 return 值?
Naming return value in Idris?
在 Idris 中,可以在函数类型声明中显式命名参数,例如
length : (str : String) -> Nat
但是当我尝试命名 return 值时,例如
length : (str : String) -> (lengthOfStr : Nat)
idris 编译器抛出错误
unexpected end of input
expecting "->"
为什么命名参数的相同语法不适用于 return 值?有没有办法在 Idris 中命名 return 值(以便它们可以在文档字符串中引用)?
不,那不可能,请看这个 issue。你关于 doc-string 的问题可能会改变一些观点,为什么不在那里问呢?但可能会有一个问题:有人可能会认为,例如f: (n : Nat) -> (n : Nat)
是有效的,并且只允许 f n = n
作为一个实现。但是不能指定return值,只能指定return类型。
在 Idris 中,可以在函数类型声明中显式命名参数,例如
length : (str : String) -> Nat
但是当我尝试命名 return 值时,例如
length : (str : String) -> (lengthOfStr : Nat)
idris 编译器抛出错误
unexpected end of input expecting "->"
为什么命名参数的相同语法不适用于 return 值?有没有办法在 Idris 中命名 return 值(以便它们可以在文档字符串中引用)?
不,那不可能,请看这个 issue。你关于 doc-string 的问题可能会改变一些观点,为什么不在那里问呢?但可能会有一个问题:有人可能会认为,例如f: (n : Nat) -> (n : Nat)
是有效的,并且只允许 f n = n
作为一个实现。但是不能指定return值,只能指定return类型。