模板Haskell是Haskell的GHC扩展,增加了编译时元编程工具。这允许用户编写在编译时生成或修改程序的程序:一种编译时宏。
对于我正在编写的库,我希望能够检索具有Bounded和Enum约束的任何类型的大小,作为类型级别的Nat。目的是定义类型类实例,例如:...
我有以下Web服务器:{-#LANGUAGE OverloadedStrings#-} {-#LANGUAGE QuasiQuotes#-} {-#LANGUAGE TemplateHaskell#-} {-#LANGUAGE TypeFamilies#-} import Data.Text ...
[我正在尝试找到一种方法来获取我的数据类型构造函数的名称,作为String data Test = Foo {a :: Int,b :: Int} | Bar {a :: Int} |哈哈| Lel String I'm ...
[我正在编写一个函数deriveMyTypeClass :: Q [Dec],其中给定类型的名称,然后遍历它的构造函数并实例化基于该结构编写的类型类。我的类型类看起来...
我有一个'Month'类型,大约是新的类型Month = Month Word8,其中不导出Month构造函数;相反,函数mon :: Word8-> Maybe Mon i =如果i> 0 && i&...
在Haskell中,如果我使用单个构造函数指定类型的字段名称,则编译器应生成适当的函数MyType-> fieldType。如果MyType具有多个...
Haskell。实现一个将字符串作为输入并扩展其压缩表示形式的函数
实现一个函数(myData2Fun),该函数将字符串作为输入,并根据编码序列长度的规则扩展其压缩表示。压缩的本质是...
当从身份验证插件实现类型类时,我不知道应该在我的Foundation.hs中使用什么类型/它使用auth子站点:我可以感觉到我很亲密,但我缺乏...
编写一个函数交换,将一个四元组(4个元组)中的字符交换。下面的想象中的详细信息
编写一个函数交换,该交换以下列方式将一个四元组(4个元组)中的字符交换:第一个元素和最后一个元素位于相同的位置,中间的两个翻转。仅使用模式...
我正在做一个小的包,它定义为包装元组,并增加了实例形成它们,像NEWTYPE Tuple2一个= Tuple2 {untuple2 ::(A,A)}导出(...)tuple2 ::一个 - >一 - > Tuple2一种 ...
假设我有这种枚举类型:data TVShow = BobsBurgers | MrRobot | BatmanTAS和我想用以下行为定义Read和Show的实例:show BobsBurgers =“Bob's ......
我使用准引号在编译时创建我的智能构造数据类型。这看起来像:导入限定的Data.Text为T import Language.Haskell.TH.Quote(QuasiQuoter(..))import ...
我有一个返回动态绑定类型的函数 - 本质上,ConT $ mkName“MyType”。当然,实际功能要复杂得多,足以让我想写测试...
我正在Haskell中使用一个简单的编程语言解释器,在定义标准库时遇到了一些麻烦。我希望它被定义为顶层的静态字符串和...
在一些lisps(例如elisp,常见的lisp)中,有一个称为反引号的功能。它允许在评估或拼接一些元素时构造一个列表。例如:`(1 2(3(+ 4 5)))⇒...
我正在尝试为模板haskell中的函数创建类型签名。有这么简单的方法吗?在此期间我已经做了一些解决方法,但它应该更容易,对吧? -...
使用Template Haskell我想生成记录,例如:data MyRecordA = MyRecordA {fooA :: String,barA :: Bool} MyRecordA中的大写A,fooA,barA和第二个类型Bool ...
在yesod书中有一段:Template Haskell本质上是Haskell,它生成一个Haskell抽象语法树(AST)。 TH中实际上有更多的力量,因为它可以......
我在使用-XTypeFamilies GHC pragma时遇到了使用Control.Lens和数据类型的问题。 { - #LANGUAGE TemplateHaskell# - } { - #LANGUAGE TypeFamilies# - } import Control ....