【发布时间】:2018-04-10 01:48:18
【问题描述】:
对于 F#,因为我不能在 List.map 中使用 if 语句,所以我尝试使用辅助函数。如果所有值 y 和 z 都大于或小于中位数,它将返回所有值 y、z 作为 c1 或 c2。但是我在第 12 行遇到类型错误,其中 let L = "..." for "10 20" 表示“预期类型单元但给定类型 int”。不太确定如何解决这个问题。任何建议将不胜感激。
let hold y z median c1 c2 =
if (y > median) && (z > median) then
(c1, c1)
else if (y <= median) && (z <= median) then
(c2, c2)
//line 10
let holder =
let L = L |> List.map (fun (y,z) -> (hold y z median 10 20, hold y z median 10 20)
L
【问题讨论】:
-
您缺少
else将else 0添加到hold。在 F# 中,if-else 是表达式而不是语句。
标签: f#