Re[15]: Мифический Haskell
От: FR  
Дата: 22.02.12 05:32
Оценка:
Здравствуйте, alex_public, Вы писали:

_>В смысле синтаксиса согласен. Но других то инструментов с сопоставимыми возможностями не видно. Только всякие кривые домашние велосипеды. А у xslt один docbook чего стоит. )


Ну вроде инструменты есть:

http://www.cduce.org/

То же самое встроенное в OCaml http://www.cduce.org/ocaml
Re[17]: Мифический Haskell
От: Паблик Морозов  
Дата: 22.02.12 09:08
Оценка:
Здравствуйте, alex_public, Вы писали:

_>А так, ничего даже близкого на php (даже если забыть, что это жутчайший язык сам по себе) нет. Скажем на xslt у меня код в две строки генерирует chm файл из xml файла. Другие две строки генерируют полноценный "сайт" (с навигацией и т.п.) из того же xml файла. А ещё другие две строки (ну там может чуть больше) генерируют красиво оформленный pdf из того же xml файла. Не знаю как сделать тоже самое на php таким же количеством кода. )))


На php еще проще:
generate_chm_from_xml();
generate_complete_site_from_xml();
generate_nicely_designed_pdf_from_the_same_xml();


И это не говоря про то, что промежуточное представление в виде xml в PHP вообще не нужно.
Re[16]: Мифический Haskell
От: Паблик Морозов  
Дата: 22.02.12 09:11
Оценка: :)
Здравствуйте, FR, Вы писали:

FR>Ну вроде инструменты есть:


Инструментов-то дофига, только лиц с xml-лом головного мозга проще сразу в склиф отправлять, чем использовать инструменты для решения искственно созданных проблем.
Re[19]: Мифический Haskell
От: Паблик Морозов  
Дата: 22.02.12 09:16
Оценка:
Здравствуйте, samius, Вы писали:

S>В хаскеле ведь тип не уникален.

S>Но будь возможность заюзать

Подразумевается, что такой возможности нет. Значит таки уникален
Re[20]: Мифический Haskell
От: samius Япония http://sams-tricks.blogspot.com
Дата: 22.02.12 09:26
Оценка:
Здравствуйте, Паблик Морозов, Вы писали:

ПМ>Здравствуйте, samius, Вы писали:


S>>В хаскеле ведь тип не уникален.

S>>Но будь возможность заюзать

ПМ>Подразумевается, что такой возможности нет. Значит таки уникален

Хорошо, пусть будет уникальным. Как уникальность типа внутреннего представления мира хаскеля гарантирует чистоту при взаимодействии action с внешним миром во время выполнения действия?
Re[21]: Мифический Haskell
От: Паблик Морозов  
Дата: 22.02.12 10:35
Оценка: 1 (1) +3
Здравствуйте, samius, Вы писали:

ПМ>>Подразумевается, что такой возможности нет. Значит таки уникален

S>Хорошо, пусть будет уникальным. Как уникальность типа внутреннего представления мира хаскеля гарантирует чистоту при взаимодействии action с внешним миром во время выполнения действия?

Чистота — это свойство функции возвращать тот же результат при тех же исходных данных (т.е. вызов функции можно безопасно заменить её вычисленным значением). Дыкть вот, уникальные типы — это такой хак, который не позволяет дважды вызвать функцию с одним и тем же значением.

А дальше всё зависит от твоих религиозных взглядов — являешься ли ты ультрафинитистом, веришь ли в закон исключенного третьего, поклоняешься ли аксиоматике Цермело—Френкеля...

Т.е. ни на Хаскелле, ни на языках с уникальными типами невозможно (без unsafe-хаков) написать функцию, которая бы возвращала разные значения при одинаковых аргументах, это касается и типа *World (программа принимает его при запуске, ничего не знает про его внутреннее устройство и ввиду уникальности не может создавать на него ссылки). Разумеется, то, что функция возвращает одинаковые значения, ты тоже проверить не сможешь, т.к. не можешь создавать экземпляры или ссылки на *World. Но можно ли считать ли функцию чистой, если невозможно убедиться в обратном, это уже вопрос религии, а не математики.
Re[22]: Мифический Haskell
От: samius Япония http://sams-tricks.blogspot.com
Дата: 22.02.12 10:43
Оценка:
Здравствуйте, Паблик Морозов, Вы писали:

