이 예제 코드를 가지고재귀 람다
let listToString (lst:list<'a>) = ;;' prettify fix
let rec inner (lst:list<'a>) buffer = ;;' prettify fix
match List.length lst with
| 0 -> buffer
| _ -> inner (List.tl lst) (buffer + ((List.hd lst).ToString()))
inner lst ""
이 내가 F 번호에 걸쳐 계속오고 일반적인 패턴은 (는 순간 끔찍하게 비효율적 인 무시), 나는 자신을 재귀 내부 기능이 필요합니다 어떤 가치를 넘어서 - 나는이 함수가 한 번만 필요하다. 어떤 식 으로든 자기 자신에게서 람다를 호출 할 수있는 방법이 있는가? 나는이 같은보고 코드를 싶습니다
let listToString2 (lst:list<'a>) = ;;' prettify fix
(fun
(lst:list<'a>) buffer -> match List.length lst with ;;' prettify fix
| 0 -> buffer
| _ -> ##RECURSE## (List.tl lst) (buffer + ((List.hd lst).ToString()))
) lst ""
을하지만 예상대로 내가 ## 재귀 ##