Types Elm中的依赖类型
我想知道是否有可能在Elm中像在Idris中一样执行以下依赖类型的输入:Types Elm中的依赖类型,types,elm,dependent-type,idris,Types,Elm,Dependent Type,Idris,我想知道是否有可能在Elm中像在Idris中一样执行以下依赖类型的输入: isQuestion : String -> Type isQuestion (sentence) with (endsWith "?" sentence) | True = Question | False = Statement 有没有一个库可以让我通过打字达到类似的效果 您可以对联合类型执行类似的操作 type Sentence = Question String | Sta
isQuestion : String -> Type
isQuestion (sentence) with (endsWith "?" sentence)
| True = Question
| False = Statement
有没有一个库可以让我通过打字达到类似的效果 您可以对联合类型执行类似的操作
type Sentence
= Question String
| Statement String
isQuestion : String -> Sentence
isQuestion sentence =
case endsWith "?" sentence of
True -> Question sentence
False -> Statement sentence
这不是依赖类型。这只是一个很好的旧ADT(代数数据类型)。另一个问题:作者真的需要函数中的依赖类型吗?可能不会,而且您的解决方案非常好。对,这个示例太简单了,无法显示依赖类型的需要。但是我想使用与许多不同的依赖类型的类型匹配来创建类型流逻辑,这使得对代码进行推理更加容易。例如,在普通英语中,问题被定义为以问号结尾的语句。这不可能是别的。我可以将其扩展到更多的定义,例如感叹语句是以感叹号结尾的语句,等等。我只是想简明扼要。我很高兴能够用于这种情况,但是带有私有构造函数的联合类型非常有效。一般来说,不,可能有一些特殊情况下可以伪造它,但这并不是Elm near的设计目标