ПМ>Здравствуйте, samius, Вы писали:


ПМ>>>Подразумевается, что такой возможности нет. Значит таки уникален

S>>Хорошо, пусть будет уникальным. Как уникальность типа внутреннего представления мира хаскеля гарантирует чистоту при взаимодействии action с внешним миром во время выполнения действия?

ПМ>Чистота — это свойство функции возвращать тот же результат при тех же исходных данных (т.е. вызов функции можно безопасно заменить её вычисленным значением). Дыкть вот, уникальные типы — это такой хак, который не позволяет дважды вызвать функцию с одним и тем же значением.

Чистота — это не только детерминированность, это еще и отсутствие побочных эффектов. Но даже детерминированности при взаимодействии со внешним миром уникальные типы обеспечить не могут. Не говоря о побочных эффектах. Я говорю о чистоте при взаимодействии с внешним миром, а не экземпляром World.

ПМ>А дальше всё зависит от твоих религиозных взглядов — являешься ли ты ультрафинитистом, веришь ли в закон исключенного третьего, поклоняешься ли аксиоматике Цермело—Френкеля...

не являюсь, не верю, не поклоняюсь. Грешен тем, что смотрел в определение чистой функции в википедии.

ПМ>Т.е. ни на Хаскелле, ни на языках с уникальными типами невозможно (без unsafe-хаков) написать функцию, которая бы возвращала разные значения при одинаковых аргументах, это касается и типа *World (программа принимает его при запуске, ничего не знает про его внутреннее устройство и ввиду уникальности не может создавать на него ссылки). Разумеется, то, что функция возвращает одинаковые значения, ты тоже проверить не сможешь, т.к. не можешь создавать экземпляры или ссылки на *World. Но можно ли считать ли функцию чистой, если невозможно убедиться в обратном, это уже вопрос религии, а не математики.

Возвращать одинаковые значения при одинаковых аргументах — не единственное условие даже для детерминированности.
Re[23]: Мифический Haskell
От: Паблик Морозов  
Дата: 22.02.12 11:36
Оценка: +3
S>Чистота — это не только детерминированность, это еще и отсутствие побочных эффектов.

Является ли нагрев процессора побочным эффектом? Без формального определения побочного эффекта мы снова скатываемся в религию, поэтому мне интересно говорить только о наблюдаемых побочных эффектах. Если программа не может "наблюсти" побочный эффект вызова какой-либо функции, то можно считать, что его нет, потому что на дальнейший ход вычислений он не влияет. А "наблюсти" побочный эффект можно только с помощью недетерминированной функции, читающей "мир". Поэтому я буду считать детерминированность достаточным условием чистоты.

S>Я говорю о чистоте при взаимодействии с внешним миром, а не экземпляром World.


Ну вот со всем утверждениями относительно Реального Мира, Бога и Того, Как Там Всё На Самом Деле — нужно обращаться не ко мне, а к Архитектору Матрицы.

S>Возвращать одинаковые значения при одинаковых аргументах — не единственное условие даже для детерминированности.


Да ну? А что еще надо? Кровь китайских девственниц?
Re: Мифический Haskell
От: trop Россия  
Дата: 22.02.12 12:22
Оценка:
Здравствуйте, alex_public, Вы писали:

хаскель хороший язык, после него плюсный shared_ptr
вызывает детский восторг и лёгкое чувство вины
-
Re[22]: Мифический Haskell
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 22.02.12 12:38
Оценка:
Здравствуйте, Паблик Морозов, Вы писали:

ПМ>Т.е. ни на Хаскелле, ни на языках с уникальными типами невозможно (без unsafe-хаков) написать функцию, которая бы возвращала разные значения при одинаковых аргументах


