배열의 값이 true와 일치하면 배열을 통해 int의 목록 (인덱스 값)을 반환하고 싶습니다.Ocaml이 재귀 함수에서리스트를 반환했습니다.
배열은 참/거짓 값의 부울 배열입니다.
let get_elements (i:int)(b:bool) : int =
if b = true then (i::l)
else (())
;;
let rec true_list (b: bool array) : int list =
(fun i l -> get_elements i l)
;;
구문은 내 코드에 대한 잘못과 나는 단지 배열에 해당하는 요소의 인덱스를 반환 할 ints.I의 목록을 반환하는 방법을 정확하게에 혼란 스러워요.
또는과 [배터리] (http://batteries.forge.ocamlcore.org/),'Array.fold_lefti (재미있는 리 (IB) -> 다음에 b 내가 리튬 다른 리튬을 :: 경우) []' . 또한, 당신의 ref 구조의 예에서는 함수를 ref로 캡슐화해야한다고 생각합니다. 왜냐하면 여기에서는 항상 ref를 전역으로 가지고 있기 때문에, 필요한 것보다 훨씬 더 추악하기 때문입니다. – gasche
참조를 포함하지 않은 답변으로 답변을 바꾸어서 기쁘게 생각합니다. – nlucaroni