0

そのため、OCaml でのデバッグに問題があります。問題は、私が非常に単純なコードを書いていることですが、簡単に修正できるように思われる問題が発生し続けています - どうすればいいのかわかりません!

    let rec multiplier (int1: int) (int2: int) (int3: int) : int =
    let product : int
if int1 >= int2 then(
    if int1 >= int3 then product = int1 * int2
    else product = int1 * int3
)
else if int2 >= int1 then( 
    if int1 >= int3 then product = int2 * int1
    else product = int2 * int3 
)

最初の「if」の下に赤い「x」と波線が表示され続け、「予期しないトークン: if」というエラーが表示されます。

ありがとう!

4

1 に答える 1

2

=割り当てだとは思わないでください。Ocamlには基本的に割り当てはありません(:=参照に使用される場合を除く)。

のようなものを書く

 let area : int = 
   if side1 >= side2 then ( 
     if side2 >= side3 then side1 * side3
     else side1 * side3
    )
   else if side2 >= side1 then ( 
     if side1 >= side3 then side2 * side1
     else side2 * side3
   )
   else 0 

if... then.... else.... 構文は式であることを思い出してください。ステートメントよりも、Cの三項?:条件演算子に似ています。if

Ocaml にはステートメントがなく、式しかないことに注意してください。(その;演算子の例は、 compute を意味するa;b C のコンマ演算子に似ており、結果を破棄し、式全体の結果を計算して計算します)a,bab

于 2012-09-09T17:31:33.303 に答える