Тут нужно очень аккуратно определять, что считать ее аргументами. Она же может быть замыканием, содержащим ref'ы, например.
Re[24]: Мифический Haskell
От: samius Япония http://sams-tricks.blogspot.com
Дата: 22.02.12 14:02
Оценка:
Здравствуйте, Паблик Морозов, Вы писали:

S>>Чистота — это не только детерминированность, это еще и отсутствие побочных эффектов.


ПМ>Является ли нагрев процессора побочным эффектом? Без формального определения побочного эффекта мы снова скатываемся в религию, поэтому мне интересно говорить только о наблюдаемых побочных эффектах. Если программа не может "наблюсти" побочный эффект вызова какой-либо функции, то можно считать, что его нет, потому что на дальнейший ход вычислений он не влияет. А "наблюсти" побочный эффект можно только с помощью недетерминированной функции, читающей "мир". Поэтому я буду считать детерминированность достаточным условием чистоты.

Такую чистоту предлагаю тебе обсуждать с теми, кто считает так же.

S>>Я говорю о чистоте при взаимодействии с внешним миром, а не экземпляром World.


ПМ>Ну вот со всем утверждениями относительно Реального Мира, Бога и Того, Как Там Всё На Самом Деле — нужно обращаться не ко мне, а к Архитектору Матрицы.

Это ты ко мне обратился
Автор: Паблик Морозов
Дата: 21.02.12
. Причем с такими утверждениями, что мои мне кажутся невинными на их фоне.

S>>Возвращать одинаковые значения при одинаковых аргументах — не единственное условие даже для детерминированности.


ПМ>Да ну? А что еще надо? Кровь китайских девственниц?

Когда я писал ответ, не знал что у тебя свое понимание чистоты и наверное детерминированности. Так что не обращай внимания, я о чем-то другом.
Re[23]: Мифический Haskell
От: Паблик Морозов  
Дата: 22.02.12 14:19
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Тут нужно очень аккуратно определять, что считать ее аргументами. Она же может быть замыканием, содержащим ref'ы, например.


Операции с рефами тоже принимают мир или не сбегают из монады (STRef)
Re[25]: Мифический Haskell
От: Паблик Морозов  
Дата: 22.02.12 14:24
Оценка: +1
Здравствуйте, samius, Вы писали:

S>Такую чистоту предлагаю тебе обсуждать с теми, кто считает так же.


А какую чистоты ты предлагаешь обсудить? Повторяю вопрос — функция, в результате которой нагревается процессор времени чистая или нет?
Re[16]: Мифический Haskell
От: alex_public  
Дата: 22.02.12 15:24
Оценка:
Здравствуйте, FR, Вы писали:

FR>Ну вроде инструменты есть:


FR>http://www.cduce.org/


FR>То же самое встроенное в OCaml http://www.cduce.org/ocaml


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

Вот прямо как с D ситуация... )))
Re[18]: Мифический Haskell
От: alex_public  
Дата: 22.02.12 15:27
Оценка:
Здравствуйте, Паблик Морозов, Вы писали:

ПМ>На php еще проще:

ПМ>
ПМ>generate_chm_from_xml();
ПМ>generate_complete_site_from_xml();
ПМ>generate_nicely_designed_pdf_from_the_same_xml();
ПМ>


Ну и откуда я возьму эти функции в php?

ПМ>И это не говоря про то, что промежуточное представление в виде xml в PHP вообще не нужно.


Т.е. вы предлагаете писателям документации и переводчикам работать с программным кодом, а не с текстом? )
Re[26]: Мифический Haskell
От: samius Япония http://sams-tricks.blogspot.com
Дата: 22.02.12 16:35
Оценка: -1
Здравствуйте, Паблик Морозов, Вы писали:

ПМ>Здравствуйте, samius, Вы писали:


S>>Такую чистоту предлагаю тебе обсуждать с теми, кто считает так же.


ПМ>А какую чистоты ты предлагаешь обсудить?

Я обсуждал чистоту в ее общедоступном определении с википедии.

