memory
не является функцией, это просто аббревиатура для типа, который является функцией, которая принимает в качестве входных данных строку и возвращает int.Поэтому, когда вы хотите написать что-то типа string->int
, вы можете просто написать что-то типа memory
.
Например, вместо записи:
- fun foo(f : string->int, s) = f s;
val foo = fn : (string -> int) * string -> int
вы можете написать:
- fun foo( f: memory, s) = f s;
val foo = fn : memory * string -> int
Такие type
объявления могут сделать ваш код более читабельным (например, вместо записи, что пара x
имеет тип int*int
, как (x: int*int)
, вы можете просто создать сокращение type pair = int*int
и затем вы можете написать, что x
имеет тип pair
, например (x: pair)
).