【发布时间】:2017-03-14 17:12:26
【问题描述】:
我需要一个 F# 中的递归函数,它给我一个非空列表的最大值。 示例:
biggest [2;4;5;3;9;3]
应该返回 9
更新 1
我正在学习递归函数,这是书中的一个练习,没有答案。我认为可以在这里问,但似乎这不是一个好主意。好吧,我没有写任何代码示例,所以这似乎是一个懒人的家庭作业。无论如何,这是我最好的尝试:
let rec highest l =
match l with
|[] -> 0
|x::y::xs -> if x > y then highest x::xs
else highest y::xs
但这不起作用。我不能使用 F# 函数,这当然是为了学习目的。非常抱歉,如果让您失去了一些时间,并感谢您的帮助。
【问题讨论】:
-
如果这是作业,请在问题中注明。否则回答的人没有正确的上下文。
-
为什么要递归? List.max 做你想做的事。
-
@hvester 可能是因为这是家庭作业。
-
@MarkSeemann 我正在 F# 中学习递归函数并尝试了很多东西,我想这是最好的
let rec highest l =match l with[] -> 0|x::y::xs -> if x>y then highest x::xselse highest y::xs但不起作用 -
@FyodorSoikin 这是本书中学习递归的练习,但没有解决方案,谢谢提示