Re[12]: Total Functional Programming - сильное ФП
От: lomeo Россия http://lomeo.livejournal.com/
Дата: 20.01.08 11:34
Оценка:
Здравствуйте, lomeo, Вы писали:

L>Так прикол в том, что не надо придумывать


s/Так/Там/
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[12]: Total Functional Programming - сильное ФП
От: deniok Россия  
Дата: 20.01.08 11:39
Оценка:
Здравствуйте, lomeo, Вы писали:

L>Хотя, возможно, с практической точки зрения это неудобно. Может быть использовать его как целевой язык? Хотя тут проблемы с тем же fold — как блин вытащить текущее значение, а не уже отфолденный результат, я так и не понял


Так ана- и ката- этого вроде не позволяют. Параморфизм как раз и предназначен, чтобы "eats its argument and keeps it too". Это из первых бананов (которые с конвертами и колючей проволокой).
Re[13]: Total Functional Programming - сильное ФП
От: Курилка Россия http://kirya.narod.ru/
Дата: 20.01.08 11:40
Оценка:
Здравствуйте, lomeo, Вы писали:

L>Здравствуйте, lomeo, Вы писали:


L>>Так прикол в том, что не надо придумывать отдельные правила


L>s/Так/Там/


Ну вот и вопрос — что удобнее? Явное разделение прям в тексте или по направлению стрелок.
Чисто интуитивно мне кажется, что прямо в тексте лучше, т.к. не надо "дополнительно" заглядывать в домены стрелок.
Хот по сути, насколько я понимаю, решения изоморфны, а интерпретирует человек, поэтому надо с этой стороны "копать"
Re[13]: Total Functional Programming - сильное ФП
От: Курилка Россия http://kirya.narod.ru/
Дата: 20.01.08 11:44
Оценка:
Здравствуйте, deniok, Вы писали:

D>Здравствуйте, lomeo, Вы писали:


L>>Хотя, возможно, с практической точки зрения это неудобно. Может быть использовать его как целевой язык? Хотя тут проблемы с тем же fold — как блин вытащить текущее значение, а не уже отфолденный результат, я так и не понял


D>Так ана- и ката- этого вроде не позволяют. Параморфизм как раз и предназначен, чтобы "eats its argument and keeps it too". Это из первых бананов (которые с конвертами и колючей проволокой).


Ммм, сорри за ламерский вопрос, но бананы (параморфизм) и позволяют "повышать" уровень языка? (с т.зр. экспрессивности языка и теоремы Гёделя).
P.S. Наверное надо будет перечитать про все эти warm fuzzy things в смысле разные -морфизмы
Re[14]: Total Functional Programming - сильное ФП
От: lomeo Россия http://lomeo.livejournal.com/
Дата: 20.01.08 11:53
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Ммм, сорри за ламерский вопрос, но бананы (параморфизм) и позволяют "повышать" уровень языка? (с т.зр. экспрессивности языка и теоремы Гёделя).

К>P.S. Наверное надо будет перечитать про все эти warm fuzzy things в смысле разные -морфизмы

бананы — это ката
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[13]: Total Functional Programming - сильное ФП
От: lomeo Россия http://lomeo.livejournal.com/
Дата: 20.01.08 11:53
Оценка:
Здравствуйте, deniok, Вы писали:

D>Так ана- и ката- этого вроде не позволяют. Параморфизм как раз и предназначен, чтобы "eats its argument and keeps it too". Это из первых бананов (которые с конвертами и колючей проволокой).


Угу. Проблема в том, что пара- там как раз и нет.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[14]: Total Functional Programming - сильное ФП
От: lomeo Россия http://lomeo.livejournal.com/
Дата: 20.01.08 11:53
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Ну вот и вопрос — что удобнее? Явное разделение прям в тексте или по направлению стрелок.


Видимо, как посмотреть. С практической точки зрения (если рассматривать этот язык как инструмент для широкого применения) явное кажется посимпатичнее.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[15]: Total Functional Programming - сильное ФП
От: Курилка Россия http://kirya.narod.ru/
Дата: 20.01.08 11:55
Оценка:
Здравствуйте, lomeo, Вы писали:

