[英]F# Discriminated Unions and Printing
解决此问题的方法是通过expr
上的模式匹配实现toString
,并为Const
和BinOpr
输出相应的字符串:
Const
,您只需将int
转换为字符串即可。 BinOpr
,您必须构建一个表单的字符串(<expr> <op> <expr>)
。 尝试自己实现这个功能,并不是那么困难但是如果你遇到困难,我提供下面的解决方案。
let rec toString expr =
match expr with
| Const x -> string x
| BinOpr (e1, op, e2) -> sprintf "(%s %s %s)" (toString e1) op (toString e2)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.