它只返回一些“”,但我需要返回“无”。
我该怎么做?
let cat(filenames: string list) : string option =
try
let b = filenames |> List.map (fun x -> (defaultArg (concat(x)) ""))
Some (String.concat "" b)
with _ -> None
答案 0 :(得分:2)
它返回some ""
,因为空列表不会引起异常。您需要匹配一个空列表并返回None。我也不确定List.map
是否与您在此处尝试执行的concat对齐,也许您是说List.reduce
吗?
这样的事情可能会起作用。
let cat filenames =
match filenames with
| [] -> None
| l -> l |> List.reduce (+) |> Some