问题标签 [hlist]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - 将 HList 中的验证应用于案例类
在尝试使用应用程序函子进行验证(Monad 捕获多个异常(不仅仅是单个失败))时,我在 scalaz 中遇到了一个硬限制,它不允许超过 14 个函子,所以这里有一个有用的评论(https://github .com/scalaz/scalaz/issues/504#issuecomment-23626237)引导我使用 HLists 而不是应用函子
现在它工作得非常好(由于它不在 maven https://github.com/typelevel/shapeless-contrib/blob/master/scalaz/main/scala/sequence.scala中,因此必须从这里手动放入这个序列文件之后?来源=c )
我的问题是,我知道这是可能的,你将如何自动实例化case class Foo(i:Int,s:String)
而不需要手动将模式与案例匹配,只是再次重新应用参数
本质上我想做这样的事情
list - Scala 函数中的异构参数
我怎样才能通过一些HList
作为论点?所以我可以这样制作:
但是,如果我有一个很长的列表,而我对此一无所知,我该如何对其进行一些操作呢?我怎样才能传递参数而不丢失它的类型?
scala - 压缩 HLists 的推断函数类型
感谢https://github.com/milessabin/shapeless/wiki/Feature-overview:-shapeless-2.0.0我了解如何压缩无形 HLists:
从 Shapeless 2.0.0-M1 导入一些东西:
创建两个 HList:
压缩它们:
现在尝试定义一个做同样事情的函数:
推断的返回类型是 Unit,实际上将 f 应用于 h1 和 h2 就是这样做的:
有没有办法定义 f 以便在这种情况下得到 ((5,6),(a,b)) ?
最终,我要做的是定义一个函数,它压缩两个 HList,然后映射它们,选择 _1 或 _2 基于抛硬币,这将产生另一个 HL。
在 REPL 中运行良好:
但是当我试图把它拉到一个函数中时,我被上述问题绊倒了。
谢谢!
scala - 如何使用新的 Slick 2.0 HList 来克服 22 列限制?
我目前正在编写 Slick 代码以针对具有两个表 > 22 列的旧模式。如何使用新的 HList 代码?在 Scala 2.10.3 下,我的 2.0-M3 在其他方面工作正常。这是我目前在案例类/元组中使用的语法。我会怎么做才能使用文档中提到的新 HLists?
我在示例中看不到任何内容,仅在新更新的文档中简要提及。我是 Scala 和 Slick 的新手。
scala - 在 poly 函数中键入擦除,scala
所以我想在 a 上创建一个 map 函数HList
,但我需要检查应用函数中的一些条件。喜欢:
结果,我们丢失了有关元素的所有type
信息t.head
;顺便说一句,如果我们构建“干净”功能:
那么,显然,一切都好。
所以问题是:如何处理它,并制作这样的功能(如果可能的话)或者我应该寻找另一种方式?为什么这里可以进行类型擦除?
scala - scala - HList 的通用解压缩
我有以下斯卡拉问题:
编写一个函数来获取 HLists 的列表
并返回 HList of Lists
这有点像通用的 unzipN。任意HList是否有可能?
谢谢你。
scala - 对无形 HList 内容的类型推断
这个例子被简化了。
我有一组这样的类:
在以下代码中,类型被正确推断:
我不知道如何正确推断以下类型:
有没有办法可以KeyType
根据内容推断HList
?
scala - 查找 Shapeless HList 的类型类实例
假设我有一个Show[T]
Scalaz 中的特征:https ://github.com/scalaz/scalaz/blob/scalaz-seven/core/src/main/scala/scalaz/Show.scala#L9
我也有一个HList
可能看起来像的无形"1" :: 2 :: 3L :: HNil
。
有没有办法找到Show
每个元素的实例并应用shows
到我最终得到的结果"1" :: "2" :: "3L" :: HNil
?
如果任何元素的类型在范围内没有隐式Show
实例,我会想要一个编译错误。
我认为如果我构建一个HList
实例,Show
我应该能够使用它zipApply
来获得HList
我想要的,但我不知道是否有办法让 Scala 推断HList
实例Show
而不是我手动构建它.
scala - 选项签入 HList,Scala
所以,有以下hlists
几种选择:
要创建一个包含所有匹配类型对象(它们的 TypeTags)的新列表,可以使用liftA2
函数(https://stackoverflow.com/a/14456938/1092399)(注意:有重复的类型和很多HNil
对象结果,但这不是问题):
所以现在的目标是跳过所有空Option
对象(如果我们能做到这一点,那么就有机会建立一个匹配所有空Option
对象的列表);我们需要这样的东西:
上面的函数是错误的,因为发生了类型擦除(在结果中键入 ~ Product with Serializable with shapeless.HList
)。所以问题是:有没有办法进行这样的检查,或者它完全不真实?
case
ps在这种情况下这是一个非常有趣的类型:Product with Serializable with shapeless.HList
haskell - 你如何在 HList 中注释类型
我正在尝试使用 HList,我需要对其进行注释,但我不知道该怎么做。
如果如果在 ghci 中键入以下内容
我得到以下类型签名:
HList ((':) * [字符] ('[] *))
我真的不明白。如果尝试使用此签名,我得到一个错误
“你好” 。*。HNil :: HList ((':) * [Char] ('[] *))
我有一个错误
我应该怎么办 ?
(我已经看到使用的东西,:*:
所以理论上我可以这样做,String :*: HNil
但它找不到:*:
.