Что является порядком типа функции: int -> int -> int -> int?Каков порядок типа функции: int -> int -> int -> int
Я действительно не понимаю, что задает вопрос или где начать выяснение ответа. Кажется, я не могу найти полезные страницы в sml.
Что является порядком типа функции: int -> int -> int -> int?Каков порядок типа функции: int -> int -> int -> int
Я действительно не понимаю, что задает вопрос или где начать выяснение ответа. Кажется, я не могу найти полезные страницы в sml.
Во-первых, ML является функциональным языком, поэтому, если вы недостаточно разбираетесь в материале SML, вы все равно сможете получать полезную информацию из любых ссылок на функциональные языки. Особого внимания заслуживает чтение функций первого порядка и более высокого порядка. Однако это не вопрос ML (или SML), а вопрос функционального программирования.
С оговоркой, что мой функционал знания является, возможно, ржавый:
функция первого порядка, если его аргументы и значение результата как «данные», то есть не другие функции. Функция имеет более высокий порядок, если она принимает другую функцию в качестве параметра или возвращает функцию в качестве параметра.
Порядок функции более высокого порядка затем определяется как один из значений порядка его параметров или возвращаемого значения.
Тип функции int -> int описывает функцию, которая принимает int и выводит int. Таким образом, это первая функция порядка, с порядком 1.
Тип функции Int -> Int -> Int описывает функцию, которая принимает Int, и выводит (функцию, которая принимает Int и выводит Int), например мы можем переписать
int -> int -> int
в
int -> (int -> int)
Таким образом, выход из функции, которая принимает Int другая функция (первого порядка), как я описал выше.
Теперь мы знаем, что порядок параметра (int) равен 1 (это просто данные, а не функция), а порядок вывода (например, функция первого порядка int -> int) также 1, поэтому порядок целого типа функции int -> int -> int, следовательно, 1 + 1, например 2.
Аналогичного расширения следует, что порядок функции типа
int -> int -> int -> int
является 3.