LINUX.ORG.RU

История изменений

Исправление balsoft, (текущая версия) :

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

  1. Каждая «нода» представляет из себя функцию или конкретное значение или тип. Она обязана иметь тип.
  2. «Соединение» нод – применение функции
  3. «Область» – определение новой функции (по сути, именование лямбды) или нового алгтипа с помощью соединения нод и придания этой конструкции имени (имя может быть пиктограммой, это не принципиально)
  4. «Диаграмма» – совокупность областей, причем некоторые области «внутренние» (т.е. видны только для областей данной диаграммы), а некоторые – внешние (т.е. экспортируются и видны и изнутри, и снаружи)
  5. «Программа» – диаграмма, экспортирующая область, именующую аналог main :: IO ()
  6. «Библиотека» – диаграмма, экспортирующая несколько областей.

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

Исходная версия balsoft, :

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

  1. Каждая «нода» представляет из себя функцию или конкретное значение. Она обязана иметь тип.
  2. «Соединение» нод – применение функции
  3. «Область» – определение новой функции (по сути, именование лямбды) или нового алгтипа
  4. «Диаграмма» – совокупность областей, причем некоторые области «внутренние» (т.е. видны только для областей данной диаграммы), а некоторые – внешние (т.е. экспортируются и видны и изнутри, и снаружи)
  5. «Программа» – диаграмма, экспортирующая область, именующую аналог main :: IO ()
  6. «Библиотека» – диаграмма, экспортирующая несколько областей.

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