Как я могу упростить этот тип?
-
28-10-2019 - |
Вопрос
Есть какие-нибудь уловки, чтобы уменьшить этот тип?У меня там дублированный кодовый кодовый код.
Монада - это класс типов: x
Решение
Это короче, но не намного полезнее ...
GenracodicetagpreЯ не понимаю, почему вы хотите или нуждаетесь в этом короче, чем есть на самом деле.Каждая вещь имеет свое значение, и несколько названий тоже помогают ее прочитать.
Этот лифт M2 кажется таким легким, насколько это возможно.
Однако, если вы определяете множество функций, которые все имеют общие параметры, вы можете определить их внутри раздела, внутри которого вы можете иметь параметры.Например, посмотрите, как здесь определяется liftM2:
http://mattam.org/repos/coq/oldprelude/Monad.v
Код mon : Monad m
определяется внутри раздела и будет передан всем функциям, которые фактически его используют.После закрытия раздела вы можете проверить подпись, чтобы убедиться, что она действительно передана.
Другие советы
или
GenracodicetagpreВторой изменяет порядок неявных аргументов, но я думаю, что это разумно.
Описание синтаксиса `{} см. здесь .Основное отличие состоит в том, что имя, а не тип является необязательным.Кроме того, неявное поведение аргументов внутри `{} выглядит странным, если только вы начинаете тип с!.