4
我想做一個OCaml函數,它將一個字符串中'a的數目加到給定的參數中。OCaml表達式類型問題
let rec count_l_in_word (initial : int) (word : string) : int=
if String.length word = 0 then initial else
if word.[0] = 'a' then
count_l_in_word initial+1 (Str.string_after word 1)
else count_l_in_word initial (Str.string_after word 1)
我得到一個錯誤在說4號線「這個表達string類型 - > INT但這裏int型的使用」。我不確定爲什麼期望表達式'count_l_in_word initial + 1'是一個int。它應該真正期望整行'count_l_in_word initial + 1(Str.string_after word 1)'是一個int。
任何人都可以用這個
謝謝,我想我必須要小心優先。我知道它的工作原理 – Chris
規則IIRC是函數應用比任何運算符都具有更高的優先級。這在FP語言中很常見。 –
不會被解析爲'(count_l_in_word initial)+(1((Str.string_after word)1))'? – newacct