1

以下のコードは、REPL を入力すると機能します。

type seat = seat_type * int
val my_seat = (Window, 13)

fun aow seat =
    case seat of
    (Window,_) => "Window"
      | (Aisle,_) => "Aisle"

fun is_window (x,_) = x = Window

aow my_seat
is_window my_seat

ただし、ファイルに保存してコンパイルすると、コンパイル中に次のエラーで式が失敗しますaow my_seatis_window my_seat

test1.sml:12.23-16.18 Error: operator is not a function [tycon mismatch]
  operator: seat_type
  in expression:
    Window aow

uncaught exception Error
  raised at: ../compiler/TopLevel/interact/evalloop.sml:66.19-66.27
             ../compiler/TopLevel/interact/evalloop.sml:44.55
             ../compiler/TopLevel/interact/evalloop.sml:296.17-296.20

それらをコメントアウトすると、ファイルがコンパイルされ、REPL に両方の式を入力すると機能します。このエラーの原因は何ですか? また、関連する場合は、私のデータ型と型の定義に関するコメントを歓迎します。

4

1 に答える 1