문제

이 OCAML 코드 스 니펫이 주어지면 :

let rec range a b =
  if a > b then []
  else a :: range (a+1) b
  ;;

REPL은 유형이 다음과 같습니다.

val range : int -> int -> int list = <fun>

다음과 같은 입력 제공 :

range 0 4;;

목록을 돌려줍니다.

- : int list = [0; 1; 2; 3; 4]

그러나 입력을 제공합니다

range -4 2;;

오류가 발생합니다.

Characters 0-5:
  range -4 1;;
 ^^^^^
This expression has type int -> int -> int list but is here used with type int.

이것이 나에게 무엇을 말하려고 하는가?

도움이 되었습니까?

해결책

입력하면

range -4 2;;

당신은 그것을 기억해야합니다 - 단일 부정이 아닌 함수, 디스 픽스 기능입니다.

단독 부정을하려면 두 가지 중 하나를 수행 할 수 있습니다.

다른 팁

방금 랩해야한다는 것을 깨달았습니다

-4 in parenthesis

즉, 전화 :

range (-4) 0;;

제공 :

- : int list = [-4; -3; -2; -1; 0]

다른 사람이 같은 문제를 겪을 때이 질문을 남겨 두겠습니다.

문제를 요약하는 것은 바로 그 것입니다 - 토큰의 표시가 아닌 함수로 해석됩니다. 4.

너는 볼 수있어: OCAML 언어 문제 자세한 내용은.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top