Idris是一种具有依赖类型的通用纯函数式编程语言。
如何理解Idris lang中List和Vect的类型声明和定义?
在Idris doc中有以下几行:数据列表a = Nil | (::) a(列表a)数据Vect:Nat->类型->类型,其中Nil:Vect Z a(::):a-> Vect ka-> Vect(S k)a I ...
这个问题的最简单的例子(但不是我能展示的唯一例子)是:假设我得到了一个高阶函数f:(a-> b)-> c。我想证明f =(\ g => f(\ x => g x)...
我有一个问题,即使我只是使用编译器来指导模式匹配,Idris中的模式匹配也会给出“不可访问的模式变量”错误。这是我的例子...
我正在尝试学习idris范例并且仍在挣扎。在这里,我有一个函数isZero,它接受一些自然的Nat并返回True或False。我的问题是关于非拘泥案。名称空间...
我试图通过证明三角形的闭合形式来计算三角形的计算方法的等价性,从而绕开一些简单的证明。到目前为止,我已经设法完成了所有...
我玩耍的PureScript码小块移植到伊德里斯在那里依赖类型可以应用和整个地方使用依赖型内情况下不能正常工作的情况下跌跌撞撞。 ...
所以我编写了以下类型来证明Integers的一些属性:data Number:Type其中PosN:Nat - > Number Zero:Number NegN:Nat - > Number plus PosNeg:Nat - > ...
我正在从官方文档中学习。我试图修改第一个例子:isSingleton:Bool - > Type isSingleton True = Nat isSingleton False = List Nat mkSingle:(x:Bool) - > ...
我正试图在Idris写一个chop函数。 Haskell的等价物看起来像:chop :: Int - > [t] - > [[t]] chop n [] = [] chop n v = take n v:chop n(drop n v)我最初的尝试...
我编写了以下类型来编码所有可能的有理数:data Number:Type其中PosN:Nat - > Number Zero:Number NegN:Nat - > Number Ratio:Number -...
我有一个数据结构记录IdentityPreservingMorphism域codomain,其中构造函数MkMorphismOfMonoids func:domain - > codomain funcRespId :( Monoid domain,Monoid codomain)=> ...
假设我有一个函数f:Ord a => ...这需要一个to和Ord实例。我可以使用f访问Ord一个实例:Ord a => ... f @ {ord} ...因为Eq a => Ord a,a需要......
表达正常数据类型(如列表和nat)非常简单,并且有很多示例。但是,翻译GADT的通用程序是什么?翻译典型的一些例子......
我想创建一个给定函数类型(例如String - > Nat - > Bool)的函数,它将返回与该函数类型对应的类型列表(例如[String,Nat,Bool])。大概......
我正在尝试编写一个测试代码来检查plusComm:(a:Nat) - >(b:Nat) - > a + b = b + a确实在自然数上证明了a + b = b + a,即代码不会伪造一个使用类型的孔,...
假设我想定义一种类型的证明,某些向量具有一定的总和。我也喜欢这个证据适用于任何Monoid类型。我的第一次尝试是这样的:数据HasSum:Monoid t => t - > ...
我问了一个关于伊德里斯的类型检查宇宙方法的问题。现在我正在尝试一些会导致宇宙不一致的例子。这是我能想出的最简单的foo:输入foo ...
我试图在使用nix-shell环境(方向)离开Idris一段时间之后编译以下“hello world”源文件:模块主要导入效果导入Effect.StdIO你好:Eff ...
Idris / cabal在Windows上从removePathRecursive安装问题
使用以下说明在Windows 10上安装Idris:在此替换后安装Haskell,使用; @gergelybat在此c:\ Users \ me \ cabal更新中报告的配置文件的多行路径...
我正在学习“伊德里斯”的第一步。我正在使用这个教程:http://docs.idris-lang.org/en/latest/tutorial/starting.html我创建了一个名为“hello.idr”的文件。该文件的内容是:...