Как я включаю поддержку Grails в БЕТЕ Выпуска 9.0 Сообщества ИДЕИ IntelliJ?

В абстрактная алгебра алгебра состоит из некоторых наборов элементов (думайте о каждом наборе как о наборе значений типа), и некоторые операции, которые отображают элементы на элементы.

, Например, предположите, что у Вас есть тип "элементов списка" и тип "списков". Как операции у Вас есть "пустой список", который является функцией с 0 аргументами, возвращая "список" и функцию "недостатков", которая берет два аргумента, "элемент списка" и "список", и производят "список".

В этой точке существует много алгебры, которая соответствует описанию, поскольку две нежелательных вещи могут произойти:

  • могли быть элементы в наборе "списка", который не может быть создан из "пустого списка" и "операции недостатков", так называемого "спама". Это могло быть списками, начинающими с некоторого элемента, который упал с неба, или циклов без начала или бесконечных списков.

  • результаты "недостатков" относились к различным аргументам, могло быть равным, например, концентрирование элемента к непустому списку могло быть равно пустому списку. Это иногда называют "беспорядком".

алгебру, которая не имеет ни одного из этих нежелательных свойств, называют начальная буква , и это - подразумеваемый смысл абстрактного типа данных.

начальная буква имени происходит из свойства, что существует точно один гомоморфизм от начальной алгебры до любой данной алгебры. По существу можно оценить значение списка путем применения операций в другой алгебре, и результат четко определен.

Это становится более сложным для полиморфных типов...

7
задан knorv 18 November 2009 в 13:20
поделиться