【发布时间】:2014-04-27 01:34:03
【问题描述】:
我是 F# 菜鸟。我正在尝试创建一个函数来格式化结果元组,其中最后一个元素可能存在也可能不存在 - 因为它旨在保存在处理过程中可能捕获的任何异常。
let formatResults resultsTuple =
match resultsTuple with
|(name1, name2, diff, count, correlation, None) -> (sprintf "%A and %A with diff %A had %A pairs and showed a correlation coefficient of %A" name1 name2 diff count correlation)
|(name1, name2, diff, _, _, Some(ex)) -> (sprintf "Error: %A and %A with diff %A threw exception %A" name1, name2, diff, ex) |> sprintf "%A"
在最后一行看到我如何将第一个 sprintf 的结果通过管道传输到第二个 sprintf 中?基本上,它告诉我我在某个地方遇到了语法错误,并且程序没有按照我的想法执行。 (初步测试似乎给出了合理的输出,但这让我感到紧张。)
为什么可以编译,但不能编译?它给了我编译错误“这个表达式应该有类型字符串,但这里有类型'a *'b *'c *'d”。
let formatResults resultsTuple =
match resultsTuple with
|(name1, name2, diff, count, correlation, None) -> sprintf "%A and %A with diff %A had %A pairs and showed a correlation coefficient of %A" name1 name2 diff count correlation
|(name1, name2, diff, _, _, Some(ex)) -> sprintf "Error: %A and %A with diff %A threw exception %A" name1, name2, diff, ex
【问题讨论】:
标签: f#