Como posso criar um tipo com vários parâmetros em OCaml?
-
22-07-2019 - |
Pergunta
Eu estou tentando criar um tipo que tem vários parâmetros de tipo. Eu sei como fazer um tipo com um parâmetro:
type 'a foo = 'a * int
Mas eu preciso ter dois parâmetros, para que eu possa parametrizar a parte 'int'. Como posso fazer isso?
Solução
A maneira de fazer isso é:
type ('a, 'b) foo = 'a * 'b
parâmetros de tipo não são curry, então você precisará fornecê-los em forma tupla como um único parâmetro. Um bom exemplo disso é o módulo Hashtbl:
type ('a, 'b) t
O tipo de tabelas de hash de 'tipo um o tipo b'.
Outras dicas
# type ('a, 'b) couple = 'a * 'b ;;
Por exemplo ...
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow