问题标签 [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 - 以 Nat 表示的 HList 类型参数的长度
假设我有一个没有参数的方法。如何确定类型参数的长度?
python - Tkinter Tix 清单 Hlist 标头配置选项
我希望 tcl/tk 专家可以帮助回答这个关于Tix CheckList Hlist Header的超级利基问题。我要做的就是将背景颜色从难看的灰色更改为白色。
我什至很难知道我可以将哪些选项(cnf={}
或**kw
)用于 tix 中的任何内容。我发现我可以这样做self.checklist.hlist.config().keys()
返回:
我不知道如何为实际的标头对象执行此操作以查看可用的选项。
这是它的样子:
这是创建它的代码:
附加信息:
顺便说一句,我主要使用这个站点来找出可用的方法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"
信息结束。
scala - 避免在返回值中丢失类型信息
我试图找到一种方法来避免在我的方法的返回值中丢失类型信息。
我有以下内容:
使用 IntelliJs“添加类型注释”给出类型:
这很好,除了我不想在调用 mkDefault 时指定 Person 的字段。所以我创建了这个:
现在我可以这样做:
这很好,除了 IntellJ 的推断类型如下所示:
如何使 defs1 的推断类型等于 defs0 的推断类型?
*无需指定 Person 类的字段
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。有没有人有任何想法?谢谢
scala - 映射无形 HList 的类型
我一直在尝试映射HList
来自 scalashapeless
包的类型,但无法访问它们的值。
以下成功映射 HList 的值
凉爽的!implicitly[A =:= B]
除了由于某种原因无法使用之外,an 的值HList
已被映射,因此它们的类型也已映射。
现在,假设我们没有该HList
值,但我们知道它的类型。我们如何映射它的类型?
我根据map
这里的定义尝试了以下内容:
如何在HList
不访问其值的情况下获得映射的类型?有没有办法调试为什么编译器不能证明什么?谢谢你的阅读。
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。
scala - Scala、gremlin-scala、HLists、Poly2、RightFold 和缺少的隐式 Prepend
因此,我试图将一系列操作从封装gremlin-scala
到 an中HList
,以便我可以RightFold
对它们进行 a (这将允许我将 gremlin 查询构造为数据:特别是 an HList
of 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
希望这会有所帮助!
scala - 按模式排序 HList
假设我有一个 hlist
我有一个模式
如何使用该模式重新排序现有的 hlist?IE
algorithm - 从列表中定义对的算法
圣诞节快到了:是时候决定谁要给谁送礼物了。我正在寻找这样的算法。
以列表(1 to 10)
为例,创建随机对以确保:
- 每个项目都与另一个项目相关联;
- 没有任何项目与自身相关联;
- 每个项目只关联一次。
很明显,一个简单的洗牌是不够的:
例如:
但不是(1
送给自己的礼物):
我一直在考虑限制 HList 但是:
- 我已经无法表达
- 这可能有点矫枉过正(即使很有趣)
- 可能有算法可以确保“通过构造”
json - 使用 Circe 将包含 HList 的案例类解析为 JSON 字符串
我在 Scala 中做一件事。我有以下案例类:
我想使用Circe获得这种类型的 JSON 表示。我还想将生成的 JSON 字符串映射回类型。
circe-shapes 模块会自动推导 HList,从 HList 到 JSON 并返回很容易。看这个例子:
包含“标准”类型的案例类也很简单:
明确 HList 的类型可以创造奇迹,但这有点违背 HList 的目的:
Circe 可以解码任意 HList 吗?