- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个数据结构,它包含一个 F# 记录列表,其中一个成员本身是一个不同类型的记录列表,大约有 4 个级别的深度层次结构。我必须创建这个结构的代码有点冗长但有效。我现在希望创建一个通用尾递归函数,该函数从层次结构的顶层分解此数据结构的列表,以生成层次结构列表底层中项目数计数的映射。我可以通过创建函数来开发所需的代码来分解层次结构的每个级别的记录,但是您最终会使用相同的递归函数来处理不同记录类型的列表。以下是我尝试以非详细方式实现这一点的方式,但出现以下错误:
This runtime coercion or type test from type
'a
to
MarshallingPanel
involves an indeterminate type based on information prior to this program point. Runtime type tests are not allowed on some types.
let rec mapAsRequired items (currentCBMap: Map<string*string*string*string, int>) =
match items with
| head :: tail ->
match head with
| :? MarshallingPanel as marshallingPanel ->
mapAsRequired marshallingPanel.PLCs currentCBMap
| :? PLC as plc ->
mapAsRequired plc.Racks currentCBMap
| :? Rack as rack ->
mapAsRequired rack.Slots currentCBMap
| _ ->
mapAsRequired [] currentCBMap
mapAsRequired tail currentCBMap
| [] ->
currentCBMap
let rec mapMarshallingPanels (marshallingPanels:MarshallingPanel list) (currentCBMap: Map<string*string*string*string, int>) =
match marshallingPanels with
| head :: tail ->
mapMarshallingPanels tail (mapAsRequired (List.sortBy(fun (plc:PLC) -> rankProcessorForCBAlllocation plc.PLCNo) head.PLCs) currentCBMap)
| [] ->
currentCBMap
mapAsRequired marshallingPanels Map.empty
最佳答案
要解决此问题,您需要匹配 obj
类型的内容。而不是基于不确定类型的值(类型参数 'a
)。你可以通过添加 box
来做到这一点。 :
match box head with
| :? MarshallingPanel as marshallingPanel ->
mapAsRequired marshallingPanel.PLCs currentCBMap
| :? PLC as plc ->
mapAsRequired plc.Racks currentCBMap
关于f# - 递归爬取各种记录类型列表的层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11860955/
我正在尝试将多个水平链接的 Button 和 TextView 垂直链接为 View 集,但仍保持平面 View 层次结构。这是我的初始布局和代码:
到目前为止,我已经在Google BigQuery上训练了几种模型,目前我需要查看模型的外观(即架构,损失函数等)。 有没有办法获取这些信息? 最佳答案 仔细阅读文档后,我可以说该功能尚不存在。我什至
本文实例讲述了PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)。分享给大家供大家参考,具体如下: 前言: 深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个
我是一名优秀的程序员,十分优秀!