L>Здравствуйте, Курилка, Вы писали:


К>>Ммм, сорри за ламерский вопрос, но бананы (параморфизм) и позволяют "повышать" уровень языка? (с т.зр. экспрессивности языка и теоремы Гёделя).

К>>P.S. Наверное надо будет перечитать про все эти warm fuzzy things в смысле разные -морфизмы

L>бананы — это ката


А, сорри, недопонял смысла написаного, дак а что насчёт параморфизма?
Re[14]: Total Functional Programming - сильное ФП
От: deniok Россия  
Дата: 20.01.08 11:57
Оценка:
Здравствуйте, Курилка, Вы писали:



К>Ммм, сорри за ламерский вопрос, но бананы (параморфизм) и позволяют "повышать" уровень языка? (с т.зр. экспрессивности языка и теоремы Гёделя).


Бананы — это ката-.
Линзы — это ана-.
А пара- — это колючая проволока.
Это всё разные примитивы (паттерны) рекурсии. Факториал "естественно" не записать как катаморфизм над Nat = Nil | Succ Nat. Параморфизм как раз об факториало-подобном паттерне.
Re[15]: Total Functional Programming - сильное ФП
От: Курилка Россия http://kirya.narod.ru/
Дата: 20.01.08 11:57
Оценка:
Здравствуйте, lomeo, Вы писали:

L>Здравствуйте, Курилка, Вы писали:


К>>Ну вот и вопрос — что удобнее? Явное разделение прям в тексте или по направлению стрелок.


L>Видимо, как посмотреть. С практической точки зрения (если рассматривать этот язык как инструмент для широкого применения) явное кажется посимпатичнее.


А какие плюсы у "неявного"? Более общее решение, насколько я понимаю?
Re[14]: Total Functional Programming - сильное ФП
От: deniok Россия  
Дата: 20.01.08 12:00
Оценка:
Здравствуйте, lomeo, Вы писали:

L>Здравствуйте, deniok, Вы писали:


D>>Так ана- и ката- этого вроде не позволяют. Параморфизм как раз и предназначен, чтобы "eats its argument and keeps it too". Это из первых бананов (которые с конвертами и колючей проволокой).


L>Угу. Проблема в том, что пара- там как раз и нет.

А. Пора свой язык делать?
Re: Total Functional Programming - сильное ФП
От: Курилка Россия http://kirya.narod.ru/
Дата: 20.01.08 12:04
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Как-то странно, что на РСДН ещё не появилась ссылка о сабже. Там приводится очень интересная работа Тёрнера, раскрывающая тему терминируемости алгоритмов, приводится базовый язык, в котором чётко разделяется data как базис примитивных типов и codata как базис для структурной рекурсии. По сути он говорит, что даже haskell недостаточно строг (формален), т.к. допускает _|_ (bottom), однако эта нестрогость даёт достаточную свободу для решения практических задач, поэтому традиционное ФП он называет слабым, а искомую систему — сильным ФП (аналогично языкам со слабой и сильной системами типов).


Ещё мысль-вопрос в сторону: наличие НФ для терминируемой функции в итоге даёт возможность точно определить время выполнения функции, исходя из известного времени выполнения неких "примитивных" блоков (базиса языка). Я правильно всё понимаю?
Получаем, что фактически нам не нужны гипотетические O(n) становятся и мы можем гарантировать hard real-time, правда со скидкой на производительность и экспрессивность базиса (всёж неполное по Тьюрингу решение выходит)
Re[15]: Total Functional Programming - сильное ФП
От: Курилка Россия http://kirya.narod.ru/
Дата: 20.01.08 12:09
Оценка:
Здравствуйте, deniok, Вы писали:

D>Здравствуйте, lomeo, Вы писали:

L>>Угу. Проблема в том, что пара- там как раз и нет.
D>А. Пора свой язык делать?

