【发布时间】:2017-08-22 02:44:39
【问题描述】:
我正在构建一个小数组语言,并且很难了解如何使用泛型对数组进行编码:
type Shape<'T> =
| Col of array<'T>
| Rel of array<Shape<'T>>
let makeArray (value:array<'T>) = Col value
type ExprC =
| BoolC of bool array
| StrC of string array
| IntC of int array
# Here is ExprC -> Shape<bool>
let eval (ast : ExprC) =
match ast with
| BoolC(v) -> makeArray v
| StrC(v) -> makeArray v
| IntC(v) -> makeArray v
我想要一种将任何 .NET 对象编码为数组但又能够用 lang 解释它的方法。
【问题讨论】:
-
我对这个问题不太清楚。您能否提供更多信息或您打算如何使用此代码的示例。
-
我想避免对所有值进行装箱/拆箱,所以想知道是否有办法让
eval变成ExprC -> Shape<'T>
标签: generics f# interpreter algebraic-data-types