У меня есть эти две функции
//Remove all even indexed elements from a list and return the rest
let rec removeEven l =
match l with
| x0::x1::xs -> x1::removeEven (xs)
| [] -> []
| [_] -> []
//combine list members into pairs
let rec combinePair l =
match l with
| x0::x1::xs -> (x0,x1) :: combinePair(xs)
| [] -> []
| [_] -> []
Та работа.
Но я подумал, что теперь, когда я был в этом, я мог бы также немного узнать о хвостовой рекурсии, с которой мне трудно разобраться.
Вот почему я подумал, что если бы я мог получить помощь в создании функций, которые я сделал для себя хвостовой рекурсией, возможно, стало бы более понятно, как это работает, вместо того, чтобы читать где-то пример, который я мог бы не понять, а также мой собственный код (помните, Я полный F# новичок :))
Любые другие конструктивные комментарии о моем коде, конечно же, только приветствуются!
removeEven [1;2]
возвращает[2]
? Я скопировал его поведение в своем ответе, но, похоже, его следует называтьreturnEven
илиremoveOdd
или что-то в этом роде. - person Daniel   schedule 21.02.2012