Вот и вопрос — имеет ли смысл за базис чарити брать?
Всёж подход Тёрнера мне кажется более вменяемым, но можно транслировать его в код на расширенном чарити...
Интерпретатор правда там на Сях
Имхо за базис Хаскель брать стоит его задницы мне более симпатичны
Re[16]: Total Functional Programming - сильное ФП
От: lomeo Россия http://lomeo.livejournal.com/
Дата: 20.01.08 12:14
Оценка:
Здравствуйте, Курилка, Вы писали:

К>А какие плюсы у "неявного"? Более общее решение, насколько я понимаю?


Это почти язык ТК получается.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[16]: Total Functional Programming - сильное ФП
От: lomeo Россия http://lomeo.livejournal.com/
Дата: 20.01.08 12:14
Оценка:
Здравствуйте, Курилка, Вы писали:

К>А, сорри, недопонял смысла написаного, дак а что насчёт параморфизма?


Нету его
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[16]: Total Functional Programming - сильное ФП
От: deniok Россия  
Дата: 20.01.08 12:14
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Имхо за базис Хаскель брать стоит его задницы мне более симпатичны


Мы же, вроде, без задниц хотим. Не Тьюринг-полный, но со вшитыми паттернами для "правильных" рекурсий...

Блин, некогда Тернера дочитать, только первую половину прочёл в метро
Re[17]: Total Functional Programming - сильное ФП
От: Курилка Россия http://kirya.narod.ru/
Дата: 20.01.08 12:18
Оценка:
Здравствуйте, deniok, Вы писали:

D>Здравствуйте, Курилка, Вы писали:


К>>Имхо за базис Хаскель брать стоит его задницы мне более симпатичны


D>Мы же, вроде, без задниц хотим. Не Тьюринг-полный, но со вшитыми паттернами для "правильных" рекурсий...


D>Блин, некогда Тернера дочитать, только первую половину прочёл в метро


Вот во второй половине "собака" и "порылась"
Суть в том, что целевой язык нам нужен без задниц, а вот интерпретатор (и компилятор, насколько я понимаю они изоморфны ), не может быть без задниц написан в следствие первой теоремы Гёделя о неполноте.
Это, к примеру причина того, что чарити не на чарити, ну и тех мыслей, что я про бутстраппинг приводил.
Re[15]: Total Functional Programming - сильное ФП
От: lomeo Россия http://lomeo.livejournal.com/
Дата: 20.01.08 12:20
Оценка: 7 (1)
Здравствуйте, deniok, Вы писали:

D>Это всё разные примитивы (паттерны) рекурсии. Факториал "естественно" не записать как катаморфизм над Nat = Nil | Succ Nat. Параморфизм как раз об факториало-подобном паттерне.


Потому и написал — с извращением можно, например, сделать

fac n = product [1..n]

и получать текущий элемент при катаморфизме из длины формируемого списка.

Вот написал даже, чтобы оценили уровень извращённости:

rf "PRELUDE.hs".

def to = n => {| zero : () => nil
               | succ : x => cons(sub(n, length x), x)
               |} n.

def product = l => {| nil : () => one
                    | cons : (h,t) => mul(h,t)
                    |} l.

def fac = n => product to n.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[15]: Total Functional Programming - сильное ФП
От: lomeo Россия http://lomeo.livejournal.com/
Дата: 20.01.08 12:20
Оценка: +1 :))
Здравствуйте, deniok, Вы писали:

D>А. Пора свой язык делать?


Вместо того, чтобы трепаться на форумах?? Ну, нееееет....
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[16]: Total Functional Programming - сильное ФП
От: lomeo Россия http://lomeo.livejournal.com/
Дата: 20.01.08 12:20
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Вот и вопрос — имеет ли смысл за базис чарити брать?

К>Всёж подход Тёрнера мне кажется более вменяемым, но можно транслировать его в код на расширенном чарити...
К>Интерпретатор правда там на Сях
К>Имхо за базис Хаскель брать стоит его задницы мне более симпатичны

В смысле ты собираешься сделать такой язык? Отписывайся тогда плз...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.