true 또는 false 벡터를 사용하는 함수를 만들려고합니다. 이 벡터는 이진수를 나타내며, I 함수에서 정수로 변환 할 이 내 코드ocaml의 선택적 매개 변수 오류
let rec int_of_vec x ?(i=1) = match x with
[] -> 0
| True::t -> (1*i) + int_of_vec t ~(i:(i*2))
| False::t -> 0 + int_of_vec t ~(i:(i*2))
;;
이다하지만 내가 정확히 모르겠어요 선택적 매개 변수 다루는 점점 오류를 계속 I 내가 Ocaml을 처음 접했을 때 잘못하고있다.
방금 편집을 사용하여 고맙습니다. 하지만이 경우 헬퍼 함수가 더 적합한 이유가 무엇인지 궁금합니다. – user2823747
이것은 여러 벡터를 하나의 숫자로 조합하는 더 큰 계산의 일부가 아니라면 유용하지 않은 외부 매개 변수를 포함합니다 발신자에게. 이로 인해 기능을 이해하기가 어려워지고 오류가 발생하기 쉽습니다. 다시 말해,'i' 매개 변수는 구현의 일부이며 인터페이스 (유형)의 일부가되어서는 안됩니다. –