2014-11-11 5 views
0

파일의 각 문자 수를 얻기 위해 OCaml에서이 문자를 작성하기 시작했습니다. 내가 ocamlc -c로 컴파일 할 때구문 오류 OCaml

open Hashtbl;; 

type 'a option = None | Some of 'a;; 

let rec charCount fd ht = 
    let x = 
    try Some (input_char fd) 
    with End_of_file -> None 
    in 
    match x with 
    | Some c -> 
    let val = 
     try find (ht c) 
     with Not_found -> 0 
    in 
    replace ht c (val+1); 
    charCount fd ht 
    | None ->();; 

let ht = create 0;; 

let loadHisto fn = 
    let fd = open_in fn 
    in 
    charCount fd ht;; 
    loadHisto "testfile";; 
    iter printf("%s => %s\n") ht;; 

내가 메시지를 얻을 :

Error: Syntax error:

+2

을 사용할 수 없습니다 'Hashtbl' 모듈을 실제 코드로 열지 말 것을 권합니다. 이것이 그 의도 된 용도라면, 그 기능은 덜 일반적인 이름을 가질 필요가 있습니다. –

답변

2

val는 예약어입니다, 당신은 내가, 측면 주석으로 그것을

+2

고마워, 많은 키스 ... – user3581210

+0

하지만 슬프게도 이해할 수없는 또 다른 오류가 있습니다 : "오류 :이 표현식은 유형이 int이지만 표현식이 'a ->'b"유형이어야합니다 (행 : 어떤 c -> val = Let find (ht c) Not_found -> 0) – user3581210

+1

find (ht c)는 아마도 find ht c이어야합니다. 'ht'는 함수가 아니며'(ht c)'는'ht'에 대한 함수 호출입니다. –