В моем случае я использую Linux Mint, но я предполагаю, что все репозитории в этой OS являются все еще тем же как в Ubuntu, Используя майя Linux Mint (Ubuntu 12.04, эквивалентная в точном), я следовал за этим форумом
http://forums.linuxmint.com/viewtopic.php?f=42&t=102602
, Так как Nvidia-96 не доступен ни на каких старших версиях (точный и верхний, я предполагаю), на этом форуме, они пытались получить пакет Nvidia к более низкой (сновещательной) версии человечности и использовать его для их текущей ОС и понизить их Xorg до сновещательного.
Теперь эти шаги все еще работают в моей системе, и я использую сновещательный nvidia-96. Nvidia-173 также доступен сновещательному репозиторию. Но прочитайте все рекомендации в ссылке выше для предотвращения проблем.
Мы используем средства доказательства теорем для формального моделирования (с проверкой), такие как Isabelle или Coq. Иногда мы используем предметно-зависимые языки (например, Cryptol) для проектирования высокого уровня, прежде чем выводить реализацию Haskell «низкого уровня».
Часто мы просто используем Haskell в качестве языка моделирования и получаем фактическую реализацию путем переписывания.
Я считаю, что язык моделирования для Haskell называется « math ». Его часто преподают в школах.
Да, Haskell.
У меня сложилось впечатление, что программисты, использующие функциональные языки, не чувствуют необходимости упрощать свой выбор языка, когда думают о своем дизайне, что является одним (скорее glib) способ просмотра того, что UML делает для вас.
Я посмотрел несколько видеоинтервью и прочитал несколько интервью с Эриком Мейером и Саймоном Пейтон-Джонсом. Похоже, что когда дело доходит до моделирования и понимания проблемной области, они используют сигнатуры типов, особенно функциональные сигнатуры.
Диаграммы последовательностей (UML) могут быть связаны с составом функций. Статическая диаграмма классов (UML) может быть связана с сигнатурами типов.
В Haskell вы моделируете по типам.
Просто начните с написания ваших сигнатур функций, классов и данных без какой-либо реализации и попытайтесь подогнать типы. Следующий шаг - QuickCheck.
Например. для моделирования сортировки:
class Ord a where
compare :: a -> a -> Ordering
sort :: Ord a => [a] -> [a]
sort = undefined
затем тесты
prop_preservesLength l = (length l) == (length $ sort l)
...
и, наконец, реализация ...