ПМ>Повторяю вопрос — функция, в результате которой нагревается процессор времени чистая или нет?

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

Так что направлю тебя к Архитектору твоей Матрицы.
Re[19]: Мифический Haskell
От: Паблик Морозов  
Дата: 22.02.12 16:45
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Ну и откуда я возьму эти функции в php?


А откуда я возьму две строчки на xslt, которые генерируют pdf? Особенно если учесть, что pdf — бинарный формат.

_>Т.е. вы предлагаете писателям документации и переводчикам работать с программным кодом, а не с текстом? )


Вы ведь тоже предлагаете им работать с каким-то xml-ем, а не с текстом.
Re[20]: Мифический Haskell
От: alex_public  
Дата: 22.02.12 17:32
Оценка:
Здравствуйте, Паблик Морозов, Вы писали:

ПМ>А откуда я возьму две строчки на xslt, которые генерируют pdf? Особенно если учесть, что pdf — бинарный формат.


http://docbook.sourceforge.net — здесь. Причём pdf — это на самом деле не самое интересное то...

_>>Т.е. вы предлагаете писателям документации и переводчикам работать с программным кодом, а не с текстом? )


ПМ>Вы ведь тоже предлагаете им работать с каким-то xml-ем, а не с текстом.


http://www.syntext.com/products/serna-free/ не, с текстом.
Re[8]: Мифический Haskell
От: m e  
Дата: 22.02.12 17:57
Оценка:
ME>>скажем, почему список из объектов, у каждого из которых есть функция print, чем-то хуже "списка из print-ов"?
V>Тем что это объекты с ф-ей print, а не просто ф-ия print сама по себе. Больше сущностей.

гы-гы

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

а замыкание -- это тот же объект, только хуже оно так же как и объект, держит (т.е. не дает собрать мусорщику) данные, которые держат другие данные, и т.д.; при этом если про поля, захваченные замыканием, мы ничего не знаем, то поля объекта могут быть в явном виде ограничены, скажем, путем объявления класса final в java

ME>>каким образом IO a -- чистая ф-я?


V>Повторяю:

V>IO a = World -> (a, World)

ммм... а мы про хаскель говорим или про что?


 data IO a = ...  -- abstract

 instance  Functor IO where
    fmap f x           =  x >>= (return . f)

 instance Monad IO where
    (>>=)  = ...
    return = ...
    fail s = ioError (userError s)


а "World -> (a, World)" это какие-то рассказы, которые могут и не соответствовать истине

p.s. to Klapaucius и остальным -- дойду постепенно и до ваших ответов
Re[21]: Мифический Haskell
От: Паблик Морозов  
Дата: 22.02.12 19:31
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Здравствуйте, Паблик Морозов, Вы писали:


ПМ>>А откуда я возьму две строчки на xslt, которые генерируют pdf? Особенно если учесть, что pdf — бинарный формат.


_>http://docbook.sourceforge.net — здесь. Причём pdf — это на самом деле не самое интересное то...


_>>>Т.е. вы предлагаете писателям документации и переводчикам работать с программным кодом, а не с текстом? )


ПМ>>Вы ведь тоже предлагаете им работать с каким-то xml-ем, а не с текстом.


_>http://www.syntext.com/products/serna-free/ не, с текстом.


Если речь идёт о верстке документов и использовании каких-то тулзов для конвертации их в различные форматы, то пусть хоть в ворде верстают, в этом ничего плохого нет. Просто из

[quote]
Я лично ничего не верстаю вообще, как впрочем и GUI не рисую сам. Я больше занимаюсь проектирование архитектуры всего этого. И вот в рамках нашей архитектуры все html генерятся у нас с помощью xslt шаблонов из xml данных.
[/quote]

Я сделал вывод, что речь идёт о каком-то веб-интерфейсе, где сервер генерируюет xml, который самописными xslt-шками конвертируется в веб-страницы. Такую придурь я встречал и именно с неё я . А если программисту не приходится трогать xml и xslt, то норм, не трогаешь — не пахнет.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.