template-haskell 相关问题

模板Haskell是Haskell的GHC扩展,增加了编译时元编程工具。这允许用户编写在编译时生成或修改程序的程序:一种编译时宏。

检索有界枚举的大小作为Nat

对于我正在编写的库,我希望能够检索具有Bounded和Enum约束的任何类型的大小,作为类型级别的Nat。目的是定义类型类实例,例如:...

回答 2 投票 1

具有Yesod的可配置路径前缀

我有以下Web服务器:{-#LANGUAGE OverloadedStrings#-} {-#LANGUAGE QuasiQuotes#-} {-#LANGUAGE TemplateHaskell#-} {-#LANGUAGE TypeFamilies#-} import Data.Text ...

回答 1 投票 0

获取构造函数名称

[我正在尝试找到一种方法来获取我的数据类型构造函数的名称,作为String data Test = Foo {a :: Int,b :: Int} | Bar {a :: Int} |哈哈| Lel String I'm ...

回答 1 投票 1

生成包含类型族的InstanceD声明

[我正在编写一个函数deriveMyTypeClass :: Q [Dec],其中给定类型的名称,然后遍历它的构造函数并实例化基于该结构编写的类型类。我的类型类看起来...

回答 1 投票 0

Haskell:使拟报价的值严格/在编译时评估

我有一个'Month'类型,大约是新的类型Month = Month Word8,其中不导出Month构造函数;相反,函数mon :: Word8-> Maybe Mon i =如果i> 0 && i&...

回答 1 投票 3

在Haskell中将记录字段作为'Maybe'值访问

在Haskell中,如果我使用单个构造函数指定类型的字段名称,则编译器应生成适当的函数MyType-> fieldType。如果MyType具有多个...

回答 1 投票 2

Haskell。实现一个将字符串作为输入并扩展其压缩表示形式的函数

实现一个函数(myData2Fun),该函数将字符串作为输入,并根据编码序列长度的规则扩展其压缩表示。压缩的本质是...

回答 1 投票 -2

子网站类型的奥秘

当从身份验证插件实现类型类时,我不知道应该在我的Foundation.hs中使用什么类型/它使用auth子站点:我可以感觉到我很亲密,但我缺乏...

回答 1 投票 2

编写一个函数交换,将一个四元组(4个元组)中的字符交换。下面的想象中的详细信息

编写一个函数交换,该交换以下列方式将一个四元组(4个元组)中的字符交换:第一个元素和最后一个元素位于相同的位置,中间的两个翻转。仅使用模式...

回答 1 投票 -3

如何创建代码生成模板使用哈斯克尔非TH包?

我正在做一个小的包,它定义为包装元组,并增加了实例形成它们,像NEWTYPE Tuple2一个= Tuple2 {untuple2 ::(A,A)}导出(...)tuple2 ::一个 - >一 - > Tuple2一种 ...

回答 2 投票 8

枚举类型的自定义派生(读取,显示)

假设我有这种枚举类型:data TVShow = BobsBurgers | MrRobot | BatmanTAS和我想用以下行为定义Read和Show的实例:show BobsBurgers =“Bob's ......

回答 3 投票 3

如何在Haskell中编写模式准引号?

我使用准引号在编译时创建我的智能构造数据类型。这看起来像:导入限定的Data.Text为T import Language.Haskell.TH.Quote(QuasiQuoter(..))import ...

回答 1 投票 4

使用mkName测试模板Haskell

我有一个返回动态绑定类型的函数 - 本质上,ConT $ mkName“MyType”。当然,实际功能要复杂得多,足以让我想写测试...

回答 1 投票 2

编译期间的Eval表达式并将运行时错误视为编译错误

我正在Haskell中使用一个简单的编程语言解释器,在定义标准库时遇到了一些麻烦。我希望它被定义为顶层的静态字符串和...

回答 1 投票 1

Haskell类似于lisp反引和拼接

在一些lisps(例如elisp,常见的lisp)中,有一个称为反引号的功能。它允许在评估或拼接一些元素时构造一个列表。例如:`(1 2(3(+ 4 5)))⇒...

回答 1 投票 4

模板haskell中的拼接类型签名

我正在尝试为模板haskell中的函数创建类型签名。有这么简单的方法吗?在此期间我已经做了一些解决方法,但它应该更容易,对吧? -...

回答 3 投票 7

模板Haskell:生成记录

使用Template Haskell我想生成记录,例如:data MyRecordA = MyRecordA {fooA :: String,barA :: Bool} MyRecordA中的大写A,fooA,barA和第二个类型Bool ...

回答 1 投票 1

haskell中的代码内省是什么?

在yesod书中有一段:Template Haskell本质上是Haskell,它生成一个Haskell抽象语法树(AST)。 TH中实际上有更多的力量,因为它可以......

回答 1 投票 5

镜头和TypeFamilies

我在使用-XTypeFamilies GHC pragma时遇到了使用Control.Lens和数据类型的问题。 { - #LANGUAGE TemplateHaskell# - } { - #LANGUAGE TypeFamilies# - } import Control ....

回答 2 投票 3

© www.soinside.com 2019 - 2024. All rights reserved.