【发布时间】:2017-09-01 02:44:29
【问题描述】:
我定义了一个类型
type 'a sexp =
| E of 'a
| T of ( sexp<'a> * sexp<'a> );;
例子:
( "this" . (("is" . "a") . ( "s" . "expression")) )
是一个字符串sexp。
((1.5).2)
是 int 的一个 sexp。
我创建了一个函数 tolist,它给定一个表达式返回一个具有格式的列表。
let rec tolist expr =
match expr with
| Null -> [" "]
| E(x) -> [string x]
| T(l,r) ->
let l = tolist l
let r = tolist r
["("]@(l)@[" . "]@(r)@[")"];;
val tolist : expr:obj sexp -> 字符串列表
我的问题是我想要一个性别而不是像告诉我的 obj 性别。我哪里做错了?
通话就是这样 tolist (T(E("this") , E("is")));;
【问题讨论】:
标签: list recursion f# functional-programming