问题标签 [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.
haskell - 折叠异构,编译时间,列表
我有一个异构类型的列表(或者至少这是我的想法):
现在,给定一个输入 type b
,我想遍历所有Bits
带有 type的板块b
并总结它们,忽略其他带有 type 的板块b' /= b
:
但是编译器不想要它。并且有充分的理由,因为两个实例声明具有相同的头部。Bits
问题:用任意类型折叠的正确方法是什么?
注意:上面的例子是用
python - 使用 CheckList 和 Hlist 使用 Python 自动检查 Tix 中的子项
我正在使用 Tix 在 Python 中编写一个小程序,该程序构建并显示具有复选框功能的某些文件夹的树视图(只有其中包含某个 xml 文件的文件夹)。每个项目都是可以选择(选中)的文件夹或子文件夹。我为此使用了 CheckList 和 Hlist
基于这个答案:我设法用复选框显示了我想要的文件夹结构。
问题是,每当检查父项时,我都需要自动检查嵌套项,这样我就不需要遍历同一个父项下的每个项。我在使用 Tix 的文档时遇到了很多麻烦。
互联网上似乎存在关于对象和方法的相互矛盾的信息,并且它们往往因信息来源而异。我几乎可以肯定 Hlist 中没有内置功能可以启用此“自动检查”功能,因此如果我错了,请纠正我,我必须自己开发它。
对此有任何提示或想法吗?我将发布所涉及的代码片段和文件夹树视图
首先,我创建清单并找到我感兴趣的目录:
获得文件夹列表后,我将关联的元素添加到要显示的 Hlist
如果存在元素,我不会创建新条目
你将如何进行?
haskell - 修复 HLists 中的类型推断
我一直在尝试编译一些代码。它的意思是采取 a HList
,提取字符串并将它们连接在一起。
不幸的是,当我尝试编译它时,它给了我
我如何说服它使用我声明的实例?
haskell - 实现 HFoldr 时的类型类
我正在尝试实现一个简单的案例,HFoldr
您将 anEndo a
应用于a
. HList
代码如下所示:
如果我 exclude z3
,代码会编译,但是当我实际z3
输入时,我得到
No instance for (Fail (TypeFound [Char]))
arising from a use of ‘hFoldr’
In the expression: hFoldr HUpdateFirst (Endo (++ " X ")) x2
In an equation for ‘z3’:
z3 = hFoldr HUpdateFirst (Endo (++ " X ")) x2
据我所知,这是说如果不在列表中,它无法弄清楚该怎么做String
,但是a)它是并且b)这就是第一个子句的目的。
我怀疑我的问题可能在于没有更好地理解 Haskell 的推理规则,因此任何关于该主题的指针也会受到赞赏。
scala - 用于 HList 的 uPickle 编写器
我正在尝试创建自定义uPickleWriter
以shapeless.HList
转换为简单数组而不是复杂的嵌套对象。
但我无法提供足够的具体证据,我可以用我的poly
我有这个代码:
和编译错误:
找不到参数的隐式值
toTraversableAux: shapeless.ops.hlist.ToTraversable.Aux[mapper.Out,List,upickle.Js.Value]
如何定义函数以通过转换HList
为统一?List
map
scala - 由 foldRight 过滤的 HList 不提供实例
我在用着libraryDependencies += "com.chuusai" %% "shapeless" % "2.2.4"
目前我有模型 HList 类型,如
在我的用户代码中,我想过滤不应该查看的技术部分,如本答案foldRight
中建议的那样:
例如有定义:
折叠工作正常,但突然我无法在此对象上使用以下filter
或map
,例如此代码:
产生编译错误:
错误:找不到参数分区的隐式值:shapeless.ops.hlist.Partition[shapeless.::[Header,shapeless.::[shapeless.::[Customer,shapeless.::[Supplier,shapeless.HNil]] ,shapeless.HNil.type]],标题]
而这
和这个
编译正常
最近我在 's 结果类型HNil.type
的末尾发现很少,foldRight
并将我的过滤器定义更改为
一切正常
这是预期的行为吗,如果是,为什么没有一些
在图书馆?
scala - 未找到 LabelledGeneric 的无形映射器
我有这样定义的基本类型池:
我想介绍一些由这个池中的类型组成的案例类,如下所示:
由于它们将在通过使用此处HList
描述的方法转换为 s实现的特征生成器中大量使用,我想确保呈现类型的每个字段都是
Section
亚型HList
Section
亚型_- 记录可呈现
HList
的Section
子类型
我为这种情况定义了简单的编译时检查器:
但它失败了(删除了包名)
找不到参数映射器的隐式值: Mapper[traverseView.type,::[Header with KeyTag[Symbol with Tagged[String("header")],Header],::[ContractViewPartners with KeyTag[Symbol with Tagged[String( "partners")],ContractViewPartners],::[Tech with KeyTag[Symbol with Tagged[String("tech")],Tech],HNil]]]]
如果我从它的工作中删除partners
部分ContractView
并且如果我尝试解决implicits
它们ContractViewPartners
也会被发现。
再次在写问题时,我找到了添加.values
这样的解决方案
会不会是那种类型with KeyTag[...]
不能作为LabelledGeneric
转换源正常工作?
scala - 如何使用 HList 存在成员创建类型类
我正在尝试创建模仿无形类型类的自定义类型类。它看起来像这样:
假设我提供它的功能是这样的:
所以如果我们定义:
然后
如果我尝试获取这里的麻烦
我有
错误:找不到参数的隐式值
c: IsHCons[View[Viewable]#Result]
我如何定义这个类型类以便以后有效地使用它的所有类型成员?
当然我可以摆脱类型成员:
但从此时起
我遇到了“模棱两可的隐含价值”问题
scala - 将无形标签与 LabelledGenerics 一起使用
假设我想遍历这里描述的案例类泛型表示
我已经定义了一些类型类来描述字段:
定义了一些实例:
和普通用户:
所以现在我可以写了
并得到
res1: 字符串 = 点{x: 1,000,y: 2,000,z: 3,000}
现在我想使用shapeless
标签定义一些字段元数据:
所以Described(invisible(0.5))
现在成功生产
res2: String = 0,500[不可见]
但随着重新定义
产生编译错误:
LeftFolder.Aux[this.Out,Seq[String],DescrFolder.type,Seq[String]]
错误:以类中的方法开头的类型的发散隐式扩展invisibleDescribed
...
我认为该类型X with Tag[Y] with KeyTag[K,X]
没有被识别为FieldType[S, X]
但无法猜测如何修复它。
如何定义适合LeftFolder
这种情况?