F# 为什么这个公式返回一个单位?
我知道F#函数返回一个单位,如果没有其他返回,但是这个函数返回一个字符串。有人能帮我理解为什么它返回一个单位吗F# 为什么这个公式返回一个单位?,f#,unit-type,F#,Unit Type,我知道F#函数返回一个单位,如果没有其他返回,但是这个函数返回一个字符串。有人能帮我理解为什么它返回一个单位吗 let rec processList aList str = match aList with | h::t -> let x = Regex.Replace(str, h, h, RegexOptions.IgnoreCase) processList t x | [] -> printfn "%s"
let rec processList aList str =
match aList with
| h::t -> let x = Regex.Replace(str, h, h, RegexOptions.IgnoreCase)
processList t x
| [] -> printfn "%s" str
此递归函数的停止情况 |[]->printfn“%s”str
返回单位,因此函数返回单位。另一个分支只递归调用同一个函数。此递归函数的停止情况 |[]->printfn“%s”str
返回单位,因此函数返回单位。另一个分支只递归地调用相同的函数。如果我们分析这两个递归分支,它们的返回类型必须相同 第一个分支有一些返回类型
'a
,它是processList
第二个分支返回unit
,因为这是printfn
的返回类型。你可能只想
| [] -> str
或者对于更复杂的情况,可以使用sprintf
返回格式化字符串,如下所示
| [] -> sprintfn "%s" str
如果我们分析这两个递归分支,它们的返回类型必须相同 第一个分支有一些返回类型
'a
,它是processList
第二个分支返回unit
,因为这是printfn
的返回类型。你可能只想
| [] -> str
或者对于更复杂的情况,可以使用sprintf
返回格式化字符串,如下所示
| [] -> sprintfn "%s" str