问题标签 [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.

0 投票
1 回答
657 浏览

scala - 以 Nat 表示的 HList 类型参数的长度

假设我有一个没有参数的方法。如何确定类型参数的长度?

0 投票
1 回答
2114 浏览

python - Tkinter Tix 清单 Hlist 标头配置选项

我希望 tcl/tk 专家可以帮助回答这个关于Tix CheckList Hlist Header的超级利基问题。我要做的就是将背景颜色从难看的灰色更改为白色。

我什至很难知道我可以将哪些选项(cnf={}**kw)用于 tix 中的任何内容。我发现我可以这样做self.checklist.hlist.config().keys()返回:

我不知道如何为实际的标头对象执行此操作以查看可用的选项。

这是它的样子:

Tix CheckList Hlist 标头

这是创建它的代码:

附加信息

顺便说一句,我主要使用这个站点来找出可用的方法hlist- http://epydoc.sourceforge.net/stdlib/Tix.HList-class.html

这个例子也很有帮助:https ://svn.python.org/projects/stackless/trunk/Demo/tix/samples/SHList2.py

我试过什么...

连续几个小时做很多事情。我认为这应该在:

但我已经尝试过:background, selectbackground, bg, color... 等等。它们都以相同的_tkinter.TclError: unknown option "-NAMEHERE"信息结束。

0 投票
1 回答
121 浏览

scala - 避免在返回值中丢失类型信息

我试图找到一种方法来避免在我的方法的返回值中丢失类型信息。

我有以下内容:

使用 IntelliJs“添加类型注释”给出类型:

这很好,除了我不想在调用 mkDefault 时指定 Person 的字段。所以我创建了这个:

现在我可以这样做:

这很好,除了 IntellJ 的推断类型如下所示:

如何使 defs1 的推断类型等于 defs0 的推断类型?

*无需指定 Person 类的字段

0 投票
0 回答
83 浏览

scala - 将多个 JsResult 与 Shapeless 相结合

我正在寻找一种将多个 JsResult 组合成一个的方法。这是我第一次尝试不使用 Shapeless

我想要的是一个采用 n JsResult 并将它们组合成单个 JsResult [(A,B,C,...)] 的函数。现在我知道了 scala 在抽象上的局限性。我使用 Shapeless 尝试了多个代码,但由于 JsResult 是类型构造函数和方差问题,它们都没有编译。这是我脑海中的算法:

编写一个以 Any 类型的 JsResult 的 HList 作为参数的函数。foldRight 在列表上使用 JsSuccess(HNil) 作为初始元素和上述函数的变体(将结果类型更改为 JsResult[HList])作为折叠函数。

这是我的最终代码(未编译)

非常感谢您帮助我了解如何解决此问题。

编辑:我取得了一些进展

此代码编译,它成功地将 JsResult[_] 列表转换为 JsResult[HList] 现在我需要能够将该 HList 转换为元组以将其传递给案例类的元组方法。我查看了涉及使用 Generic 对象的示例,但它没有编译,因为 Generic[some case class].to 方法需要一个 Repr 参数而不是 HList。有没有人有任何想法?谢谢

0 投票
1 回答
1061 浏览

scala - 映射无形 HList 的类型

我一直在尝试映射HList来自 scalashapeless包的类型,但无法访问它们的值。

以下成功映射 HList 的值

凉爽的!implicitly[A =:= B]除了由于某种原因无法使用之外,an 的值HList已被映射,因此它们的类型也已映射。

现在,假设我们没有该HList值,但我们知道它的类型。我们如何映射它的类型?

我根据map 这里的定义尝试了以下内容:

如何在HList不访问其值的情况下获得映射的类型?有没有办法调试为什么编译器不能证明什么?谢谢你的阅读。

0 投票
1 回答
663 浏览

scala - 找不到参数元组的隐式值

在下面的代码中,我试图创建一个 HList 列表,但我在此代码的最后一行遇到编译时错误:

◾找不到参数 tupler 的隐式值:shapeless.ops.hlist.Tupler[shapeless.HList] . 未指定的值参数元组。

输出:

列表('a,'b,'c,'d,'e,'f)::列表('b,'c,'d,'e,'f,'a)::列表('c,' d, 'e, 'f, 'a, 'b) :: HNil


接下来我需要做的是创建这些列表的元组,如下所示:

(列表('a,'b,'c,'d,'e,'f),列表('b,'c,'d,'e,'f,'a),列表('c,'d , 'e, 'f, 'a, 'b))

我正在尝试:


然而,这种方法在 REPL 上运行良好:


对我来说,这似乎是类型参数的问题,但由于我对 Scala 和 Shapeless 的了解有限,我无法理解它。

任何帮助深表感谢!TIA。

0 投票
1 回答
188 浏览

scala - Scala、gremlin-scala、HLists、Poly2、RightFold 和缺少的隐式 Prepend

因此,我试图将一系列操作从封装gremlin-scala到 an中HList,以便我可以RightFold对它们进行 a (这将允许我将 gremlin 查询构造为数据:特别是 an HListof Operations)。

这就是我的意思:通常你可以这样打电话gremlin-scala

这一切都很好,但我希望能够将查询构造为数据。我将其建模为HList这样的Operations

然后我可以通过将它们放在这样的位置来创建查询HList

现在我在 中有了这些HList,我可以RightFold将它们一个一个地应用到图表中:

并这样称呼它:

这一切都有效!并显示出巨大的希望。

这是我遇到问题的地方:当我尝试对操作执行此as操作时,我可以Operation编译:

(我(implicit p: Prepend[In, ::[A, HNil]])在那里添加了这一点,因为编译器正在抱怨)......但是当我尝试为这种情况以及其他情况创建隐式处理程序时,它失败了:

所以,这里有几个问题:

  • 这是什么隐含Prepend的,我为什么需要它?
  • Prepend为什么正常调用时能找到隐式as,但尝试RightFold覆盖时却失败了?
  • 如何创建 的隐式实例Prepend
  • 一旦创建,我将如何将其传递给operate?
  • 这样做的正确方法是什么?

我可能还有更多问题,但这些是主要问题。我一直在阅读有关类型级编程和一般无形编程的文章,我真的很喜欢它,但这种东西令人抓狂。我知道我在这里遗漏了一些微妙的类型的东西,但很难知道从哪里开始破译遗漏的东西。

谢谢你的帮助!我真的很想爱斯卡拉和无形,希望尽快克服这个障碍。

编辑:我做了一个最小的回购在这里重现了这个问题:https ://github.com/bmeg/leprechaun

希望这会有所帮助!

0 投票
1 回答
128 浏览

scala - 按模式排序 HList

假设我有一个 hlist

我有一个模式

如何使用该模式重新排序现有的 hlist?IE

0 投票
4 回答
77 浏览

algorithm - 从列表中定义对的算法

圣诞节快到了:是时候决定谁要给谁送礼物了。我正在寻找这样的算法。

以列表(1 to 10)为例,创建随机对以确保:

  • 每个项目都与另一个项目相关联;
  • 没有任何项目与自身相关联;
  • 每个项目只关联一次。

很明显,一个简单的洗牌是不够的:

例如:

但不是(1送给自己的礼物):

我一直在考虑限制 HList 但是:

  • 我已经无法表达
  • 这可能有点矫枉过正(即使很有趣)
  • 可能有算法可以确保“通过构造”
0 投票
1 回答
928 浏览

json - 使用 Circe 将包含 HList 的案例类解析为 JSON 字符串

我在 Scala 中做一件事。我有以下案例类:

我想使用Circe获得这种类型的 JSON 表示。我还想将生成的 JSON 字符串映射回类型。

circe-shapes 模块会自动推导 HList,从 HList 到 JSON 并返回很容易。看这个例子:

包含“标准”类型的案例类也很简单:

明确 HList 的类型可以创造奇迹,但这有点违背 HList 的目的:

Circe 可以解码任意 HList 吗?