【发布时间】:2020-06-21 02:15:27
【问题描述】:
我是 F# 新手,我的代码有问题。定义一个函数 search 是一个简单的问题,它接受一个布尔函数和一个列表并返回一个索引。比如:
> search (fun x -> x > 10) [ 2; 12; 3; 23; 62; 8; 2 ];;
val it : int = 1
> search (fun s -> s < "horse") [ "pig"; "lion"; "horse"; "cow"; "turkey" ];;
val it : int = 3
我现在找到了正确的匹配项,但我不知道如何返回一个数字而不是列表的其余部分。我知道我得到的是列表而不是返回值,因为我写了“if f head then list”。我不知道我应该放什么,或者我所拥有的不会得到我想要的结果。
下面是我写的代码。
let rec search f list =
match list with
| [] -> [-1]
| head::tail ->
if f head then list
else search f tail
【问题讨论】:
标签: recursion search functional-programming f# boolean