powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Зачем писать программы сложно и долго, когда можно просто и легко?
324 сообщений из 324, показаны все 13 страниц
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37716114
inv2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В качестве освоения языка взял задачу отсюда: /topic/926718&pg=1
В теме java, поэтому не стал там писать.

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

NB. - коммент

Итого, пишется прямо сходу:
Код: sql
\r\n   [ ns=:? 10#1500\r\n1090 147 658 1229 1022 1232 855 5 1455 673\r\n\r\nNB. Начинаем\r\n\r\nNB. 1. Четные и нечетные числа.\r\n   ns#~2|ns\r\n147 1229 855 5 1455 673\r\n   ns#~-.2|ns\r\n1090 658 1022 1232\r\n\r\nNB. 2. Наибольшее и наименьшее число.\r\n   <./ns\r\n5\r\n   >./ns\r\n1455\r\n\r\nNB. 3. Числа, которые делятся на 3 или на 9.\r\nNB. если делится на 9, то и на 3, так что достаточно только те, что на 3.\r\n   ns#~0=3|ns\r\n147 855 1455\r\n\r\nNB. 4. Числа, которые делятся на 5 и на 7. - нету.\r\n   ns#~((0=7&|) *. 0=5&|)ns\r\n\r\nNB. 5. Элементы, расположенные методом пузырька по убыванию модулей.\r\nNB. сортировать пузырьком, имея в наличие разные сортировки как-то лень.\r\n\r\nNB. 6. Все трехзначные числа, в десятичной записи которых нет одинаковых цифр.\r\n   ns#~((3=#) +. (*./@~:@":))"0 ns\r\n147 658 5 673\r\n\r\nNB. 7. Наибольший общий делитель и наименьшее общее кратное этих чисел.\r\nNB. можно написать, но уже встроено. нужно было подбирать пример получше, а то 1.\r\n   +./ns\r\n1\r\n\r\n8. Простые числа. Встроено, но можно и честное решение.\r\n   ns#~(1&p:)"0 ns\r\n1229 5 673\r\n\r\nNB. честно.\r\n   isprime=:<./@ (|~ 2}.i.)\r\n   ns#~isprime"0 ns\r\n1229 5 673\r\n\r\nNB. 9. Отсортированные числа в порядке возрастания и убывания. Смешно.\r\n   /:~ns\r\n5 147 658 673 855 1022 1090 1229 1232 1455\r\n   \\:~ns\r\n1455 1232 1229 1090 1022 855 673 658 147 5\r\n
\r\n

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

Всё что писал - писалось сходу, потом копипастилось в консоль, для получения результата. Затрачено на всё ну может минут 5.

Флейм: Зачем писать на низком уровне с циклами и кучей ненужного ООП? могу найти только одно объяснение - чтобы списать куда-то как можно больше времени, которое, как получается, потрачено впустую.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37716151
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37716165
inv2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Яростный Меч ,
Ту ветку читал где-то год назад, автор показался не особо адекватным на ~третьей странице. Он, видимо, слышал про K/J, но похоже не особо освоил, и захотел изобрести что-то понятное ему, но такое же "крутое".

Я ничего не изобретаю, просто пытаюсь понять, почему кому-то не лень писать долго скучно и неэффективно.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37716192
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
inv2004,
авторВ качестве освоения языка взял задачу отсюда: /topic/926718&pg=1
В теме java, поэтому не стал там писать.

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

NB. - коммент

Итого, пишется прямо сходу:

[ ns=:? 10#1500
1090 147 658 1229 1022 1232 855 5 1455 673

NB. Начинаем

NB. 1. Четные и нечетные числа.
ns#~2|ns
147 1229 855 5 1455 673
ns#~-.2|ns
1090 658 1022 1232

NB. 2. Наибольшее и наименьшее число.
<./ns
5
>./ns
1455


коротко, но не просто -----------крайне ненаглядно

мне намного проще понять j=j+1 , чем j++
здесь же наворотов еще больше

в первую очередь надо думать о чтении программы, а не уменьшении
количества нажатых клавиш
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37716204
inv2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКА ,
Краткость тут не причём,

я могу заменить #~ и | на слова, получится приблизительно так:
ns where not 0 eq 3 mod ns

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

Японец, с таким же успехом заменит слова на иероглифы, от этого тоже смысл не изменится. Если 1000 раз написать + и - - это ведь тоже привычные символы? тут аналогично, только их больше - без словаря конечно не всё ясно сходу. но ведь и + и - не понятны тем, кто не знает что это значит :)
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37716214
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЕНСИОНЕРКАмне намного проще понять j=j+1 , чем j++пример, конечно, спорный, но в целом согласен - нормально читать такое можно только под грибами
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37716217
inv2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не смотрите на синтаксис, фишка тут не в нём, а в операциях и конкатенациях, которые могут работать с почти любыми типами данных, за счёт чего код сокращается значительно.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37716234
kDnZP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
inv2004, -> brainfuck
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37716241
inv2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
? я слышал про него, но никогда не писал, напиши на нём пример и посмотрим, что получится.

kDnZPinv2004, -> brainfuck
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37716258
kDnZP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
inv2004, brainfuck
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37716264
inv2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если объяснить слова, то становится намного проще:
ns#~-.2|ns

y|x - x mod y, может применяться к целому массиву x
3|1 3 5
1 0 2
-. - not - меняет 1 на 0 и наоборот.
#~ - where берет из списка значения, в соответствии с бинарным индексом.

Итого:
ns where not ns mod 2

Очень сложно? Кмк - точно не сложнее, чем выучить правила английского языка.

Яростный МечПЕНСИОНЕРКАмне намного проще понять j=j+1 , чем j++пример, конечно, спорный, но в целом согласен - нормально читать такое можно только под грибами
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37716298
inv2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть ещё одно опровержение, что язык только для чтения.

В самом начале изучения, я запостил относительно большую программы в список рассылки по этому языку. Улучшенный результат вернулся минут через 10-15. Люди полностью разобрали алгоритм (парсер ip адреса, поиск в списке диапазонов) и полностью переписали. Т.е. как минимум поняли.

Много ли можно понять из 10-20 страничного java-кода? не уверен, что много, опять же повторю, что длина слова тут роли не играет, играет роль количество.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37716341
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЕНСИОНЕРКАв первую очередь надо думать о чтении программы, а не уменьшении
количества нажатых клавиш
Неа! Надо думать сколько за программу заплотют. И здесь сразу виден конфликт с заголовком темы: " Зачем писать программы сложно и долго, когда можно просто и легко?". А так ли уж нужно это "просто и легко"?
Вот помнится, раньше сидела себе тётенька-бухгалтерша, и считала себе на счётах с костяшками. Сейчас целый отдел каких-то непонятных девок с компьютерами сидит, и у них постоянно то копейки не бьют, то баланс не сходится. :)
То же самое и с программистами. Нам платят не за конечный результат (который часто никому и нафиг не нужен), а за процесс, то есть за работу (сила*расстояние).
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37716352
inv2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSerge,

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

Качество кода - пофигу, ведь если код не очень качественный - тогда можно, например, продать fix'ы отдельно :)
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37716470
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeТо же самое и с программистами. Нам платят не за конечный результат (который часто никому и нафиг не нужен), а за процесс, то есть за работу (сила*расстояние).
это где так?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37717017
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmShSergeТо же самое и с программистами. Нам платят не за конечный результат (который часто никому и нафиг не нужен), а за процесс, то есть за работу (сила*расстояние).
это где так?
А можно узнать где не так? Тогда мы идём к вам.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37717059
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЕНСИОНЕРКАinv2004,
авторВ качестве освоения языка взял задачу отсюда: /topic/926718&pg=1
В теме java, поэтому не стал там писать.

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

NB. - коммент

Итого, пишется прямо сходу:

[ ns=:? 10#1500
1090 147 658 1229 1022 1232 855 5 1455 673

NB. Начинаем

NB. 1. Четные и нечетные числа.
ns#~2|ns
147 1229 855 5 1455 673
ns#~-.2|ns
1090 658 1022 1232

NB. 2. Наибольшее и наименьшее число.
<./ns
5
>./ns
1455


коротко, но не просто -----------крайне ненаглядно

мне намного проще понять j=j+1 , чем j++
здесь же наворотов еще больше

в первую очередь надо думать о чтении программы, а не уменьшении
количества нажатых клавишпоэтому нужно использовать хаскель, да.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37717064
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
inv2004

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

Согласитесь, неотлаживаемый язык не даёт возможности понять где у тебя
баг и/или ставит разработчика в глупое положение.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37717070
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton inv2004

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

Согласитесь, неотлаживаемый язык не даёт возможности понять где у тебя
баг и/или ставит разработчика в глупое положение.
ну вот не скажи что эта отладка так уж нужна.
если язык функциональный. то можно тестировать работу каждой ф-и по отдельности(можно задействовать и юнит тестирование)

т.е. нужно ввобще абстрагироваться от понятия шагов.
вот в том же ленивом хаскеле - хрен поймешь, что после чего вызовется, но в том то и суть, что это не важно. главное - результат а не последовательность вычислений.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37717072
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNну вот не скажи что эта отладка так уж нужна.
если язык функциональный. то можно тестировать работу каждой ф-и по отдельности(можно задействовать и юнит тестирование)

т.е. нужно ввобще абстрагироваться от понятия шагов.
вот в том же ленивом хаскеле - хрен поймешь, что после чего вызовется, но в том то и суть, что это не важно. главное - результат а не последовательность вычислений.
Извини. Наш мир - имеет состояния. И нужно иметь возможность сделать
снимок вселенной. А ФП - это просто определённый подход к
программированию и не более. Определённый уровень абстракций.
Но когда ты работаешь с сетью, файлами эти состояния всплывают
во всей своей красе.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37717075
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonZyK_BotaNну вот не скажи что эта отладка так уж нужна.
если язык функциональный. то можно тестировать работу каждой ф-и по отдельности(можно задействовать и юнит тестирование)

т.е. нужно ввобще абстрагироваться от понятия шагов.
вот в том же ленивом хаскеле - хрен поймешь, что после чего вызовется, но в том то и суть, что это не важно. главное - результат а не последовательность вычислений.
Извини. Наш мир - имеет состояния. И нужно иметь возможность сделать
снимок вселенной. А ФП - это просто определённый подход к
программированию и не более. Определённый уровень абстракций.
Но когда ты работаешь с сетью, файлами эти состояния всплывают
во всей своей красе.логи писать - не вариант?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37717077
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

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

если же работаем с и\о, то логи спасут отца русской демократии.

з.ы. пишу на работе на жаве, но там все равно юзаю в отладочных целях только логер, такие дела. да и не нужен дебагер.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37717369
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNлоги писать - не вариант?
Вариант. Это вообще всегда - вариант. Это и есть дооснащение ЯП
возможностями которых у него изначально не было. По сути иммитация
отладки.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37717432
Фотография alix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего не понял из первого поста, какая-то бессмысленная каша. Короче и понятнее Cи ничего нет.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37717446
inv2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не скажу за отладку в J, так как изучаю его не давно, но я знаю про отладку в K - очень простая. Отладчик встроен, если программа падает, то ты попадаешь прямо в ту функцию, где упало, найти где проблема - дело минуты, если же надо именно отладить, когда нет ошибок - то тоже никаких проблем, да и логи никто не отменял. Тут не сложнее, чем в других языках.

mayton inv2004

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

Согласитесь, неотлаживаемый язык не даёт возможности понять где у тебя
баг и/или ставит разработчика в глупое положение.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37717451
inv2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alix ,
Да, многие придерживаются такого мнения: "всё что я не понимаю - глупо и не нужно".
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37717568
Диклевич Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
inv2004,

Есть еще R .
Но он не настолько примитизирован.
Но над множествами тоже удобно работать.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37717580
inv2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Диклевич Александр ,

Ага, спасибо, я на него обратил внимание буквально 3 дня назад. Но пока изучать не стал. Тем не менее думаю даже на R данная задача будет выглядеть чище без языкового мусора, в отличие от java и тд.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37717584
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonZyK_BotaNлоги писать - не вариант?
Вариант. Это вообще всегда - вариант. Это и есть дооснащение ЯП
возможностями которых у него изначально не было. По сути иммитация
отладки.
эне. ты меня не понял. то что чистое фп - там никаких логово и не нужно, я сказал как это тестировать.

а те блоки где есть и\о = можно логгировать. хоть средствами языка, хоть обычным библиотечным\самопальным логером
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37717592
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
inv2004 alix ,
Да, многие придерживаются такого мнения: "всё что я не понимаю - глупо и не нужно".
оно не глупо и не нужно. но не надо экономить на байтах.

я уже выше сказал, что на мое ИМХО, золотая средина между читабельностью и выразительностью - хаскель.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37717645
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alixНичего не понял из первого поста, какая-то бессмысленная каша. Короче и понятнее Cи ничего нет.
+
C (не C++) самый лучший язык, даже круче ассеблера (в смысле понимания кода, не считая оптимизации, которую лучше писать на ассемблере).
Что еще надо?
Если автор советуется со специалистами, что они скажут - это хорошо, поддерживаю.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37717665
inv2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ZyK_BotaN ,

Ok, ещё раз напишу, синтаксис, как и количество байт - роли не играет. Если будет желание освоить Q - то можно переписать эти задачи в этой же форме, но в нормальными именами глаголов.

В haskell подобные конструкции невозможны из-за строгости типов. Ключевое - не синтаксис а семантика.
например 1+2 3 4 это самый простой пример, очевидно, что делает эта конструкция, если знать, что + - это сложение, а не join. В haskell'е придётся применять map. Опять же напишу, что это самое простое - чем дальше - тем больше haskell отстаёт.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37717696
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПереписываем на язык, более подходящий, а именно jsoftware, на котором я учусь писать всего вторую неделю.

Ага.... ну да, J и К - сумасшедшие и гениальные. Гениальные и сумасшедшие. Как и их создатели.
http://ru.wikipedia.org/wiki/J_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)
и разумеется, изучение исходника их движка, созданного этими великими программистами - дело хорошее))))) - я до сегодня не знал, что его уже поклали под gpl
http://www.jsoftware.com/source.htm

Но писать на них расчет зарплаты с учетом больничных, северных надбавок, и "пересечений полярного круга экспедитором три раза в месяц" я бы не стал))))) ну и на реболе не стал бы... и даже на хаскеле поостерегся бы....)))) - но как хорошо, что находятся таки люди, интересующиеся такими диковинами! Очень хорошо это...
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37717882
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как сделать цикл от 1 до 10?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37717934
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.А как сделать цикл от 1 до 10?
на этот вопрос давно ответили, более того - подвели теоретическию базу и сделали практичные решения.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37717953
inv2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asws ,
J: "0 (1+i.100) , но мне самому тут не нравится, что "x - надо указывать ранг.
Поэтому привожу на K: '1+!100

Но, в большинстве случаев такая конструкция не нужна.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37717975
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
inv2004Но, в большинстве случаев такая конструкция не нужна.
Такая не нужна.
А вот вызвать в цикле внешнюю процедуру/программу — нужно.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37717977
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNэне. ты меня не понял. то что чистое фп - там никаких логово и не нужно, я сказал как это тестировать.


Я снимаю шляпу.

Я не знаю как тестируют (отлаживают) "чистое фп" но подозреваю что
примерно так-же как и любое другое п.

Логи нужны хотя-бы для админа комплекса который должен как-то решать
проблемы даже не зная ни ФП ни прочих технологий. Поэтому вопрос
"нужности логов" считаю пока открытым.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37718977
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
inv2004 ZyK_BotaN ,

Ok, ещё раз напишу, синтаксис, как и количество байт - роли не играет. Если будет желание освоить Q - то можно переписать эти задачи в этой же форме, но в нормальными именами глаголов.

В haskell подобные конструкции невозможны из-за строгости типов. Ключевое - не синтаксис а семантика.
например 1+2 3 4 это самый простой пример, очевидно, что делает эта конструкция, если знать, что + - это сложение, а не join. В haskell'е придётся применять map. Опять же напишу, что это самое простое - чем дальше - тем больше haskell отстаёт.
зачем мап, чем плоха

sum [1,2,3,4]

?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37718978
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNinv2004 ZyK_BotaN ,

Ok, ещё раз напишу, синтаксис, как и количество байт - роли не играет. Если будет желание освоить Q - то можно переписать эти задачи в этой же форме, но в нормальными именами глаголов.

В haskell подобные конструкции невозможны из-за строгости типов. Ключевое - не синтаксис а семантика.
например 1+2 3 4 это самый простой пример, очевидно, что делает эта конструкция, если знать, что + - это сложение, а не join. В haskell'е придётся применять map. Опять же напишу, что это самое простое - чем дальше - тем больше haskell отстаёт.
зачем мап, чем плоха

sum [1,2,3,4]

?или это не сума, а что тогда? раз ты говоришь мап, значит я ошибся, и не все так очевидно
что в результате получим?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37718979
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton"нужности логов" считаю пока открытым.
лги нужны, но для покрытия тестами очень ограниченного функционала, а именно - и\о.

т.е. что вернул сервер, удалось ли записать файл. и так далее.

для тестирования остального функционала, коего в процентном отношении гораздо больше - логи не нужны.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37718984
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.А как сделать цикл от 1 до 10?
а зачем вам цикл то?

зачем процесс? нужен ведь результат.

вот вас когда-то просил пользователь, что-бы вы сделали цикл?

пользователю нужно, что бы он на входе подал то-то и то-то, а на выходе получил то-то и то-то.
цикл пользователю не нужен. я гарантирую это, он может и не знает что это такое.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37718991
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonZyK_BotaNэне. ты меня не понял. то что чистое фп - там никаких логово и не нужно, я сказал как это тестировать.


Я снимаю шляпу.

Я не знаю как тестируют (отлаживают) "чистое фп" но подозреваю что
примерно так-же как и любое другое п.

Логи нужны хотя-бы для админа комплекса который должен как-то решать
проблемы даже не зная ни ФП ни прочих технологий. Поэтому вопрос
"нужности логов" считаю пока открытым.
ну если админ, не программист, то логи входят в функционал программной системы.
и здесь я проблем не вижу, нужно что-то писать - на здоровье.
зато мухи будут отделены от котлет, придется выстроить нормальную архитектуру системы, где логи можно было бы легко убрать или поправить, а код отвечающий за функционал(базовые кирпичики программы) - остается чист от мусора.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37718995
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как по мне, то "просто и легко" - это когда мне не нужно вообще ПИСАТЬ! Это же так утомительно. Писать интересно до тех пор, пока ковыряешься с чем-то неизвестным, т.е. исследуешь. А так - пытка одна. Сказал компу (или кому-то), нужно вот это вот как тут. Пошел чайку попил (или на тренировку). Вернулся - готово. Подправил недочеты. В печать!

Вот это просто и легко. А все остальное - рутина и тягомотина.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719003
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
inv2004Флейм: Зачем писать на низком уровне с циклами и кучей ненужного ООП? могу найти только одно объяснение - чтобы списать куда-то как можно больше времени, которое, как получается, потрачено впустую.Есть мнение, что лучшее средство описания - естественный язык (почему - потому что в результате эволюции, именно он используется сейчас.). Да, он избыточен и неточен, поэтому пока что не годится для заданий современным компьютерам и компиляторам. Но это то, к чему надо стремиться. Всякие короткие записи - тупиковая ветвь.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719008
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S.G.inv2004Флейм: Зачем писать на низком уровне с циклами и кучей ненужного ООП? могу найти только одно объяснение - чтобы списать куда-то как можно больше времени, которое, как получается, потрачено впустую.Есть мнение, что лучшее средство описания - естественный язык (почему - потому что в результате эволюции, именно он используется сейчас.). Да, он избыточен и неточен, поэтому пока что не годится для заданий современным компьютерам и компиляторам. Но это то, к чему надо стремиться. Всякие короткие записи - тупиковая ветвь.вот не скажи.
есть такое понятие, как для каждой задачи - свой язык.

естественный язык, не использовался в тех задачах, которые решают на ЯП.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719017
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNестественный язык, не использовался в тех задачах, которые решают на ЯП.
Как же не использовался? Заказчик тебе ТЗ объясняет каким языком? И ты - понимаешь! В крайнем случае после уточнений.
Такой же диалог вполне может вестись с компом. Когда он достигнет достаточного уровня, чтобы заниматься формошлепством самостоятельно.

Есть БД с такой-то схемой (предоставляем схему БД со связями). Нужны такие-то страницы с такими то блоками элементов управления и таким-то функционалом. Типовым по сути. Действуй.

Прошло 10 сек или 10 минут. На выходе получаем рабочее приложение. Типовое!

Это можно уже и сейчас. Не хватает стандартизации. Везде разные подходы. Куча разных технологий, языков, принципов. Но результат - ТИПОВЫЙ.

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

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

А вот эти шифровки из первого поста, как раз одна из противоположных сторон =))


Ну а заставлять комп выписывать высокоэффективные зубодробительные алгоритмы по лаконичной фразе "Хочу пес***до!" - конечно не вариант ))) Но кое-что потенциально уже можно.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719026
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonА вот эти шифровки из первого поста, как раз одна из противоположных сторон =))

а для меня шифровкой является китайский и остальные сотни(или тысячи, сколько их там?) языки.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719028
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNEdd.DragonА вот эти шифровки из первого поста, как раз одна из противоположных сторон =))

а для меня шифровкой является китайский и остальные сотни(или тысячи, сколько их там?) языки.
Английский не считается? Вот и чудно. Вполне себе приличный язык для достаточно однозначного описания проблемы компу.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719029
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, расстроил меня язык К.
Лучше уже действительно учить ультракороткий и ультрапростой язык и на него уйдет не две недели а два часа.
Курнуть мануал можно здесть http://code.google.com/p/rsinterpretator/, http://code.google.com/p/rsinterpretator/wiki/Main
(чтение мануала после третьей бутылки пива приветствуется).

Ну и далее по списку
NB. 1. Четные и нечетные числа.
ns#~2|ns
147 1229 855 5 1455 673
ns#~-.2|ns
1090 658 1022 1232

Шифтовый ацтой какйто. О чем думали разработчики шифт языка ?
На РС так. arr,=i*2 четные arr,=i*2+1 нечетные, почти джава, привычные формулы.

NB. 2. Наибольшее и наименьшее число.
<./ns
5
>./ns
1455


Опять шифтовая каша
Трушно на РС так (1,3,5,6)\< вернет один
(1,5,7,9)\> вернет девять

NB. 3. Числа, которые делятся на 3 или на 9.
NB. если делится на 9, то и на 3, так что достаточно только те, что на 3.
ns#~0=3|ns
147 855 1455


ну ацтойже.
f,=i%9?i
В f массиве все числа которые делятся на девять ну и на три, программка покороче

NB. 4. Числа, которые делятся на 5 и на 7. - нету.
ns#~((0=7&|) *. 0=5&|)ns


Никуда не годится, да. Расширим свой преведущий пример
f,=(i%5|i%7)?i
Почти джаба, только в понятней и короче

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


А мне не лень, потому что несколько символов
x.i<x.j?x.i||x.j

NB. 6. Все трехзначные числа, в десятичной записи которых нет одинаковых цифр.
ns#~((3=#) +. (*./@~:@":))"0 ns
147 658 5 673


Ну эт совсем просто
I<>J<>K?(I*100+J*10+K)

8. Простые числа. Встроено, но можно и честное решение.
ns#~(1&p:)"0 ns
1229 5 673
NB. честно.
isprime=:<./@ (|~ 2}.i.)
ns#~isprime"0 ns
1229 5 673


Формулу подзабыл, коль вспомню напишу. Гдето было решение на РС.

NB. 9. Отсортированные числа в порядке возрастания и убывания. Смешно.
/:~ns
5 147 658 673 855 1022 1090 1229 1232 1455
\:~ns
1455 1232 1229 1090 1022 855 673 658 147 5


Выше писал сортировку.

Вообщем освоить РС можно зная джабу менее чем за час.
А с нуля за часика два и можно работать.

Правда РС все еще слабоват в парадигме. Да он гибко и просто решает простые задачки, читать его одно удовольствие, но не позволяет концептуально и ультрапросто и ультракоротко записывать увесистые программы. Собственно нет масштабной революции в парадигме, я бы так сказал. Но мож в будуйщем чтото и получится другое.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719033
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А китайский - да, тоже "шифровка". Даже китайцы не отрицали наличия проблем интеркоммуникации, а наоборот старались их решить (но не приучением остальных к китайскому же) ;)
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719036
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistДа, расстроил меня язык К.
Лучше уже действительно учить ультракороткий и ультрапростой язык
Изыди, демон!

Лучше стремиться к прекрасному, чем занимать пустующие мозги всякой бесполезной мишурой.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719039
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonZyK_BotaNпропущено...

а для меня шифровкой является китайский и остальные сотни(или тысячи, сколько их там?) языки.
Английский не считается? Вот и чудно. Вполне себе приличный язык для достаточно однозначного описания проблемы компу.
я кагбэ намекнул, почему ты код ТСа не понял, ровно потому, почему я не понял китайский.

мы просто этих языков не знаем. а вот если знать, то совсем другое дело.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719040
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonBazistДа, расстроил меня язык К.
Лучше уже действительно учить ультракороткий и ультрапростой язык
Изыди, демон!

Лучше стремиться к прекрасному, чем занимать пустующие мозги всякой бесполезной мишурой.

А ты чем прекрасным занят ?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719041
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNEdd.Dragonпропущено...

Английский не считается? Вот и чудно. Вполне себе приличный язык для достаточно однозначного описания проблемы компу.
я кагбэ намекнул, почему ты код ТСа не понял, ровно потому, почему я не понял китайский.

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

Да не факт. Брейнфак вроде тоже знаешь, головка влево, головка вправо, прочитали, записали, а все вместе как раз бред
и мысль не выразишь нормально.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719050
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistZyK_BotaNпропущено...

я кагбэ намекнул, почему ты код ТСа не понял, ровно потому, почему я не понял китайский.

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

Да не факт. Брейнфак вроде тоже знаешь, головка влево, головка вправо, прочитали, записали, а все вместе как раз бред
и мысль не выразишь нормально.вот видишь. ты про брейнфак. а ведь он создавался не для удобного решения задач, верно?

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

а если их кто-то не знает, то пускай не рассказывает какие они не удобные, и что там нельзя сделать цикла ))
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719055
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNBazistпропущено...


Да не факт. Брейнфак вроде тоже знаешь, головка влево, головка вправо, прочитали, записали, а все вместе как раз бред
и мысль не выразишь нормально.вот видишь. ты про брейнфак. а ведь он создавался не для удобного решения задач, верно?

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

а если их кто-то не знает, то пускай не рассказывает какие они не удобные, и что там нельзя сделать цикла ))

Если Хаскель такой удобный язык, то реши мне простую задачу.
Посчитай количество возможных расположений кораблей в игре морской бой.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719057
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И сторонник К пускай тоже решит
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719060
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNя кагбэ намекнул, почему ты код ТСа не понял, ровно потому, почему я не понял китайский.
Ну когда эти шифровки принесут пользу индустрии я обязательно пересмотрю свою точку зрения )))
Китайским то пользуется чуть ли не каждый третий (хоть и понимает, что это не самый удобный язык).


Кстати, закорючки Базиста можно назвать условно-прекрасными. Т.к. одна из целей, которой можно добиться при помощи прекрасного - сделать себе имя. В рамках sql.ru он ее достиг =))
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719061
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistА ты чем прекрасным занят ?
Забанят за порнографию...
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719063
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistZyK_BotaNпропущено...
вот видишь. ты про брейнфак. а ведь он создавался не для удобного решения задач, верно?

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

а если их кто-то не знает, то пускай не рассказывает какие они не удобные, и что там нельзя сделать цикла ))

Если Хаскель такой удобный язык, то реши мне простую задачу.
Посчитай количество возможных расположений кораблей в игре морской бой.
а в языке РС уже есть встроенная функция под названием "к", которая считает кол-во кораблей морском бое
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719064
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonZyK_BotaNя кагбэ намекнул, почему ты код ТСа не понял, ровно потому, почему я не понял китайский.
Ну когда эти шифровки принесут пользу индустрии я обязательно пересмотрю свою точку зрения )))
Китайским то пользуется чуть ли не каждый третий (хоть и понимает, что это не самый удобный язык).


Кстати, закорючки Базиста можно назвать условно-прекрасными. Т.к. одна из целей, которой можно добиться при помощи прекрасного - сделать себе имя. В рамках sql.ru он ее достиг =))хаскель уже давно приности пользу индустрии. такие дела.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719066
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNа в языке РС уже есть встроенная функция под названием "к", которая считает кол-во кораблей морском бое

А ты зря передергиваешь. Я тебе просто указал что твой любимый язык такое же низкоуровневое припудренное говно примерно как и С++ и компания. Задача естественная, комбинаторная и простая, решение нетривиальное и геморойное.
Язык плоский, а задача обьемная, если хотите философский смысл.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719070
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И по большому счету, не буду лукавить, РС получился такимже гавеным императивно функциональным языком. Это по сути таже джава или если хотите хаскель, но где разработчик более основательно подошел к идее компактной незаморачивающей записи. Так что коротко да, понятно до, мощно - нет. По сути теже циклы, теже ветвления, что настолько близко к работе процессора но так далеко от выражения на языке естественных (не только мат) задач.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719075
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
inv2004Есть ещё одно опровержение, что язык только для чтения.

В самом начале изучения, я запостил относительно большую программы в список рассылки по этому языку. Улучшенный результат вернулся минут через 10-15. Люди полностью разобрали алгоритм (парсер ip адреса, поиск в списке диапазонов) и полностью переписали. Т.е. как минимум поняли.

Много ли можно понять из 10-20 страничного java-кода? не уверен, что много, опять же повторю, что длина слова тут роли не играет, играет роль количество.

10-20 страничного java-кода
шутка года бро, открой для себя регекспы.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719083
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNхаскель уже давно приности пользу индустрии. такие дела.
1. Хаскель эту пользу положил в свою копилку, а не в копилку J. Или это уже одно и тоже?

2. Вопрос-то: " Зачем писать программы сложно и долго, когда можно просто и легко? "
Разве любой ФЯ в частности и ФП воообще - это способ писать просто и легко?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719084
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNа зачем вам цикл то?
зачем процесс? нужен ведь результат.
вот вас когда-то просил пользователь, что-бы вы сделали цикл?
Затем, что нужен цикл, именно его организация является результатом.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719086
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonZyK_BotaNхаскель уже давно приности пользу индустрии. такие дела.
1. Хаскель эту пользу положил в свою копилку, а не в копилку J. Или это уже одно и тоже?

2. Вопрос-то: " Зачем писать программы сложно и долго, когда можно просто и легко? "
Разве любой ФЯ в частности и ФП воообще - это способ писать просто и легко?
получается проще чем в ип.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719089
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.ZyK_BotaNа зачем вам цикл то?
зачем процесс? нужен ведь результат.
вот вас когда-то просил пользователь, что-бы вы сделали цикл?
Затем, что нужен цикл, именно его организация является результатом.
привиди пример задачи )
не пойму зачем может понадобится цикл?
повторюсь еще раз, есть входные параметры -е сть исходные.
процесс не должен волновать, вернее производительность может волновать и все.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719090
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.ZyK_BotaNа зачем вам цикл то?
зачем процесс? нужен ведь результат.
вот вас когда-то просил пользователь, что-бы вы сделали цикл?
Затем, что нужен цикл, именно его организация является результатом.

через рекурсию выражается цикл в ФП
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719091
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaN исходные выходные
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719092
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistAlibek B.пропущено...

Затем, что нужен цикл, именно его организация является результатом.

через рекурсию выражается цикл в ФПда не. вообще циклы не нужны.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719093
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Затем, что нужен цикл, именно его организация является результатом.
Его организация - это способ достижения, а не результат!
А достигнуть результат можно сотнями способов.

На примере решения контрольной по интегралам и производным.
1. Можно дать приказ машине "Замути мне решение этой контрольной!".
2. Можно дать аналогичный приказ человеку (уже не важно как он ее решит, с циклами или без).
3. Можно решить в Маткаде.
4. Можно в Мейпле.
5. Можно написать лаконичными шифровками.
6. Можно расписать через десятки/сотни циклов все с нуля.

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

Точно так же и в случае приведенной в топике задачи.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719094
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNBazistпропущено...


через рекурсию выражается цикл в ФПда не. вообще циклы не нужны.

нужно обнулить массив поэлементно, вперед.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719095
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это вообще какое-то дурацкое требование. сделать цикл. а вот только зачем?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719098
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistZyK_BotaNпропущено...
да не. вообще циклы не нужны.

нужно обнулить массив поэлементно, вперед.
даже не смешно. че за массив такой?

что есть на входе программы, что на выходе?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719101
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ладно еще, если программа системна, обнулить там какую-то память.

а если прикладная, то не пойму, че за массив, и зачем его обнулять?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719102
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNчто есть на входе программы, что на выходе?

на входе программы не обнуленный массив, на выходе обнуленный.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719104
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в РС решение такое

array.I = 0
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719105
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistZyK_BotaNчто есть на входе программы, что на выходе?

на входе программы не обнуленный массив, на выходе обнуленный.че это за объект такой массив?
где его взять, куда положить?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719107
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще, задачи по типу: заполнить массив 0-ми,
присвоить переменной х, занчение х+1 - бессмысленны по определению.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719109
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNполучается проще чем в ип.
Верно. Я ж и говорю (в пером моем посте тут) - оба варианта это пока что " сложно и долго " в общем случае. Ибо писанина. И компактность записи никаких проблем в этом вопросе не решает.

Конкретные же ПОДзадачи конечно могут смотреться приятнее и в минимум десятки раз лаконичнее на том же Хаскеле.
Хотя если написать нормальный математический фреймворк под ИП, тоже станет лаконично. Букв будет больше, но степень лаконичности не длиной слов исчисляется.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719110
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNBazistпропущено...
на входе программы не обнуленный массив, на выходе обнуленный.че это за объект такой массив?
где его взять, куда положить?

Почитай книжки, узнай что такое массив, да.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719111
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNвообще, задачи по типу: заполнить массив 0-ми,
присвоить переменной х, занчение х+1 - бессмысленны по определению.

У тебя Тьюринг полный язык ЯП ? Тьюринг полный, значит на нем можно решить любую задачу.
Вот и решай. Я кстате знаю как решить.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719112
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistПочитай книжки, узнай что такое массив, да.
Ты не въехал в то, о чем он говорит. Или не в состоянии поставить четко задачу.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719114
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кароче, для особо одаренных.
На вход программы бинарный файл, задача обнулить все байты в нем, все.
Типы, циклы и прочье это ваши внутренние дела. Делайте что хотите.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719115
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistZyK_BotaNвообще, задачи по типу: заполнить массив 0-ми,
присвоить переменной х, занчение х+1 - бессмысленны по определению.

У тебя Тьюринг полный язык ЯП ? Тьюринг полный, значит на нем можно решить любую задачу.
Вот и решай. Я кстате знаю как решить.заполнить массив 0-ми под тюринг полноту не подпадает. такие дела.

определи сначала входные и исходные данные, а потому можно про тюринг полноту говорить.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719117
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNзаполнить массив 0-ми под тюринг полноту не подпадает. такие дела.


Щито ?

ZyK_BotaNопредели сначала входные и исходные данные, а потому можно про тюринг полноту говорить.

Батан ты прикалывешся ? Пришел к тебе заказчик, сказал, мне нужна прога. На вход я подаю файл любой, прога обнуляет в нем байты и сохраняет. Вот постановка задачи с точки зрения человека который вообще не знает программирование. У тебя в зубах функциональный язык. Как это сделать на нем ? Дошло ?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719118
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistБатан ты прикалывешся ? Пришел к тебе заказчик, сказал, мне нужна прога. На вход я подаю файл любой, прога обнуляет в нем байты и сохраняет. Вот постановка задачи с точки зрения человека который вообще не знает программирование. У тебя в зубах функциональный язык. Как это сделать на нем ? Дошло ?
вот это уже другое дело. файл. а то массив какой-то.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719119
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообщето ответ здесь, но я чото думал что евангелисты ФП элементарную задачу должни уметь решать ... хотя ..........

BazistAlibek B.пропущено...

Затем, что нужен цикл, именно его организация является результатом.

через рекурсию выражается цикл в ФП
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719120
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNBazistБатан ты прикалывешся ? Пришел к тебе заказчик, сказал, мне нужна прога. На вход я подаю файл любой, прога обнуляет в нем байты и сохраняет. Вот постановка задачи с точки зрения человека который вообще не знает программирование. У тебя в зубах функциональный язык. Как это сделать на нем ? Дошло ?
вот это уже другое дело. файл. а то массив какой-то.

С точки зрения Лиспа массив это список. Это я тебе уже подсказываю.
А любой файл это массив байт, разве нет ?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719121
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bazistмассив байт, разве нет ?
нет. ни в коем разе. хотя опять же, что ты подразумеваешь под словом массив.

а то многие подразумевают под массивом - структуру данных с прямым доступом.
а файл как раз - имеет последовательный доступ, как и односвязный список.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719122
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistZyK_BotaNпропущено...

вот это уже другое дело. файл. а то массив какой-то.

С точки зрения Лиспа массив это список. Это я тебе уже подсказываю.
А любой файл это массив байт, разве нет ?з.ы.
да и какое отношение лисп имеет к фп?
так, мультипарадигменный язычек.

в фп все на лени строиться. а вот ленивая рекурсия очень на циклы не похожа.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719123
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistКароче, для особо одаренных.
На вход программы бинарный файл, задача обнулить все байты в нем, все.
Типы, циклы и прочье это ваши внутренние дела. Делайте что хотите.
Воот. А теперь скажи, твой ультраязык сам научился заполнять файл нулями или таки там есть циклы за ширмой?
Так а что мешает в обычном языке иметь где-то в кулуарах аналогичную функцию и не думать о ее содержимом, т.е. вызывать и не знать, КАК она это делает? В чем принципиальная разница?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719125
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да и вообще, в хаскеле - явная рекурсия считается злом.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719126
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonBazistКароче, для особо одаренных.
На вход программы бинарный файл, задача обнулить все байты в нем, все.
Типы, циклы и прочье это ваши внутренние дела. Делайте что хотите.
Воот. А теперь скажи, твой ультраязык сам научился заполнять файл нулями или таки там есть циклы за ширмой?
Так а что мешает в обычном языке иметь где-то в кулуарах аналогичную функцию и не думать о ее содержимом, т.е. вызывать и не знать, КАК она это делает? В чем принципиальная разница?ті че, не помнишь его топика?

там под любую задачу - есть одна комманда.

как только ті ему адшь задачу, он тебе название комманді придумает в тот же час.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719127
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ чем принципиальная разница?
В смысле, что нет у процессора машинной команды "заполнить файл нулями". А если есть, то ее можно использовать одинаково хорошо и в ИП.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719128
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNті че, не помнишь его топика?

там под любую задачу - есть одна комманда.

как только ті ему адшь задачу, он тебе название комманді придумает в тот же час.
Я так сразу было подумал. Но не смог поверить в это чудо...
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719130
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNне пойму зачем может понадобится цикл?
Бывает. Мир шире твоего представления о нем.
Например нужно инициализировать несколько буферов для последующего использования их в API.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719131
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNBazistмассив байт, разве нет ?
нет. ни в коем разе. хотя опять же, что ты подразумеваешь под словом массив.

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

Файт имеет только последовательный доступ ? Это чтото новенькое.
Вообщето память, как и файл это адрессация прежде всего, а это значит ты без проблем по смещению можешь переместиться на любую ячейку памяти, как в массиве так и в файле, чего не можешь сделать в односвязном списке. Разница между односвязным списком и массивом в том, что массив гарантирует соседство соседних элементов ( читай байт ) в памяти, список не гарантирует, он хранит только адресс следующего элемента. Следовательно в файле можно вычислить по формуле адресс N элемента, в списке нет, только пробежавшись последовательно.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719132
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNэто вообще какое-то дурацкое требование. сделать цикл. а вот только зачем?
Ты когда-нибудь GUI программировал?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719134
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.ZyK_BotaNне пойму зачем может понадобится цикл?
Бывает. Мир шире твоего представления о нем.
Например нужно инициализировать несколько буферов для последующего использования их в API.я выше уже упомянул, разве только в системных задачах.

да. фп-язык на машине фоннеймана не может быть системным языком по определению.

но. есть один момент. зачем нужен цикл для инициализации буферов?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719136
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistZyK_BotaNпропущено...

нет. ни в коем разе. хотя опять же, что ты подразумеваешь под словом массив.

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

Файт имеет только последовательный доступ ? Это чтото новенькое.
поздравляю вас шарик, вы балбес.

конечно только последовательный. по определению.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719137
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonBazistКароче, для особо одаренных.
На вход программы бинарный файл, задача обнулить все байты в нем, все.
Типы, циклы и прочье это ваши внутренние дела. Делайте что хотите.
Воот. А теперь скажи, твой ультраязык сам научился заполнять файл нулями или таки там есть циклы за ширмой?
Так а что мешает в обычном языке иметь где-то в кулуарах аналогичную функцию и не думать о ее содержимом, т.е. вызывать и не знать, КАК она это делает? В чем принципиальная разница?

Чтобы понимать РС всеже нужно иметь уровень понимания чуточку больше чем плинтус не отличающий массив и односвязный список.
Вы уж меня простите. Я не буду обьяснять решение, считайте это какойто особой уличной магией нескольких операторов.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719138
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bazist что массив гарантирует соседство соседних элементов ( читай байт ) в памяти, список не гарантирует,
файл тоже не гарантирует последовательность. только узнал?
пичалька. как же ты тогда свою сверхбыструю писал то?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719139
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNда. фп-язык на машине фоннеймана не может быть системным языком по определению.


Опять Щито ?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719140
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.ZyK_BotaNэто вообще какое-то дурацкое требование. сделать цикл. а вот только зачем?
Ты когда-нибудь GUI программировал?
да. на хаскеле. без циклов. без и ио. и что?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719141
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNно. есть один момент. зачем нужен цикл для инициализации буферов?
А это уже не твое дело.
Задачи ставит заказчик, твое дело их реализовать.
Например, API может требовать инициализированных особым образом буферов.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719142
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistZyK_BotaNда. фп-язык на машине фоннеймана не может быть системным языком по определению.


Опять Щито ? то, что системные и прикладные программы - это разные понятия.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719143
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.ZyK_BotaNно. есть один момент. зачем нужен цикл для инициализации буферов?
А это уже не твое дело.
Задачи ставит заказчик, твое дело их реализовать.
Например, API может требовать инициализированных особым образом буферов.
первый раз слышу, что-бы заказчик про какие-то циклы говорил.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719144
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNBazist что массив гарантирует соседство соседних элементов ( читай байт ) в памяти, список не гарантирует,
файл тоже не гарантирует последовательность. только узнал?
пичалька. как же ты тогда свою сверхбыструю писал то?

С точки зрения API гарантирует.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719145
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Например, API может требовать инициализированных особым образом буферов.ну ок. на хаскеле, мы и без цикла запрограммируем этот ваш особый образ заполнения.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719147
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNBazistпропущено...
Опять Щито ? то, что системные и прикладные программы - это разные понятия.

Тебе нужно больше читать букварей, сорри.
Очень очень очень очень много ляпов.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719148
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNBazistФайт имеет только последовательный доступ ? Это чтото новенькое.
поздравляю вас шарик, вы балбес.

конечно только последовательный. по определению.это шутка такая, да?
открой для себя fseek, и аналогичные, не позорься
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719149
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistZyK_BotaNпропущено...

файл тоже не гарантирует последовательность. только узнал?
пичалька. как же ты тогда свою сверхбыструю писал то?

С точки зрения API гарантирует.с точки зрения апи, и связной список имеет функцию get(int i) (в жаве).
ну и что?

быстродействие от того не улучшится.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719150
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychZyK_BotaNпропущено...

поздравляю вас шарик, вы балбес.

конечно только последовательный. по определению.это шутка такая, да?
открой для себя fseek, и аналогичные, не позорься
открой для себя get(i) у связного списка в жаве, ну и что?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719151
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
люди, вы хоть понимаете что такое прямой доступ?
это доступ к n-у элементу за время o(1).

а в случае с файлом и связным списком, это время - о(n). такие дела. а вы тут про позорься не позорься.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719152
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNпервый раз слышу, что-бы заказчик про какие-то циклы говорил.
Тяга к ФП отключает абстрактное мышление?
Заказчик — это не малый предприниматель, который заказывает у фрилансера очередной складской учет.
Заказчик — это тот, кто ставит задачу. Им может быть разработчик/поставщик какого-то крупного программного продукта, допускающего расширение функций. Или системный архитектор.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719153
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.ZyK_BotaNне пойму зачем может понадобится цикл?
Бывает. Мир шире твоего представления о нем.
Например нужно инициализировать несколько буферов для последующего использования их в API.

Код: plaintext
1.
initThisFuckingBuffers(buffList);



И где суслик?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719154
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNegorychпропущено...
это шутка такая, да?
открой для себя fseek, и аналогичные, не позорься
открой для себя get(i) у связного списка в жаве, ну и что?наличие в жаве у списка get(i) не отменяет произвольного доступа к файлу, видишь-ли, эти два понятия вообще никак не связаны между собой. Попробуй ещё раз, подумай, прежде чем ответить
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719155
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.ZyK_BotaNпервый раз слышу, что-бы заказчик про какие-то циклы говорил.
Тяга к ФП отключает абстрактное мышление?
Заказчик — это не малый предприниматель, который заказывает у фрилансера очередной складской учет.
Заказчик — это тот, кто ставит задачу. Им может быть разработчик/поставщик какого-то крупного программного продукта, допускающего расширение функций. Или системный архитектор.
да все у меня ок с ип. на работе на жаве программирую, ну и что? заказчик не разу не требовал "процесса", всегда требует результата. такие дела.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719156
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.ZyK_BotaNэто вообще какое-то дурацкое требование. сделать цикл. а вот только зачем?
Ты когда-нибудь GUI программировал?
Не припомню в задании на ГУИ требование "Сделайте мне цикл! Но только по k, по i мне не нравится..."
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719157
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNegorychпропущено...
это шутка такая, да?
открой для себя fseek, и аналогичные, не позорься
открой для себя get(i) у связного списка в жаве, ну и что?

Открой для себя дефрагментацию файлов.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719158
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychZyK_BotaNпропущено...

открой для себя get(i) у связного списка в жаве, ну и что?наличие в жаве у списка get(i) не отменяет произвольного доступа к файлу, видишь-ли, эти два понятия вообще никак не связаны между собой. Попробуй ещё раз, подумай, прежде чем ответитьнет. я те намикаю, что функция fseek, это не произвольный доступ, а последовательный. со всеми вытекающими проблемами с производительностью.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719159
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ФП — это такой филосовский камень.
Он может выглядит очень эффектно в каких-то определенных задачах.
Но ФП в чистом виде — это абстракция, у которой нет практического применения для решения общих задач.
В частных задачах ФП может быть очень удобен.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719160
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistZyK_BotaNпропущено...

открой для себя get(i) у связного списка в жаве, ну и что?

Открой для себя дефрагментацию файлов.
но фрагментация, кагбэ намикает, что файл это понятие не последовательное.

з.ы. дефрагментация не позволяет тебе иметь прямой доступ, она просто ускоряет последовательный(не нужно прыгать далеко)
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719161
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.ФП — это такой филосовский камень.
Он может выглядит очень эффектно в каких-то определенных задачах.
Но ФП в чистом виде — это абстракция, у которой нет практического применения для решения общих задач.
В частных задачах ФП может быть очень удобен.
бред. повторюсь. сначала выучи китайский хаскель, а потом говори что он не практичен.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719162
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonНе припомню в задании на ГУИ требование "Сделайте мне цикл! Но только по k, по i мне не нравится..."
Посмотри интерфейс программы Char Map (локализованное название "Таблица символов").
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719163
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Edd.DragonНе припомню в задании на ГУИ требование "Сделайте мне цикл! Но только по k, по i мне не нравится..."
Посмотри интерфейс программы Char Map (локализованное название "Таблица символов").ну и, зачем там цикл?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719164
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNBazistпропущено...


Открой для себя дефрагментацию файлов.
но фрагментация, кагбэ намикает, что файл это понятие не последовательное.

з.ы. дефрагментация не позволяет тебе иметь прямой доступ, она просто ускоряет последовательный(не нужно прыгать далеко)

дефрагментация какбэ намекает, что у ОСи чуть менее чем все файлы дефрагментированы, а это означает массивы байт без разрывов. Проблемы могут возникать только с системными файлами и файлами очень большого размера.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719165
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чуваки. цикл это такая же абстрация как и остальные. и не надо говорить что циклы через рекурсию делаются, может это рекурсия через циклы или еще там чего ....
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719166
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNбред. повторюсь. сначала выучи китайский хаскель, а потом говори что он не практичен.
Смишной.
13 постов назад ты говорил, что для системных приложений ФП неприменим.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719167
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistZyK_BotaNпропущено...

но фрагментация, кагбэ намикает, что файл это понятие не последовательное.

з.ы. дефрагментация не позволяет тебе иметь прямой доступ, она просто ускоряет последовательный(не нужно прыгать далеко)

дефрагментация какбэ намекает, что у ОСи чуть менее чем все файлы дефрагментированы, а это означает массивы байт без разрывов. Проблемы могут возникать только с системными файлами и файлами очень большого размера.я тебя еще раз повторю. прямого доступа всеравно нет. просто при дефрагментации - нет пржков при последовтельном доступе.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719168
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.ZyK_BotaNбред. повторюсь. сначала выучи китайский хаскель, а потом говори что он не практичен.
Смишной.
13 постов назад ты говорил, что для системных приложений ФП неприменим.ну да. ты наверное только системные задачи решаешь. ну-ну. значе те хацкель не нужен.

но большинство задач - прикладные, а там хаскель ого-го.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719169
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.ФП — это такой филосовский камень.
Он может выглядит очень эффектно в каких-то определенных задачах.
Но ФП в чистом виде — это абстракция, у которой нет практического применения для решения общих задач.
В частных задачах ФП может быть очень удобен.

Не стоит судить о ФП по одному загулявшему студенту.
Решение очень простое, но студент конечно слабоват, увы


something like that ...
Код: c#
1.
2.
3.
4.
5.
6.
7.
f(array, i)
{
   setNull(array[i]);
   f(array, i+1);
}

тут еще проверки не хватает, это общая зарисовка идеи



...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719170
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNBazistпропущено...


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

неужели ты думаешь что fseek на конец файла в АПИ генерит последовательное прохождение по всем ячейкам файла, по все сигментам какогото файлика на 1 гигабайт. Ты вообще себе представляешь этого идиота который написал этот драйвер ? Я лично - нет.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719171
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bazist

something like that ...
Код: c#
1.
2.
3.
4.
5.
6.
7.
f(array, i)
{
   setNull(array[i]);
   f(array, i+1);
}

тут еще проверки не хватает, это общая зарисовка идеи




ты в фп нчего не шарешь. setNull - по определению не фп, такие дела.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719172
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistНе стоит судить о ФП по одному загулявшему студенту.
Решение очень простое, но студент конечно слабоват, увы
Рекурсией не всегда можно заменить цикл.
Например цикл может быть бесконечным или выполняться до выполнения (не выполнения) какого-то внешнего условия.

Чтобы далеко не ходить за примером — пагинация при условии, что число строк на странице заранее определить/предсказать невозможно.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719173
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNBazist+

something like that ...
Код: c#
1.
2.
3.
4.
5.
6.
7.
f(array, i)
{
   setNull(array[i]);
   f(array, i+1);
}

тут еще проверки не хватает, это общая зарисовка идеи




ты в фп нчего не шарешь. setNull - по определению не фп, такие дела.

наверняка в чистом лиспе из мат учебника нет ничего что могло бы считать файл, я ввел апишную функцию чтобы показать как через рекурсию выразить цикл.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719174
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.BazistНе стоит судить о ФП по одному загулявшему студенту.
Решение очень простое, но студент конечно слабоват, увы
Рекурсией не всегда можно заменить цикл.
Например цикл может быть бесконечным или выполняться до выполнения (не выполнения) какого-то внешнего условия.

Чтобы далеко не ходить за примером — пагинация при условии, что число строк на странице заранее определить/предсказать невозможно.
а кто мешает рекусии быть бесконечной?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719175
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.BazistНе стоит судить о ФП по одному загулявшему студенту.
Решение очень простое, но студент конечно слабоват, увы
Рекурсией не всегда можно заменить цикл.
Например цикл может быть бесконечным или выполняться до выполнения (не выполнения) какого-то внешнего условия.

Чтобы далеко не ходить за примером — пагинация при условии, что число строк на странице заранее определить/предсказать невозможно.

Гугли функцию Анкермана, будешь приятно удивлен.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719177
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistZyK_BotaNпропущено...
ты в фп нчего не шарешь. setNull - по определению не фп, такие дела.

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

фп, это не рекурсия. побочные эффекты - уже противоречат фп.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719178
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNAlibek B.пропущено...

Рекурсией не всегда можно заменить цикл.
Например цикл может быть бесконечным или выполняться до выполнения (не выполнения) какого-то внешнего условия.

Чтобы далеко не ходить за примером — пагинация при условии, что число строк на странице заранее определить/предсказать невозможно.
а кто мешает рекусии быть бесконечной?

вестимо стек, но посколько для ФП это жизненно необходимо, то они рекурсии разварачивают в теже циклы.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719179
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Edd.DragonНе припомню в задании на ГУИ требование "Сделайте мне цикл! Но только по k, по i мне не нравится..."
Посмотри интерфейс программы Char Map (локализованное название "Таблица символов").
И что мне там смотреть?


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

А если же говорить "Раз циклы или рекурсия за ширмой есть - значит ты их использовал и они тебе понадобились для решения задачи", то это опять таки касается ВСЕХ языков. ПОтому что за ширмой они везде имеются. И в записи a*b и в десятке строк кода (на с++ или машинного), который эту запись расшифровывает.

А спор сведен к тому, что вот в этом лаконичном языке ширма плотнее , а в вашем бейсике и дураку понятно, что скрываается в функции vmul(a, b). Значит этот супер-язык истинно векторный/лаконичный/универсальный, а ваш зюшарп только прикидывается таковым ибо в нем циклы на нем же, а у меня - на ассемблерном коде где-то в заднице компилятора!

Разница грандиозная, да.
Вот лично я пытаюсь понять грандиозность этой разницы.
Либо в обоих наборах языков лишнее прячется и значит мы его типа не используем. Либо же понимаем, что это лишнее есть в обоих наборах языков, просто по-разному прячется. И что из этого? Как были оба набора "рукописными" языками, так и остались. Садись, думай, пиши, компилируй. А в случае с языками ради исскусства сотворенными, еще и мучайся периодически, как сделать то, для чего они не предназначены.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719180
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNBazistпропущено...


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

фп, это не рекурсия. побочные эффекты - уже противоречат фп.

а где здесь ты увидел побочный эффект ?
Разве моя функция меняет чтото кроме аргументов которые ей передали ?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719181
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistZyK_BotaNпропущено...

а кто мешает рекусии быть бесконечной?

вестимо стек, но посколько для ФП это жизненно необходимо, то они рекурсии разварачивают в теже циклы.
какое отношение стек имеет к рекурсии?
не путайте рекурсию, с "реализацией рекурсии в вашем любимом языке" тм
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719182
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistГугли функцию Анкермана, будешь приятно удивлен.
Погуглил. Не удивлен.
Какая связь описанного мною и условно бесконечной рекурсией?
Суть проблемы не в бесконечности, а в том, что условием является внешнее событие.

Еще раз.
Есть набор данных, возвращаемых SQL-запросом.
Нужно вывести его на печать.
Если форматирование текста осуществляется за пределами программы, то чистым ФП задачу не решить.
Например, внешний отчет в качестве входного параметра принимает строку данных, форматирует данные и выводит на печать, и возвращает текущую вертикальную позицию на листе. Т.е. спрогнозировать событие "начать новую страницу" можно только построчной обработкой и проверкой возвращаемого из внешнего отчета значения. Цикл и ветвление.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719183
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistZyK_BotaNпропущено...
какое лисп имеет отношение к фп. ты нихрена ф фп не шаришь.

фп, это не рекурсия. побочные эффекты - уже противоречат фп.

а где здесь ты увидел побочный эффект ?
Разве моя функция меняет чтото кроме аргументов которые ей передали ?
в фп.

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

просто затащить камень на гору - не является решаемой задачей для тюринг полного языка.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719184
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.BazistГугли функцию Анкермана, будешь приятно удивлен.
Погуглил. Не удивлен.
Какая связь описанного мною и условно бесконечной рекурсией?
Суть проблемы не в бесконечности, а в том, что условием является внешнее событие.

Еще раз.
Есть набор данных, возвращаемых SQL-запросом.
Нужно вывести его на печать.
Если форматирование текста осуществляется за пределами программы, то чистым ФП задачу не решить.
Например, внешний отчет в качестве входного параметра принимает строку данных, форматирует данные и выводит на печать, и возвращает текущую вертикальную позицию на листе. Т.е. спрогнозировать событие "начать новую страницу" можно только построчной обработкой и проверкой возвращаемого из внешнего отчета значения. Цикл и ветвление.решить. на хаскеле же решают.
без циклов.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719185
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonВ том то и дело, что чем дальше ты от них, тем легче "писать программы".
Есть программы и есть программные продукты. Программы писать легче. Но в топике под термином "программы" говорят именно о программных продуктах.
Везде, где есть интерактивное взаимодействие с пользователем, необходимо сохранять контроль над выполнением программы. И поэтому ФП применим только в частных случаях, а не в общих.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719186
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.BazistГугли функцию Анкермана, будешь приятно удивлен.
Погуглил. Не удивлен.
Какая связь описанного мною и условно бесконечной рекурсией?
Суть проблемы не в бесконечности, а в том, что условием является внешнее событие.

Еще раз.
Есть набор данных, возвращаемых SQL-запросом.
Нужно вывести его на печать.
Если форматирование текста осуществляется за пределами программы, то чистым ФП задачу не решить.
Например, внешний отчет в качестве входного параметра принимает строку данных, форматирует данные и выводит на печать, и возвращает текущую вертикальную позицию на листе. Т.е. спрогнозировать событие "начать новую страницу" можно только построчной обработкой и проверкой возвращаемого из внешнего отчета значения. Цикл и ветвление.

И что с того ?
Для тебя удивительно, но вся операционная система это однажды запущенная функция Main которая не успела выполнится, тото и всего.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719188
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNBazistпропущено...


а где здесь ты увидел побочный эффект ?
Разве моя функция меняет чтото кроме аргументов которые ей передали ?
в фп.

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

просто затащить камень на гору - не является решаемой задачей для тюринг полного языка.

Это сути моего решения не меняет, моя прога может вернуть копию обнуленного массива, что не противоречит условиям задачи. А вот то что задача с точки зрения ФП по твоему не решаема, то это действительно плохо. Это означает что ты теории там чото почитал, а применить ее беспомощен.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719189
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Edd.DragonВ том то и дело, что чем дальше ты от них, тем легче "писать программы".
Есть программы и есть программные продукты. Программы писать легче. Но в топике под термином "программы" говорят именно о программных продуктах.
Везде, где есть интерактивное взаимодействие с пользователем, необходимо сохранять контроль над выполнением программы. И поэтому ФП применим только в частных случаях, а не в общих.
Я не против того, что ФП не очень пригоден в целом в "реальной" жизни. Я наоборот - за.

Но фраза "цикл есть решением задачи" не корректна даже по смыслу (решением есть результат, данные), а фраза "для такой задачи вам необходим цикл" ограниченна в мышлении.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719190
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNрешить. на хаскеле же решают.
без циклов.
На чистом ФП это не решается.
Можно передать результат во внешний отчет, который сам все отформатирует.
Можно использовать костыли, нарушающие чистоту ФП.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719191
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonAlibek B.пропущено...

Есть программы и есть программные продукты. Программы писать легче. Но в топике под термином "программы" говорят именно о программных продуктах.
Везде, где есть интерактивное взаимодействие с пользователем, необходимо сохранять контроль над выполнением программы. И поэтому ФП применим только в частных случаях, а не в общих.
Я не против того, что ФП не очень пригоден в целом в "реальной" жизни. Я наоборот - за.

Но фраза "цикл есть решением задачи" не корректна даже по смыслу (решением есть результат, данные), а фраза "для такой задачи вам необходим цикл" ограниченна в мышлении.

Везде ФП нормально пригоден, просто соображать нужно чуточку больше.
ФП по сути мигрировал в императивную парадигму в виде шаблонов проектирования и инкапсуляции.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719192
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.ZyK_BotaNрешить. на хаскеле же решают.
без циклов.
На чистом ФП это не решается.
Можно передать результат во внешний отчет, который сам все отформатирует.
Можно использовать костыли, нарушающие чистоту ФП.

Это решается, польску язык Тьюринг полный.
Если математика говорит что решается значит решается.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719194
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonНо фраза "цикл есть решением задачи" не корректна даже по смыслу (решением есть результат, данные), а фраза "для такой задачи вам необходим цикл" ограниченна в мышлении.
Если программа является частью другой программы, то задачей вполне может быть организация правильного цикла.
Например есть кольцевая база данных (RRD), в которой имеется ряд архивов (RRA), охватывающих разные интервалы с разным шагом (например суточный архив с шагом 5 секунд, недельный архив с шагом 1 минута, месячный архив с шагом 5 минут). Нужно пройтись по всем датам, которые являются элементом любого архива (т.е. от -30 суток до -7 суток с шагом 5 минут, от -7 суток до -1 суток с шагом НОД для 5 минут и 1 минуты, и т.д.). Вот в такой задаче решением и будет неравномерный цикл по датам.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719195
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistЕсли математика говорит что решается значит решается.
Какая еще математика?
Еще раз. Невозможно вычислить, когда нужно начинать новую страницу. Эта информация становится доступной только после того, как одна строка данных была обработана внешней программой, которая и возвращает такую информацию.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719196
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЕще раз. Невозможно вычислить, когда нужно начинать новую страницу.
Наймем экстрасенса. Были бы деньги!
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719197
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.BazistЕсли математика говорит что решается значит решается.
Какая еще математика?
Еще раз. Невозможно вычислить, когда нужно начинать новую страницу. Эта информация становится доступной только после того, как одна строка данных была обработана внешней программой, которая и возвращает такую информацию.

И что с того ?

GetSomethingCalculation(aSystemVariable);
{
....
}
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719199
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы даже так сказал
Program1(Program2());
Итого первая программа ждет обработанной строки от второй программы.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719200
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Например есть кольцевая база данных (RRD), в которой имеется ряд архивов (RRA), охватывающих разные интервалы с разным шагом (например суточный архив с шагом 5 секунд, недельный архив с шагом 1 минута, месячный архив с шагом 5 минут). Нужно пройтись по всем датам, которые являются элементом любого архива (т.е. от -30 суток до -7 суток с шагом 5 минут, от -7 суток до -1 суток с шагом НОД для 5 минут и 1 минуты, и т.д.).
Кстати, такая задача в императивном программировании решается очень легко.
Самый простой способ — для всех RRA получить массивы дат, соединить в один массив и отсортировать.
А вот в ФП в общем случае она не решается вообще, т.к. нельзя вычислить моменты перевода часов на летнее/зимнее время и високосные/невисокосные года. Ее можно решить только для частного случая, когда принимается какое-то приближение (високосный год считается по формуле (n\4)&&(n\400)&&(!n\100), летнее время не используется).
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719201
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistProgram1(Program2());
Итого первая программа ждет обработанной строки от второй программы.
Я вроде бы про это и говорил.
Программа должна ждать результата обработки от внешнего источника. Причем обработка осуществляется построчно.
Цикл и есть.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719202
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Alibek B.Например есть кольцевая база данных (RRD), в которой имеется ряд архивов (RRA), охватывающих разные интервалы с разным шагом (например суточный архив с шагом 5 секунд, недельный архив с шагом 1 минута, месячный архив с шагом 5 минут). Нужно пройтись по всем датам, которые являются элементом любого архива (т.е. от -30 суток до -7 суток с шагом 5 минут, от -7 суток до -1 суток с шагом НОД для 5 минут и 1 минуты, и т.д.).
Кстати, такая задача в императивном программировании решается очень легко.
Самый простой способ — для всех RRA получить массивы дат, соединить в один массив и отсортировать.
А вот в ФП в общем случае она не решается вообще, т.к. нельзя вычислить моменты перевода часов на летнее/зимнее время и високосные/невисокосные года. Ее можно решить только для частного случая, когда принимается какое-то приближение (високосный год считается по формуле (n\4)&&(n\400)&&(!n\100), летнее время не используется).

Что тебе мешает дату передать в качестве аргумента в функцию вычисления ?
Это както противоречит ФП ?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719204
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажем так.
Чистое ФП возможно в тех случаях, когда сразу имеются все исходные данные и они не зависят от внешних факторов.
Если какие-то данные, влияющие на обработку, могут быть получены только в процессе работы программы и их нельзя вычислить/предсказать, то это уже не ФП.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719205
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.BazistProgram1(Program2());
Итого первая программа ждет обработанной строки от второй программы.
Я вроде бы про это и говорил.
Программа должна ждать результата обработки от внешнего источника. Причем обработка осуществляется построчно.
Цикл и есть.

Помойму ты плохо понимаешь ФП и то что императивное программирование это по сути подмножество ФП,
а это означает что на ФП впринципе может быть смоделирован любой конечный автомат без противоречий ФП, включая потоки, переключения контекстов, обратные вызовы, использование переменных окружения и тд тп.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719206
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistЧто тебе мешает дату передать в качестве аргумента в функцию вычисления ?
Это както противоречит ФП ?
Мешает то, что функция может быть только для приближенного случая.
Для общего случая функции не существует, т.к. величина корректировки (високосный или невисокосный год) является стохастической величиной.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719208
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Скажем так.
Чистое ФП возможно в тех случаях, когда сразу имеются все исходные данные и они не зависят от внешних факторов.
Если какие-то данные, влияющие на обработку, могут быть получены только в процессе работы программы и их нельзя вычислить/предсказать, то это уже не ФП.

С чего ты взял что это не ФП ?
Я же тебе показал как с помощью ФП можно смоделировать цикл,
тамже можно смоделировать и бесконечный цикл. А в цикле можешь вызывать функцию и в качестве параметра передать постоянно параметр который должен изменить внешняя программа. Все тоже самое.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719209
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bazistа это означает что на ФП впринципе может быть смоделирован любой конечный автомат без противоречий ФП, включая потоки, переключения контекстов, обратные вызовы, использование переменных окружения и тд тп.
Реализуешь в ФП генератор случайных чисел?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719210
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.BazistЧто тебе мешает дату передать в качестве аргумента в функцию вычисления ?
Это както противоречит ФП ?
Мешает то, что функция может быть только для приближенного случая.
Для общего случая функции не существует, т.к. величина корректировки (високосный или невисокосный год) является стохастической величиной.

бред какойто.
Все вычислимо в одной единственной функции, а если чегото не хватает то передается в качестве параметров и все.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719211
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Bazistа это означает что на ФП впринципе может быть смоделирован любой конечный автомат без противоречий ФП, включая потоки, переключения контекстов, обратные вызовы, использование переменных окружения и тд тп.
Реализуешь в ФП генератор случайных чисел?

Почему нет ?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719212
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistПочему нет ?
Потому что это будет не ФП.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719213
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.BazistПочему нет ?
Потому что это будет не ФП.

Ну обьясни, почему функция

Rand(systemtime)

Противоречит фп ?
Она чтото меняет внутри себя ? - нет
Она меняет параметр ? - нет
Она возвращает один результат ? - да

В чем проблема то ?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719214
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistВсе вычислимо в одной единственной функции, а если чегото не хватает то передается в качестве параметров и все.
Ну вычисли UNIX Timestamp (число секунд с 00:00:00 UTC 01.01.1970) для диапазона дат от 01.01.2000 до 01.01.20000 с шагом 100 секунд для часового пояса MSK. Вернее покажи формулу.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719216
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistНу обьясни, почему функция

Rand(systemtime)

Противоречит фп ?
Она чтото меняет внутри себя ? - нет
Она меняет параметр ? - нет
Она возвращает один результат ? - да

В чем проблема то ?
Проблема в том, что ты не понимаешь смысла задаваемых вопросов.

1. Функция Rand (согласно условиям ФП) для определенного systemtime всегда должна возвращать один и тот же результат. То есть возвращаемое значение — это не случайное число.
2. Случайное число вообще не должно зависеть от каких-то внешних факторов, поэтому у функции Rand не должно быть аргументов.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719217
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.BazistВсе вычислимо в одной единственной функции, а если чегото не хватает то передается в качестве параметров и все.
Ну вычисли UNIX Timestamp (число секунд с 00:00:00 UTC 01.01.1970) для диапазона дат от 01.01.2000 до 01.01.20000 с шагом 100 секунд для часового пояса MSK. Вернее покажи формулу.

Хрень морозишь.
Любой учебник по ФП с краткой главой в помощь, глянул в инфу ты даже не программер.
Сорри, я спать. Разбирайся, ответы я тебе дал, осталось тебе разобраться в причинах.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719218
kDnZP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaN, про файлы прикольно, честное слово. Про рекурсию в принципе согласен, помнится сам еще давным давно делал рекурсивный алгоритм обхода лабиринта на бейсике для корвета (там хоть GOSUB теоретически был, но он работал не через сохранение стека и вложенность обеспечить можно было тока шаманствами). Но всеже есть у меня сомнения, что Хаскель стек для рекурсии не использует... Можете подтвердить свое высказывание практическим примером, реализации какой-нить задачи с бесконечной рекурсией на Хаскеле, в противопоставление бесконечному циклу? Просто интересно...
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719220
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.1. Функция Rand (согласно условиям ФП) для определенного systemtime всегда должна возвращать один и тот же результат. То есть возвращаемое значение — это не случайное число.


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

Alibek B.2. Случайное число вообще не должно зависеть от каких-то внешних факторов, поэтому у функции Rand не должно быть аргументов.

функция Rand в любом апи, в тойже джабе, вб шарп си принимает аргумент,
учи матчасть

теперь точно спать
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719221
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.2. Случайное число вообще не должно зависеть от каких-то внешних факторов, поэтому у функции Rand не должно быть аргументов.
Неправильно выразился. Случайное число не должно зависеть от состояний и параметров программы, поэтому у функции Rand не должно быть аргументов.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719223
kDnZP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bazistфункция Rand в любом апи, в тойже джабе, вб шарп си принимает аргумент,
учи матчасть
Ну не обязательно... Вполне достаточно randseed, т.е. установки для генератора псевдослучайных чисел , это может быть сторонняя функция, тогда и rand может быть без аргументов.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719224
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Alibek B.2. Случайное число вообще не должно зависеть от каких-то внешних факторов, поэтому у функции Rand не должно быть аргументов.
Неправильно выразился. Случайное число не должно зависеть от состояний и параметров программы, поэтому у функции Rand не должно быть аргументов.

а от чего оно должно зависеть, от шелеста ветра, фазы луны, напряжения на микрофоне ?
учи мат часть
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719225
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kDnZPBazistфункция Rand в любом апи, в тойже джабе, вб шарп си принимает аргумент,
учи матчасть
Ну не обязательно... Вполне достаточно randseed, т.е. установки для генератора псевдослучайных чисел , это может быть сторонняя функция, тогда и rand может быть без аргументов.

по дефолту всеравно возьмется время, больше просто нечем инициировать последовательность.
Инициируешь константой, будет одно и тоже.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719226
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistПотому задача получения истинно случайной последовательности на персоналках это неипаццо сложная задача,
везде генераторы псевдослучайных чисел взятые обычно от даты.
Глупости. Это очень простая задача. Во всяком случае в императивном программировании.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719227
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.BazistПотому задача получения истинно случайной последовательности на персоналках это неипаццо сложная задача,
везде генераторы псевдослучайных чисел взятые обычно от даты.
Глупости. Это очень простая задача. Во всяком случае в императивном программировании.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719228
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bazistа от чего оно должно зависеть, от шелеста ветра, фазы луны, напряжения на микрофоне ?
учи мат часть
от радиоактивности, от мощности электромагнитного поля, от теплового шума.
Настоящий генератор случайных чисел так и делается.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719229
kDnZP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Неправильно выразился. Случайное число не должно зависеть от состояний и параметров программы, поэтому у функции Rand не должно быть аргументов.
При установке генератора на константу - он должен выдать одну и ту же последовательность, при использовании одного и того же алгоритма генерации псевдослучайной последовательности. Т.е. если я у себя установлю последовательность на константу X и вы у себя - то повторяемость должна быть полной.

* Случаи использования псевдостучайных последовательность с установкой сида от часов, движения мышки, пятен на солнце - не рассматриваю, хотя такое тоже есть.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719230
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kDnZPВполне достаточно randseed, т.е. установки для генератора псевдослучайных чисел , это может быть сторонняя функция, тогда и rand может быть без аргументов.
Аргумент не влияет на вычисление псевдослучайного числа, он влияет только на диапазон, в котором будет конечный результат.
rand(x) можно с тем же успехом заменить на rand()*x.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719231
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Bazistа от чего оно должно зависеть, от шелеста ветра, фазы луны, напряжения на микрофоне ?
учи мат часть
от радиоактивности, от мощности электромагнитного поля, от теплового шума.
Настоящий генератор случайных чисел так и делается.

нет сынок, это фантастика (с)
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719232
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kDnZPПри установке генератора на константу - он должен выдать одну и ту же последовательность, при использовании одного и того же алгоритма генерации псевдослучайной последовательности.
Я вроде бы говорил не про псевдослучайные числа, а про случайные.
Если где-то выше по тексту у меня фигурировало слово "псевдослучайные", то дайте ссылку на сообщение, это опечатка.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719233
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNчуваки. цикл это такая же абстрация как и остальные. и не надо говорить что циклы через рекурсию делаются, может это рекурсия через циклы или еще там чего ....
Спор напоминает "использование или неиспользование" комплексных чисел
в быту для хозяйственных и прочих денежных расчётов. Ну вроде-бы
они и нужны и тут круто можно корни извлекать из отрицательных и
всё такое, да вот только мы их не используем. Ну как-то так вот
исторически сложилось.

Так короче запись получается на бумаге.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719234
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.kDnZPВполне достаточно randseed, т.е. установки для генератора псевдослучайных чисел , это может быть сторонняя функция, тогда и rand может быть без аргументов.
Аргумент не влияет на вычисление псевдослучайного числа, он влияет только на диапазон, в котором будет конечный результат.
rand(x) можно с тем же успехом заменить на rand()*x.

ты знаешь, эта задача в математике такая, что как не дрочи, всеравно все зависит от аргумента.
Для одного и тогоже аргумента одно и тоже число на выходе, тебе о этом уже кстате сказали. И по другому ему просто некак взятся. Ну да можно залепить электромагнитный какойто датчик, но даст ли он истинно случайную последовательность ? Конечно же нет, везде есть закономерности. Поэтому все что ты тут говоришь это большое щито. Советую чтото погуглить и почитать, чтобы не быть тут джаст ту фан.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719235
kDnZP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.kDnZPПри установке генератора на константу - он должен выдать одну и ту же последовательность, при использовании одного и того же алгоритма генерации псевдослучайной последовательности.
Я вроде бы говорил не про псевдослучайные числа, а про случайные.
Если где-то выше по тексту у меня фигурировало слово "псевдослучайные", то дайте ссылку на сообщение, это опечатка.
Перечитал. Если речь идет о случайных - тогда все верно. Возразить нечего.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719236
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.ZyK_BotaNрешить. на хаскеле же решают.
без циклов.
На чистом ФП это не решается.
Можно передать результат во внешний отчет, который сам все отформатирует.
Можно использовать костыли, нарушающие чистоту ФП.
а можно не использовать костыли, а юзать хаскель
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719237
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kDnZPAlibek B.пропущено...

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

не тупи, в компах есть только псевдослучайные числа.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719238
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bazistнет сынок, это фантастика (с)
Добро пожаловать в будущее.
Случайные числа из звуковой карты
Источники энтропии ("Тепловой шум (или шум Джонсона), источник радиоактивного распада, генератор свободных колебаний могут быть источниками энтропии.")
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719239
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistAlibek B.пропущено...

На чистом ФП это не решается.
Можно передать результат во внешний отчет, который сам все отформатирует.
Можно использовать костыли, нарушающие чистоту ФП.

Это решается, польску язык Тьюринг полный.
Если математика говорит что решается значит решается.
камень на гору можно затащить? не?
ну дак значит не тюринг полный )

не путайте "вычислимую задачу"(кторую тюринг полны язык решает), с физической задачей - обнулить память.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719240
kDnZP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bazistне тупи, в компах есть только псевдослучайные числа.
компы разные бывают ;)
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719241
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.BazistProgram1(Program2());
Итого первая программа ждет обработанной строки от второй программы.
Я вроде бы про это и говорил.
Программа должна ждать результата обработки от внешнего источника. Причем обработка осуществляется построчно.
Цикл и есть.нет, есть входящий поток - и результующий. никаких проблем здесь в фп нет.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719242
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Bazistнет сынок, это фантастика (с)
Добро пожаловать в будущее.
Случайные числа из звуковой карты
Источники энтропии ("Тепловой шум (или шум Джонсона), источник радиоактивного распада, генератор свободных колебаний могут быть источниками энтропии.")

я тебе в самом начале сказал что это сложнейшая задача.
Но возвращаясь к нашему спору, почему на вход ФП функции нельзя передать параметр супер пупер радиоактивного распада энтропии. И почему ? И что изменится в этом плане в императивной парадигме ?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719243
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistAlibek B.пропущено...

Я вроде бы про это и говорил.
Программа должна ждать результата обработки от внешнего источника. Причем обработка осуществляется построчно.
Цикл и есть.

Помойму ты плохо понимаешь ФП и то что императивное программирование это по сути подмножество ФП,
а это означает что на ФП впринципе может быть смоделирован любой конечный автомат без противоречий ФП, включая потоки, переключения контекстов, обратные вызовы, использование переменных окружения и тд тп.воистину.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719244
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.BazistЧто тебе мешает дату передать в качестве аргумента в функцию вычисления ?
Это както противоречит ФП ?
Мешает то, что функция может быть только для приближенного случая.
Для общего случая функции не существует, т.к. величина корректировки (високосный или невисокосный год) является стохастической величиной.бред.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719245
kDnZP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kDnZPBazistне тупи, в компах есть только псевдослучайные числа.
компы разные бывают ;)
Вот, например , что должно быть весьма близка функциональщикам.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719246
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Если какие-то данные, влияющие на обработку, могут быть получены только в процессе работы программы и их нельзя вычислить/предсказать, то это уже не ФП.
эти данные - являются аргументами функций. сюрприз?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719247
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistНу да можно залепить электромагнитный какойто датчик, но даст ли он истинно случайную последовательность ? Конечно же нет, везде есть закономерности.
Даст. Слышал про принцип неопределенности? Если вкратце, его суть в том, что полностью детерминированная вселенная невозможна.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719248
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bazistне тупи, в компах есть только псевдослучайные числа.
http://en.wikipedia.org/wiki/Lavarand
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719249
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kDnZPkDnZPпропущено...

компы разные бывают ;)
Вот, например , что должно быть весьма близка функциональщикам.

ну бывают, но причем тут ФП.
Если это какойто волшебный датчик то это невычислимая задача не для императивных языках не на функциональных. Потому это и внешний источник данных, а не внутренний вычисляемый.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719250
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNнет, есть входящий поток - и результующий. никаких проблем здесь в фп нет.
Дело в том, что потока (результирующего) нет.
Он разрывается внешней программой в непредсказуемых (из основной программы) местах.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719251
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Bazistне тупи, в компах есть только псевдослучайные числа.
http://en.wikipedia.org/wiki/Lavarand

ФП то причем ? Или ты этот датчик можешь заменить программойй на С++ не в стиле ФП ?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719252
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistНо возвращаясь к нашему спору, почему на вход ФП функции нельзя передать параметр супер пупер радиоактивного распада энтропии. И почему ? И что изменится в этом плане в императивной парадигме ?
Потому что в ФП функция не может возвращать разный результат для одного набора входных данных.
А в императивном программировании такого ограничения нет, считывай состояние датчика и отдавай в return.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719253
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.BazistНо возвращаясь к нашему спору, почему на вход ФП функции нельзя передать параметр супер пупер радиоактивного распада энтропии. И почему ? И что изменится в этом плане в императивной парадигме ?
Потому что в ФП функция не может возвращать разный результат для одного набора входных данных.
А в императивном программировании такого ограничения нет, считывай состояние датчика и отдавай в return.

ладно, с меня хватит глупостей на сегодня
пока )
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719255
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kDnZPZyK_BotaN, про файлы прикольно, честное слово. Про рекурсию в принципе согласен, помнится сам еще давным давно делал рекурсивный алгоритм обхода лабиринта на бейсике для корвета (там хоть GOSUB теоретически был, но он работал не через сохранение стека и вложенность обеспечить можно было тока шаманствами). Но всеже есть у меня сомнения, что Хаскель стек для рекурсии не использует... Можете подтвердить свое высказывание практическим примером, реализации какой-нить задачи с бесконечной рекурсией на Хаскеле, в противопоставление бесконечному циклу? Просто интересно...ну начнем с того, что хаскель ленивый, а потому там не все так просто.

поэтому начну не с хаскеля, а с энергичных фп языков.

представим ф-ю f, которая возвращает значение возвращаемое ф-й g

f(x) {
return g(x);
}

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


т.е. візов ф-и g, компилируеться не в call инструкцию,а в jmp.

теперь заменим g на f.

f(x) {
return f(x)
}

в маш коде будет обічній цикл.


в хаскеле все хитрей. там не принято юзать хвостовую рекурсию.
там юзаются списки. при єтом сборщик мусора подбирает пройденіе єлементі, а потому используемая память - константна.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719256
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistФП то причем ? Или ты этот датчик можешь заменить программойй на С++ не в стиле ФП ?
Я могу написать функцию GetRand, которая будет считывать датчик и возвращать значение. Я даже могу в этой функции обращаться не самому датчику, а к API, которое вернет обработанный результат.
В ФП использование такого API будет нарушением парадигмы.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719257
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kDnZPkDnZPпропущено...

компы разные бывают ;)
Вот, например , что должно быть весьма близка функциональщикам. кстати да. показал преподу "системщику" лабу на хаскеле, дак он мне сказал - єто гкс какое-то ))

типа берем результат ф-и, и подаем его в качестве аргумента.

сейчас найду тот код

вот:

Код: sql
1.
(as,ss) = unzip $ zipWith aut cs (s0:ss)



обратите внимание на "ss", данная последовательность передается параметром в функцию, которая ее вычисляет ))
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719258
kDnZP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaN, вы мне сделайте пример, а я его уже буду разбирать самостоятельно. Теории не надобно.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719259
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNAlibek B.Для общего случая функции не существует, т.к. величина корректировки (високосный или невисокосный год) является стохастической величиной.бред.
В таком случае повторю предложение написать функцию, которая вычислит эти величины.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719260
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistkDnZPпропущено...

Вот, например , что должно быть весьма близка функциональщикам.

ну бывают, но причем тут ФП.
Если это какойто волшебный датчик то это невычислимая задача не для императивных языках не на функциональных. Потому это и внешний источник данных, а не внутренний вычисляемый.автор сикп говорит, что фпшники были вдохновлены именно такими машинами. дак что да, фп.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719261
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.ZyK_BotaNнет, есть входящий поток - и результующий. никаких проблем здесь в фп нет.
Дело в том, что потока (результирующего) нет.
Он разрывается внешней программой в непредсказуемых (из основной программы) местах.что значит разрывается?
у тебя есть недопонимания. напиши сначала пару прог на хацкеле(с гуями, и т д).
тогда все поймешь. желательно юзать ни ио, а реактивное программирование.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719262
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.ZyK_BotaNпропущено...
бред.
В таком случае повторю предложение написать функцию, которая вычислит эти величины.
опиши задачу. напишу ф-ю.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719263
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kDnZPZyK_BotaN, вы мне сделайте пример, а я его уже буду разбирать самостоятельно. Теории не надобно.дак я уже сделал.

f(x) {
return f(x);
}

зачем здесь стек?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719264
kDnZP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaN, традиционно обучение САУ сопровождается примерами регулировки сливного бачка унитаза :). Ну для электроников естественны и понятны понятия обратной связи, так что - ничего не ново.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719265
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNопиши задачу. напишу ф-ю.
Я уже писал.
Alibek B.Ну вычисли UNIX Timestamp (число секунд с 00:00:00 UTC 01.01.1970) для диапазона дат от 01.01.2000 до 01.01.20000 с шагом 100 секунд для часового пояса MSK. Вернее покажи формулу.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719266
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kDnZPZyK_BotaN, традиционно обучение САУ сопровождается примерами регулировки сливного бачка унитаза :). Ну для электроников естественны и понятны понятия обратной связи, так что - ничего не ново. ты электроник?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719267
kDnZP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNkDnZPZyK_BotaN, вы мне сделайте пример, а я его уже буду разбирать самостоятельно. Теории не надобно.дак я уже сделал.

f(x) {
return f(x);
}

зачем здесь стек?
Т.е. если я щаз раздобуду Хаскель, то данная программа выполнится без ошибок?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719268
kDnZP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNты электроник?
Ну по образованиям да))), а на программера как-то не пришлось выучиться))), хоть и работаю несколько лет. (Это я, конечно, не беру в расчет самообразование, что есть непрерывный процесс).
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719269
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kDnZPZyK_BotaNпропущено...
дак я уже сделал.

f(x) {
return f(x);
}

зачем здесь стек?
Т.е. если я щаз раздобуду Хаскель, то данная программа выполнится без ошибок?с ошибками. я на псевдокоде писал. выше я писал что хаскель(во первых ленивый, потому там не принято хвостовую рекурсию юзать, но можно заюзав энергичные вычислений)

в хаскел любой вызво ф-ию - джамп, дак что там да.

вот те прога на хаскеле

f x = f x


можешь запустить в репле. память жраться не будет.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719270
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kDnZP,

а ті че, с фп не знакм что-ли?
странно, я думал ті фпшник.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719272
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNkDnZPпропущено...

Т.е. если я щаз раздобуду Хаскель, то данная программа выполнится без ошибок?с ошибками. я на псевдокоде писал. выше я писал что хаскель(во первых ленивый, потому там не принято хвостовую рекурсию юзать, но можно заюзав энергичные вычислений)

в хаскел любой вызво ф-ию - джамп, дак что там да.

вот те прога на хаскеле

f x = f x


можешь запустить в репле. память жраться не будет.вот уже 4 минуті работает, ни на один килобайт расход памяти не увеличился. можно для надежности передать список из миллиона єлементов. сейчас сделаю.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719273
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNопиши задачу. напишу ф-ю.
Как я и предполагал.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719274
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNkDnZPпропущено...

Т.е. если я щаз раздобуду Хаскель, то данная программа выполнится без ошибок?с ошибками. я на псевдокоде писал. выше я писал что хаскель(во первых ленивый, потому там не принято хвостовую рекурсию юзать, но можно заюзав энергичные вычислений)

в хаскел любой вызво ф-ию - джамп, дак что там да.

вот те прога на хаскеле

f x = f x


можешь запустить в репле. память жраться не будет.если хочется именно скомпилить в приложение, то на такой код:

Код: sql
1.
2.
3.
4.
5.
main = do
    putStr $ show (f 0)

f :: Int -> Int    
f x = f x
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719275
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNвот уже 4 минуті работает, ни на один килобайт расход памяти не увеличился. можно для надежности передать список из миллиона єлементов. сейчас сделаю.
за 20 мин, объем занимаемой памяти не увеличился ни на килобайт.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719278
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Категоричным сторонникам чистого ФП предлашаю решить следующую задачу.
Вывести (или вычислить) значения UNIX Timestamp (число секунд с 00:00:00 UTC 01.01.1970) для диапазона дат от 01.01.2000 до 01.01.9999 с шагом 100 секунд для часового пояса MSK. Поясняю: интервалы в 100 секунд начиная с 01.01.2000 определяются по MSK (московское время), но сам timestamp базируется на UTC, т.е. нужно учитывать коррекцию часового пояса.
Также нужно учитывать следующее:
1. Год, кратный 4 — високосный.
2. Год, кратный 100 — невисокосный.
3. Год, кратный 400 — високосный.
4. В 3328 году в феврале будет дополнительный день, 30 февраля.
5. 30 июня или 31 декабря производится коррекция, на +1 или -1 секунду.
6. В 2012 году будет коррекция на +1 секунду.
7. Список коррекций публикуется здесь .
8. С 1970 года московское время соответствует GMT+0300, также используется летнее время (GMT+0400).
9. В 1991 году декретное и летнее время были отменены.
10. В 1992 году декретное и летнее время были восстановлены.
11. В 2012 году было отменено декретное время.
12. В марте 2012 года было отменено летнее время.
13. В настоящее время используется часовой пояс UTC+0400.
14. Возможно повторное внедрение перехода на летнее время, поэтому необходимо использовать системную базу данных timezone.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719481
kDnZP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNkDnZP,

а ті че, с фп не знакм что-ли?
странно, я думал ті фпшник.
Нет, с ФП знаком только весьма поверхностно и теоретически. Не было практической необходимости в изучении. К сожалению у меня не хватает времени на изучения чего-то нового just for fun, так что боюсь, что если мода на ФП пройдет, то я с этой парадигмой так и не познакомлюсь.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719556
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
Alibek B.Категоричным сторонникам чистого ФП предлашаю решить следующую задачу.
Вывести (или вычислить) значения UNIX Timestamp (число секунд с 00:00:00 UTC 01.01.1970) для диапазона дат от 01.01.2000 до 01.01.9999 с шагом 100 секунд для часового пояса MSK. Поясняю: интервалы в 100 секунд начиная с 01.01.2000 определяются по MSK (московское время),

Тут мне не очень понятно как интервал может по какому-то поясу вычисляться. Если это следущийМомент-текущийМомент в MST то, как оно должно вычисляться при переводе часов на летнее/зимнее время?

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

Еще есть остроумный способ для IO в чистом ФЯ языке clean : что такое чистая функция? Это функция, у которой результат полностью завиит от аргументов. Допустим, у нас есть наш любимый тепловошумный генератор случайных чисел, который все время выдает разное значение - так введем спецтип World, обозначающий состояние вселенной. И такие функции у нас зависят от состояния всего мира таким образом являются чистыми - результат зависит только от аргументов.

У вас, кстати, есть уже готовая программа на императивном языке - чтоб посмотреть там всякие подробности?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719593
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#Тут мне не очень понятно как интервал может по какому-то поясу вычисляться. Если это следущийМомент-текущийМомент в MST то, как оно должно вычисляться при переводе часов на летнее/зимнее время?
При переходе на другой часовой пояс вместо 100 секунд интервал должен быть равен 3500 секунд или -3500 секунд.

Про спецтип World я не понял. Имеется ввиду, что у этого типа будут аргументы, описывающие состояние вселенной, на основании которого можно рассчитать значение датчика? Так это невозможно, т.к. вселенная не является полностью детерминированной.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719595
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistAlibek B.Случайное число не должно зависеть от состояний и параметров программы

а от чего оно должно зависеть, от шелеста ветра, фазы луны, напряжения на микрофоне ?
Не самые лучшие источники случайного, но да, направление правильное :)
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719596
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да зачем ты ио упомянул, оно здесь не нужно, все необходимые данные - можно принимать в качестве аргумента.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719602
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#У вас, кстати, есть уже готовая программа на императивном языке - чтоб посмотреть там всякие подробности?
Нет, именно такого готового нету. Но такого рода задачи в императивном языке не требуют каких-то особых умений.
Достаточно пройтись по моему списку из 14 пунктов и задать соответствующие проверки.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719615
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.F#У вас, кстати, есть уже готовая программа на императивном языке - чтоб посмотреть там всякие подробности?
Нет, именно такого готового нету. Но такого рода задачи в императивном языке не требуют каких-то особых умений.
Достаточно пройтись по моему списку из 14 пунктов и задать соответствующие проверки.я тебе открою секрет, фп все так же, просто без циклов, побочных эффектов и деструктивного присваивания.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719619
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNя тебе открою секрет, фп все так же, просто без циклов, побочных эффектов и деструктивного присваивания.
Вместо секрета меня вполне устроит функция на ФП для решения этой задачи.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719630
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
Alibek B.Про спецтип World я не понял. Имеется ввиду, что у этого типа будут аргументы, описывающие состояние вселенной, на основании которого можно рассчитать значение датчика? Так это невозможно, т.к. вселенная не является полностью детерминированной.

Нет. Это тип, значение которого обозначает текущее состояние вселенной. То, что она не являетсся детермирированной не значит, что в данный текущий момент нет ровно одного показания датчика. Грубо говоря, программа выглядит так (C# - образный псевдокод)

Код: c#
1.
2.
3.
4.
5.
6.
World main(World worldState)
{
    randomValue, nextWorldState = getRandomValue(worldState) 
    return outputValue(nextWorldState, randomValue)
    
}



World - это абстрактный тип, на который наложены некоторые дополнительные ограничения
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719632
inv2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ZyK_BotaN
Зачем я + вставил посередине, а не перед
sum[1;2;3;4] было бы на J: +/1 2 3 4

хотя даже в этом примере хаскельцы поняли, что лениво писать foldr 0 постоянно, поэтому заалиасили sum, тем самым создав бесполезную функций. В J это просто + и / (foldr) - написать очень просто - никакую сум алиасить не надо.

Но всё же вернёмся к 1+2 3 4, тут в haskell должен быть _бесполезный_ map, хотя тут просто сложение скаляра и вектора, но в haskell такого нет, поэтому пишем map.

Regards,

ZyK_BotaNZyK_BotaNпропущено...

зачем мап, чем плоха

sum [1,2,3,4]

?или это не сума, а что тогда? раз ты говоришь мап, значит я ошибся, и не все так очевидно
что в результате получим?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719637
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#Нет. Это тип, значение которого обозначает текущее состояние вселенной. То, что она не являетсся детермирированной не значит, что в данный текущий момент нет ровно одного показания датчика.
По прежнему понял не все.
Тем не менее, из этого вытекает, что ФП не подходит для квантовой механики, так?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719651
inv2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
S.G.,

K, с алиасами от Q и есть _почти_ естественный язык, смотри примеры:
Код: sql
1.
flip where n&count each group flip value flip t
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719652
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
ZyK_BotaNда зачем ты ио упомянул, оно здесь не нужно, все необходимые данные - можно принимать в качестве аргумента.

А как качнуть с сайта без ИО?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719665
inv2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поддерживаю, читать Bazist никакого прока, язык, который решает только примитивные задачи, но у которого даже нет концепции - толку никакого, так как нет уверенности, что на большой задаче не вылезет концептуальная проблема в каком-то месте.

Bazist ,
Порешай хотя бы большинство euler задач, потом есть смысл смотреть на rs, иначе - проходите мимо, пожалуйста.

Edd.DragonBazistДа, расстроил меня язык К.
Лучше уже действительно учить ультракороткий и ультрапростой язык
Изыди, демон!

Лучше стремиться к прекрасному, чем занимать пустующие мозги всякой бесполезной мишурой.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719671
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.ZyK_BotaNя тебе открою секрет, фп все так же, просто без циклов, побочных эффектов и деструктивного присваивания.
Вместо секрета меня вполне устроит функция на ФП для решения этой задачи.а меня на ип.

геморность задачи не зависит от парадигмы.

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

оставь только суть. то что "нельзя" на фп. и я напишу.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719673
inv2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я кажется понял, откуда в теме взялось 10 страниц,
некий Bazist влез в чужую тему, чтобы попиарить свой недоязык, хотя ничего общего с темой он не имеет.

Я попрошу модераторов вычистить это переливание из пустого в порожнее.

Условие, необходимое для рассмотрения языка RS - хотя задачи euler, решенные на нём.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719677
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNоставь только суть. то что "нельзя" на фп. и я напишу.
Зачем? Я уже все понял.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719678
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#ZyK_BotaNда зачем ты ио упомянул, оно здесь не нужно, все необходимые данные - можно принимать в качестве аргумента.

А как качнуть с сайта без ИО?к пересчету времени ИО отношения не имеет.

тут обычная ф-я.

передаем ф-и (скачанное с помощью ио время и местоположение), а ф-я должна быть чиста и ничего не качать
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719683
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.ZyK_BotaNоставь только суть. то что "нельзя" на фп. и я напишу.
Зачем? Я уже все понял.мда уж. на императивном языки я тоже ничего не написал, дак че, на императивном языке задача не решается )
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719692
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
Alibek B.По прежнему понял не все.


Ну есть ситуации когда результат зависит не только от агументов, но и от состояния чего-то внешнего.

Как сделать такую функцию чистой? Добавляем абстрактный спецтип world (состояние мира) и добавляем аргумент этого типа в функцию. И тогда она становится чистой - зависит только от своих аргументов. Тип абстрактный реально служит просто для обозначения зависимостей одних функций от других.

Например, императивно писать так:

cделатьЧай
{
чайник.налитьводу
чайник.вскипятить
}

функционально так

чай = вскипяченный(с_налитой_водой(чайник))

тут мы видем что включается чайник с уже налитой водой (функция С_налитой_водой берет пустой чайниуц и возвращает полный - то есть мы передаем состояние чайника и уже нет возможности включить пустой чайник так как есть зависимость аргумента функции кимячения от резльтат функции наливания)

Тем не менее, из этого вытекает, что ФП не подходит для квантовой механики, так?

Не - тут речь шла об IO на обычных компьютерах, а не о квантовых расчетах.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719693
inv2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какой результат даёт цикл?

Делаем цикл в K:
do[10;]

Даёт - пусто :)

Alibek B.ZyK_BotaNа зачем вам цикл то?
зачем процесс? нужен ведь результат.
вот вас когда-то просил пользователь, что-бы вы сделали цикл?
Затем, что нужен цикл, именно его организация является результатом.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719721
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#Ну есть ситуации когда результат зависит не только от агументов, но и от состояния чего-то внешнего.
Понял.
Но разве такой костыль — это не отход от чистого ФП?
Насколько я понял, в ФП таких ситуаций быть не должно (функции должны быть полностью детерминированы).
И поэтому для чистый ФП может использоваться только в полностью закрытой и изолированной системе. И поскольку в реальном мире таких нет, то и практическое применение ФП ограничено только частными случаями.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719754
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
Alibek B.F#Ну есть ситуации когда результат зависит не только от агументов, но и от состояния чего-то внешнего.
Понял.
Но разве такой костыль — это не отход от чистого ФП?
Насколько я понял, в ФП таких ситуаций быть не должно (функции должны быть полностью детерминированы).


Дык оно и детерминировано - аргумент: текущее состояния мира. Фактически, имеративная программа с этой точки зрения - тоже чисто функциональная, только к каждой функции приписан World и нет способа сказать, что нам не нужно глобальное синхронное состояние. В функциональных программах мы можем не требовать Worldа и тогда у нас есть гарантии что функции можно вычислять независимо
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719763
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#Дык оно и детерминировано - аргумент: текущее состояния мира.
Нет, смысл я понял. Но как-то искуственно такой финт выглядит.
Как введение понятия "эфир" в свое время.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719770
inv2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alibek B.
Я бы не сказал, что оно искуственно,
но, например, у меня, это вызывает небольшой дискомфорт - программа верная и описана точно, но необходимость что-то, например, слогировать посередине вычислений вызывает анальную боль.

Если нет точного понимания, что именно пишешь, haskell рефакторить значительно более трудоёмно, чем другие языки с side-эффектами.

Alibek B.F#Дык оно и детерминировано - аргумент: текущее состояния мира.
Нет, смысл я понял. Но как-то искуственно такой финт выглядит.
Как введение понятия "эфир" в свое время.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719809
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
inv2004Я кажется понял, откуда в теме взялось 10 страниц,
некий Bazist влез в чужую тему, чтобы попиарить свой недоязык, хотя ничего общего с темой он не имеет.

Я попрошу модераторов вычистить это переливание из пустого в порожнее.

Условие, необходимое для рассмотрения языка RS - хотя задачи euler, решенные на нём.

Я думал тут языки сравнивают по краткости и как результат понятности.
РС весьма в теме оказался, проще и короче. Проги писал.
А так успехов в К
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719828
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
inv2004 Alibek B.
Я бы не сказал, что оно искуственно,
но, например, у меня, это вызывает небольшой дискомфорт - программа верная и описана точно, но необходимость что-то, например, слогировать посередине вычислений вызывает анальную боль.

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

Alibek B.пропущено...

Нет, смысл я понял. Но как-то искуственно такой финт выглядит.
Как введение понятия "эфир" в свое время.

поправил.

а рефактроить как раз в разы проще и лучше. строгая типизация и контроль сайд эффектов, помогают не налажать, не допустить ошибок. и т д.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719832
inv2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ZyK_BotaN,

Со стороны не ошибиться - да, но это с одной, с другой - это достаточно трудоёмко.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719841
inv2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bazist ,

http://rstudio.at.ua/search/?q=euler
Результаты 0-0 из 0 по запросу euler

Проходите, не задерживайтесь.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719896
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне нефиг делать еще эйлера писать.
Я тут и так первый дурак который пишет больше всего кода
как всегда. Разработчик языка не обязан писать на нем все вощможные
проги. Почитай мануал пиши если тебе это нужно
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719901
inv2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bazist ,
если нет нескольких задач даже по euler'у, то что есть?
обнуление массива и различные итераторы?

Пока-пока.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719941
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
inv2004 Bazist ,
если нет нескольких задач даже по euler'у, то что есть?
обнуление массива и различные итераторы?

Пока-пока.

пля

http://euler.jakumo.org/problems/view/1.html

((i<1000 & i%3 & i%5)?i)\+

В отличии от конченных доходящих шифтовых языков нормальные скопки, выражения и логические операторы
позаимственованные из Си подобных языков
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719947
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эйлеровский детский сад с математическим уклоном,
ты эту задачу реши 12299069 , естественную
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37719950
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
Модератор: Что, без мерения никак?

Закрываю до понедельника.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37724466
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonZyK_BotaNну вот не скажи что эта отладка так уж нужна.
если язык функциональный. то можно тестировать работу каждой ф-и по отдельности(можно задействовать и юнит тестирование)

т.е. нужно ввобще абстрагироваться от понятия шагов.
вот в том же ленивом хаскеле - хрен поймешь, что после чего вызовется, но в том то и суть, что это не важно. главное - результат а не последовательность вычислений.
Извини. Наш мир - имеет состояния. И нужно иметь возможность сделать
снимок вселенной. А ФП - это просто определённый подход к
программированию и не более. Определённый уровень абстракций.
Но когда ты работаешь с сетью, файлами эти состояния всплывают
во всей своей красе.

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

подход назіваеться - реактивное программирование, сегодня на хабре заметил статью, решил тебе дать ссілку почитать:
http://habrahabr.ru/post/140719/

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

был бы не против обсудить недостатки\преимущества данного подхода, по сравнению с событийно-ориентированным подходам в императивных языках(событиями сишарпа, лиснерами жавы и т.д.)
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37724481
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaN, спасибо, почитаю
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37724482
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonZyK_BotaN, спасибо, почитаютам правда статья написана для хасклистов, поэтому если увидишь непонятный термин или запись - спрашивай здесь, я разъясню.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37793564
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересная тема. Даже очень.
Судя по увиденному в первом посте, автору рекомендую языки awk и sed, наполненные подобными конструкциями чуть более, чем полностью.
Если же абстрагироваться от написанного в теле первого поста и в порядке флейма поразмышлять по указанному в заголовке темы вопросу...
Чем ваши хвалёные лиспы с хаскелями лучше ECMAScript 5 и Perl?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37793658
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division XЧем ваши хвалёные лиспы с хаскелями лучше ECMAScript 5 и Perl?

ну, если лисп - только макросами(которые не стоит недооценивать)

то рядом с хаскелем эти динамические язычки я и рядом не стоят.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37793743
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaN,

а можно по пунктам, чем хаскель лучше JS?
ZyK_BotaN рядом с хаскелем эти динамические язычки я и рядом не стоят.

Эт да, хаскель не рядом, а где-то глубоко внизу, в яме никому не нужных абстракций.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37793754
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division XZyK_BotaN,

а можно по пунктам, чем хаскель лучше JS?
ZyK_BotaN рядом с хаскелем эти динамические язычки я и рядом не стоят.

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

это совсем другое, и даже сравнивать трудно.

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

т.е. столько параметров, что даже фиг сравнишь эти языки.

а вот с лиспом, да - можно сравнивать и говорить - что лучше, а что хуже.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37793765
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaN,

Хорошо, с лиспом. Напомню, речь о ES5 (со всеми его map, filter, reduce, some, every и т.п.), который подерживается во всех современных браузерах и nodeJS.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37793771
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division XZyK_BotaN,

Хорошо, с лиспом. Напомню, речь о ES5 (со всеми его map, filter, reduce, some, every и т.п.), который подерживается во всех современных браузерах и nodeJS.

ну я выше сказал - макросы.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37793959
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
Division XZyK_BotaN,

а можно по пунктам, чем хаскель лучше JS?


Статический контроль типов, модули, гарантия функциональной чистоты, там, где надо.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37794047
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#Статический контроль типов

Pascal is back?
F#гарантия функциональной чистоты, там, где надо.
Зачем это всё? Это же внутренние заморочки, язык ради языка, а не язык ради результата.
ZyK_BotaNну я выше сказал - макросы.
Макросы - это костыли, предназначенные только для увеличения читабельности (именно поэтому MASM так хорошо разошелся). В Си использовать макросы уже, вообще говоря, нет необходимости, а в JS - тем более, когда любой переменной можно хоть функцию присвоить. Есть препроцессоры и для JS (с макросами, отладочными выражениями и т.п.), но в большинстве случаев это аццкое излишество.
F#модули

Здесь согласен, JS (ES5) в теории сливает. Но лишь в теории. На практике почти все JS-рантаймы позволяют подгружать модули. Особенно выразительно это сделано в том же NodeJS.

В общем... это всё? Как-то сильно академично и до киллер-фич JS...

Сбалансированный набор расширяемых типов данных

Наличие ништячных событийно-ориентированных фреймворков (к примеру, на клиенте - jQuery, на сервере - NodeJS)

Богатая стандартная библиотека

Интеграция со стандартами передачи данных

Ну и, наконец, рантайм на 95% подключенных к интернету клиентских компьютеров и портативных устройств


...ну явно не дотягивает.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37794062
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division XF#Статический контроль типов

Pascal is back?

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

вот например, как на базе паскаля - реализовать статический контракт?
а на хаскеле можно:
http://www.rsdn.ru/forum/decl/4522924.aspx
Division XF#гарантия функциональной чистоты, там, где надо.
Зачем это всё? Это же внутренние заморочки, язык ради языка, а не язык ради результата.


нет, это очень важный момент

Division XZyK_BotaNну я выше сказал - макросы.
Макросы - это костыли, предназначенные только для увеличения читабельности (именно поэтому MASM так хорошо разошелся). В Си использовать макросы уже, вообще говоря, нет необходимости, а в JS - тем более, когда любой переменной можно хоть функцию присвоить. Есть препроцессоры и для JS (с макросами, отладочными выражениями и т.п.), но в большинстве случаев это аццкое излишество.


маркросы лиспа, и рядом с сишными не стояли. почитай PCL, елси хочешь понять о чем я
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37794076
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNнет, это очень важный момент
Важный, опять же, для процесса, а не для результата.
Как, кстати, в задрот-лэнгах с событийно-ориентированностью дела обстоят?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37794077
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division XZyK_BotaNнет, это очень важный момент
Важный, опять же, для процесса, а не для результата.
Как, кстати, в задрот-лэнгах с событийно-ориентированностью дела обстоят?

на прошлой странице про это рассказывал:
12317895
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37794078
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division XZyK_BotaNнет, это очень важный момент
Важный, опять же, для процесса, а не для результата.

результата еще нужно добиться.

и раз уже начали сравнивать языки, то процесс - важен.
а то что, только быстродействие останется в качестве критерия?
по чем еще "результат" можно оценивать?

ну дак хаскель получше будет оптимизироваться, чем эти ваши динамичиские язычки
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37794223
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
Division XZyK_BotaNнет, это очень важный момент
Важный, опять же, для процесса, а не для результата.
Как, кстати, в задрот-лэнгах с событийно-ориентированностью дела обстоят?

Ну получше чем в быдлоскриптах :). Оттуда даже постепенно в JS пытаются перетащить некоторые концепции
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37794684
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNна прошлой странице про это рассказывал:
12317895
Ясно, событийно-ориентированности без потусторонних библиотек там нету. В то время как в JS это - основа большинства, если не всех, рантаймов.

ZyK_BotaNи раз уже начали сравнивать языки, то процесс - важен.
а то что, только быстродействие останется в качестве критерия?
по чем еще "результат" можно оценивать?
Например, по количеству затраченных на получение этого результата телодвижений. Объему и компактности кода при сохранении читабельности, то бишь.
Вот например, недавно в в этом же разделе решали задачу. На входе - вектор объектов любой длины. На выходе надо сформировать новый вектор, состоящий только из тех элементов, которые в исходном повторяются 2 или более раз. Вот этот вариант для 10 миллионов числовых значений от 0 до 1000 отрабатывает примерно за полсекунды:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
function getRepeats(list)
{
	var repeated = [];
	var items = {};
	list.forEach(function(val){
		if(items[val])
		{
			repeated.push(val);
			items[val]=0;
		}
		else items[val]=1;
		});
	return repeated;	
}



Интересно было бы посмотреть на реализацию и бенчмарки на хаскелиспах.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37794752
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division X, ты допускаешь типичную ошибку. То бишь пытаешся воевать на своём поле
и устраивать бенчмарки для поисков и прочих стебельков. Языки ФП в этом вообще
не сильны. Да и никто не декларировал их силу и скорость в типично императивных вещах.
Их сила в других задачах. Примерный список выглядит так.

http://ru.wikibooks.org/wiki/%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F/%D0%92%D0%B2%D0%BE%D0%B4%D0%BD%D0%B0%D1%8F_%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D1%8F#.D0.A0.D0.B5.D1.88.D0.B0.D0.B5.D0.BC.D1.8B.D0.B5_.D0.B7.D0.B0.D0.B4.D0.B0.D1.87.D0.B8
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37794975
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

викибуки1. Получение остаточной процедуры.
2. Построение математического описания функций..
3. Определение формальной семантики языка программирования.
4. Описание динамических структур данных.
5. Автоматическое построение «значительной» части программы по описанию структур данных, которые обрабатываются создаваемой программой.
6. Доказательство наличия некоторого свойства программы.
7. Эквивалентная трансформация программ.
Все эти задачи достаточно легко решаются средствами функционального программирования, но практически неразрешимы в императивных языках.
Да. Интересный список. Особенно если учесть, что:
викибуки4. Описание динамических структур данных.
- ES5 весь построен на динамических структурах;
викибуки3. Определение формальной семантики языка программирования.
5. Автоматическое построение «значительной» части программы по описанию структур данных, которые обрабатываются создаваемой программой.
- то есть генерация парсеров, по сути. Во-первых, для этого есть специализированное семейство языков (yacc-подобные). Во-вторых... Вчера наткнулся на вот такую штуку . Похож на yacc и bison, но написан как модуль к nodeJS на чистом JS.

Озвучьте, пжалста, ниши применения оставшихся четырёх пунктов.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795018
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division XОзвучьте, пжалста, ниши применения оставшихся четырёх пунктов.
Увы, увы... мои задачи слишком далеки от ФП. Я пожалуй использовал только XML-XSLT
для извлечение некоторых данных из XML документов но это была задача тоже весьма
далека от ФП.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795034
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division X- ES5 весь построен на динамических структурах;

По поводу ЕС5 - я вообще невкурсе что это такое.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795356
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonDivision X- ES5 весь построен на динамических структурах;

По поводу ЕС5 - я вообще невкурсе что это такое.
ES5 - ECMAScript 5. Стандарт Javascript, реализованный во всех нормальных браузерах и IE, начиная с 9, а также в stand-alone платформах а-ля nodeJS.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795591
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division XНапример, по количеству затраченных на получение этого результата телодвижений.
вот чистота и позволяет затратить меньше телодвижений.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795668
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNDivision XНапример, по количеству затраченных на получение этого результата телодвижений.
вот чистота и позволяет затратить меньше телодвижений.
Да, но в ФП надо мозг напрячь немного. Для самого процесса разработки.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795682
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonZyK_BotaNпропущено...

вот чистота и позволяет затратить меньше телодвижений.
Да, но в ФП надо мозг напрячь немного. Для самого процесса разработки.

не, не напрячь. напрячь везде нужно.
нужно просто освоить.

и не за пару недель по мануалам освоить "еще один новый язык"(например хаскель), а таки пару лет учиться "функциональному программированию".
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795688
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По разному. Сколько мне нужно времени чтоб осилить твою авто-подпись с лямбдами - хер его знает?
Может 1 час. А может быть и за месяц неосилю. Смысл нужно схватывать быстро. На лету.

Это уж от человека зависит. Как задача Эйнштейна. Не всем дано её решить.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795694
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а потом - наоборот. меньше напрягать мозги придется.

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

рассуждать о корркетности таких програм(и соответственно переделывать и рефакторить) - в разы проще.

да и писать с нуля - не сложно.


Division XЯсно, событийно-ориентированности без потусторонних библиотек там нету.

ага, и нету функций для описания гуя )))


ну это же отлично, что в языке нет лишнего, а все что нужно - берем в либах.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795698
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПо разному. Сколько мне нужно времени чтоб осилить твою авто-подпись с лямбдами - хер его знает?
Может 1 час. А может быть и за месяц неосилю. Смысл нужно схватывать быстро. На лету.

Это уж от человека зависит. Как задача Эйнштейна. Не всем дано её решить.

а склоько мне нужно, что-бы осилить прогу на брейнфаке?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795703
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNmaytonПо разному. Сколько мне нужно времени чтоб осилить твою авто-подпись с лямбдами - хер его знает?
Может 1 час. А может быть и за месяц неосилю. Смысл нужно схватывать быстро. На лету.

Это уж от человека зависит. Как задача Эйнштейна. Не всем дано её решить.

а склоько мне нужно, что-бы осилить прогу на брейнфаке?а вообще, это неподвижная точка:
http://ru.wikipedia.org/wiki/%D0%9D%D0%B5%D0%BF%D0%BE%D0%B4%D0%B2%D0%B8%D0%B6%D0%BD%D0%B0%D1%8F_%D1%82%D0%BE%D1%87%D0%BA%D0%B0

используется для реализации рекурсии, в языках - где функции безымянные.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795716
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNmaytonПо разному. Сколько мне нужно времени чтоб осилить твою авто-подпись с лямбдами - хер его знает?
Может 1 час. А может быть и за месяц неосилю. Смысл нужно схватывать быстро. На лету.

Это уж от человека зависит. Как задача Эйнштейна. Не всем дано её решить.

а склоько мне нужно, что-бы осилить прогу на брейнфаке?вот кстати, как это выглядит на хаскеле:
Код: sql
1.
fix f = f (fix f)


неужели не читабельно?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795719
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
более того, в хаскеле эта функция - бесполезна(так как там у функций могут быть имена), а значит для умения писать на фп языках, тебе нафиг не нужно уметь читать мою автоподпись.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795801
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNmaytonПо разному. Сколько мне нужно времени чтоб осилить твою авто-подпись с лямбдами - хер его знает?
Может 1 час. А может быть и за месяц неосилю. Смысл нужно схватывать быстро. На лету.

Это уж от человека зависит. Как задача Эйнштейна. Не всем дано её решить.

а склоько мне нужно, что-бы осилить прогу на брейнфаке?
Брейнфак я могу записать в столбик и разложить в директивы
наподобие ассемблера. Тоесть это ну.. вобщем не то.
ФП - другое дело. Тут для решения "чуйка" нужна.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795820
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonZyK_BotaNпропущено...


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

ну а лямбды, можно переписать на хаскеле )) и все будет просто, я выше привел аналог на хаскеле:
авторfix f = f (fix f)
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795823
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonZyK_BotaNпропущено...

вот чистота и позволяет затратить меньше телодвижений.
Да, но в ФП надо мозг напрячь немного. Для самого процесса разработки.
я пишу на работе - на джаве.

и на каждом шагу - жалею что это не хаскель.

там где на хаскеле будет гибкое обобщенное решение в 5 строчек, на джаве решается либо копипастом на прау десятков строк.

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


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

но это не значит, что бизнес логику удобней на ооп-джаве писать, а не на хацкеле.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795884
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNно это не значит, что бизнес логику удобней на ооп-джаве писать, а не на хацкеле.
Я уже 3 года лелею мечту об использовании LIsp в Oracle-технологиях. Но всё как-то ... то
времени нет. То знаний.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795990
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNага, и нету функций для описания гуя )))
ну это же отлично, что в языке нет лишнего, а все что нужно - берем в либах.
Не, при таком подходе - лишнего нет только в брейнфаке, как уже тут правильно заметили.
Гуя в JS (как таковом) тоже нет да и вообще ввод-вывод зависит от конкретного рантайма (и потому выносится в какие-то внешние объекты), а вот событийно-ориентированность - неотъемлемая часть любого рантайма, будь то браузер или stand-alone движок. И да, неужели наличие некислого встроенного набора функций (точнее, не функций, а встроенных типов Array, Number, Object, Function, String и т.д. с соответствующими методами, которых много, но среди которых тоже, имхо, нет ничего лишнего) - это минус, а правильный подход - как в Си - "ни шагу без инклудов"?

ZyK_BotaNвот чистота и позволяет затратить меньше телодвижений.
Ну вот я и попросил продемонстрировать, насколько меньше телодвижений надо затратить для обнаружения повторяющихся элементов в векторе произвольной длины.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37796086
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division XZyK_BotaNага, и нету функций для описания гуя )))
ну это же отлично, что в языке нет лишнего, а все что нужно - берем в либах.
Не, при таком подходе - лишнего нет только в брейнфаке, как уже тут правильно заметили.
Гуя в JS (как таковом) тоже нет да и вообще ввод-вывод зависит от конкретного рантайма (и потому выносится в какие-то внешние объекты), а вот событийно-ориентированность - неотъемлемая часть любого рантайма, будь то браузер или stand-alone движок. И да, неужели наличие некислого встроенного набора функций (точнее, не функций, а встроенных типов Array, Number, Object, Function, String и т.д. с соответствующими методами, которых много, но среди которых тоже, имхо, нет ничего лишнего) - это минус, а правильный подход - как в Си - "ни шагу без инклудов"?

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

ты бы еще пример "2+2" попросил привести
приемущества фп - проявляются в сложных системах, а так вот - дословно переписанный код:

Код: sql
1.
2.
3.
4.
5.
6.
import qualified Data.Map 

douplicates list = repeated
    where items = foldl insert Data.Map.empty list
          insert its x = Data.Map.insertWith' (\ old new -> old + 1) x 0 its
          repeated = Data.Map.keys $ Data.Map.filter (> 0) items



а то что ассоциативный массив(как и событийное программирование) - находиться в библиотеке - дак это не минус языка )

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

по быстродействию не тестил, но уверен - что обгонит жс.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37796092
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division Xа вот событийно-ориентированность - неотъемлемая часть любого рантайма

вот что за бред. какое к рантайму оно отношение имеет?
это ты сам придумал?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37796156
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNвот что за бред. какое к рантайму оно отношение имеет?
это ты сам придумал?
Ничего не придумывал, всё на событиях.
Серверный рантайм , например
Клиентский рантайм


ZyK_BotaNа так вот - дословно переписанный код:

Код: sql
1.
2.
3.
4.
5.
6.
import qualified Data.Map 

douplicates list = repeated
    where items = foldl insert Data.Map.empty list
          insert its x = Data.Map.insertWith' (\ old new -> old + 1) x 0 its
          repeated = Data.Map.keys $ Data.Map.filter (> 0) items



Ну, я постил решение ещё короче...
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
function getRepeats(list) {
var repeated = [];
list.forEach(function(val,index,arr){
	if(index!=arr.lastIndexOf(val) && repeated.indexOf(val)==-1)
		repeated.push(val);
	});
return repeated;
}


...но оно оказалось фтристараз (c) медленнее вышеизложенного.

ZyK_BotaNприемущества фп - проявляются в сложных системах
топикстартерЗачем писать программы сложно и долго, когда можно просто и легко?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37796162
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division XZyK_BotaNвот что за бред. какое к рантайму оно отношение имеет?
это ты сам придумал?
Ничего не придумывал, всё на событиях.
Серверный рантайм , например
Клиентский рантайм


ZyK_BotaNа так вот - дословно переписанный код:

Код: sql
1.
2.
3.
4.
5.
6.
import qualified Data.Map 

douplicates list = repeated
    where items = foldl insert Data.Map.empty list
          insert its x = Data.Map.insertWith' (\ old new -> old + 1) x 0 its
          repeated = Data.Map.keys $ Data.Map.filter (> 0) items




Ну, я постил решение ещё короче...
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
function getRepeats(list) {
var repeated = [];
list.forEach(function(val,index,arr){
	if(index!=arr.lastIndexOf(val) && repeated.indexOf(val)==-1)
		repeated.push(val);
	});
return repeated;
}



...но оно оказалось фтристараз (c) медленнее вышеизложенного.

ZyK_BotaNприемущества фп - проявляются в сложных системах
топикстартерЗачем писать программы сложно и долго, когда можно просто и легко?да, я тупанул, и делал вставку каждый раз, а не когда ноль, могу переделать
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37796164
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division X,

ну и я надеюсь, что ты тестировал хаскель код, не в интерпретаторе, а скомпилировал, а потом запустил?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37796165
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division XZyK_BotaNвот что за бред. какое к рантайму оно отношение имеет?
это ты сам придумал?
Ничего не придумывал, всё на событиях.
Серверный рантайм , например
Клиентский рантайм


ZyK_BotaNа так вот - дословно переписанный код:

Код: sql
1.
2.
3.
4.
5.
6.
import qualified Data.Map 

douplicates list = repeated
    where items = foldl insert Data.Map.empty list
          insert its x = Data.Map.insertWith' (\ old new -> old + 1) x 0 its
          repeated = Data.Map.keys $ Data.Map.filter (> 0) items




Ну, я постил решение ещё короче...
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
function getRepeats(list) {
var repeated = [];
list.forEach(function(val,index,arr){
	if(index!=arr.lastIndexOf(val) && repeated.indexOf(val)==-1)
		repeated.push(val);
	});
return repeated;
}



...но оно оказалось фтристараз (c) медленнее вышеизложенного.

ZyK_BotaNприемущества фп - проявляются в сложных системах
топикстартерЗачем писать программы сложно и долго, когда можно просто и легко?
ну и я не про катраткость, выше я сказал за счет чего краткость:

"

а то что ассоциативный массив(как и событийное программирование) - находиться в библиотеке - дак это не минус языка )

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

"
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37796169
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNDivision X,

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

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
function getRepeats(list) {
var repeated = [];
list.forEach(function(val,index,arr){
	if(index!=arr.lastIndexOf(val) && repeated.indexOf(val)==-1)
		repeated.push(val);
	});
return repeated;
}



хоть и короче даже хаскелевского кода, но за счёт двух вызовов *indexOf работает фтристараз медленнее этого:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
function getRepeats(list)
{
	var repeated = [];
	var items = {};
	list.forEach(function(val){
		if(items[val])
		{
			repeated.push(val);
			items[val]=0;
		}
		else items[val]=1;
		});
	return repeated;	
}



Вывод - или шашечки, или ехать.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37796172
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division Xо за счёт двух вызовов *indexOf работает фтристараз медленнее этого:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
function getRepeats(list)
{
	var repeated = [];
	var items = {};
	list.forEach(function(val){
		if(items[val])
		{
			repeated.push(val);
			items[val]=0;
		}
		else items[val]=1;
		});
	return repeated;	
}

никакого вывода.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37796175
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division XZyK_BotaNDivision X,

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

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
function getRepeats(list) {
var repeated = [];
list.forEach(function(val,index,arr){
	if(index!=arr.lastIndexOf(val) && repeated.indexOf(val)==-1)
		repeated.push(val);
	});
return repeated;
}




хоть и короче даже хаскелевского кода, но за счёт двух вызовов *indexOf работает фтристараз медленнее этого:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
function getRepeats(list)
{
	var repeated = [];
	var items = {};
	list.forEach(function(val){
		if(items[val])
		{
			repeated.push(val);
			items[val]=0;
		}
		else items[val]=1;
		});
	return repeated;	
}




Вывод - или шашечки, или ехать.а работает прошлый медленнее, так как поиск о(н) а не лог2(н)

что в моем решении, что в товем при поиске в мапе = лог2(н)
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37796180
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, раз уже начали про быстродействие и краткость, вот примитивная задача(с решением) напиши ее на js? что-бы искала 100_000_000-й элемент:
авторСуществует знаменитая задача, впервые сформулированная Р. Хэммингом: породить в возраста-
ющем порядке и без повторений все положительные целые числа, у которых нет других простых
делителей, кроме 2, 3 и 5. Очевидное решение состоит в том, чтобы перебирать все натуральные
числа по очереди и проверять, есть ли у них простые множители помимо 2, 3 и 5. Однако эта
процедура весьма неэффективна, поскольку чем больше числа, тем меньшая их доля соответствует
условию. Применим альтернативный подход: назовем искомый поток чисел S и обратим внимание
на следующие факты:
• S начинается с 1.
• Элементы (scale-streams 2) также принадлежат S
• То же верно и для (scale-stream S 3) и (scale-stream S 5).
• Других элементов S нет.
Теперь требуется только соединить элементы из этих источников. Для этого мы определяем
процедуру merge, которая сливает два упорядоченных потока в один упорядоченный поток, убирая
при этом повторения

вот решение на хаскеле:
ZyK_BotaN
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
merge [] s2 = s2
merge s1 [] = s1
merge (s1:s1s) (s2:s2s) | s1 < s2   = s1 : (merge s1s      (s2:s2s))
						| s1 > s2   = s2 : (merge (s1:s1s) s2s)
						| otherwise = s1 : (merge s1s      s2s)

scaleStreams scale = map $ (*) scale

			
getNum n = s_3_56!!n
	where
		s_3_56 = 1          : (merge (scaleStreams 2 s_3_56)
					                 (merge (scaleStreams 3 s_3_56)
					                        (scaleStreams 5 s_3_56 )))



вот ответ:
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37796189
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
был былинный топик, где императивщики - разбили свои копья об эту задачу
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37796194
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaN,

Она решает какие-то практические вопросы? Тем не менее, завтра попробую. Сейчас уже не соображаю.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37796199
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division XZyK_BotaN,

Она решает какие-то практические вопросы? Тем не менее, завтра попробую. Сейчас уже не соображаю.
ну я твою же решал ))

з.ы. я смог на сишке, юзаю круто оптимизированную либу длинной арифмитики - сюелать более быстрое решение, но в разы - менее понятное(с ручным управлением памятью)

на языках со сборкой мусора - не видел решения быстрее и чем на хаскеле.

. жду решения .
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37796610
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNбыл былинный топик, где императивщики - разбили свои копья об эту задачу???
Элегантное решение придумать может быть сложно, но чтобы не решить вообще?
Каждое число последовательности характеризуется тройкой целых степеней - т.е. по сути мы обходим узлы трёхмерной сетки (причём подавляющее большинство узлов сравнивается быстро, а следующий узел заведомо находится в тонком слое этого пространства). Навскидку, даже без оптимизаций поиск n-ного числа (при log 2 (n)<MaxInt) требует O(n 2/3 ) памяти и O(n 5/3 ) времени - долго, но для n=10 8 не невозможно, да и соптимизировать по времени построение слоя для следующего шага наверняка можно.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37796616
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AbstractionZyK_BotaNбыл былинный топик, где императивщики - разбили свои копья об эту задачу???
Элегантное решение придумать может быть сложно, но чтобы не решить вообще?
Каждое число последовательности характеризуется тройкой целых степеней - т.е. по сути мы обходим узлы трёхмерной сетки (причём подавляющее большинство узлов сравнивается быстро, а следующий узел заведомо находится в тонком слое этого пространства). Навскидку, даже без оптимизаций поиск n-ного числа (при log 2 (n)<MaxInt) требует O(n 2/3 ) памяти и O(n 5/3 ) времени - долго, но для n=10 8 не невозможно, да и соптимизировать по времени построение слоя для следующего шага наверняка можно.
ZyK_BotaNз.ы. я смог на сишке, юзаю круто оптимизированную либу длинной арифмитики - сюелать более быстрое решение, но в разы - менее понятное(с ручным управлением памятью)
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37796628
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abstractionдаже без оптимизаций поиск n-ного числа (при log 2 (n)<MaxInt) требует O(n 2/3 ) памяти

можно про память поподробней?

и что за MaxInt имеется ввиду?


з.ы. а императивщики сломали копья, не потому, что на имп языках нельзя решить, а потому что были уверенны что решение на связных списках - не наш метод, и использовали массивы с прямым доступом.

вот и не смогли написать корректное решение для поиска 100_000_000-го элемента.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37796673
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNможно про память поподробней?

и что за MaxInt имеется ввиду?MaxInt - это о том, что не требуется использовать длинную арифметику для степеней.
То есть, у нас есть сетка степеней 2, 3, 5 (три степени свободы); есть текущее число. Число, следующее за текущим (a,b,c), принадлежит множеству {(x,y,z)|x*ln(2)+y*ln(3)+z*ln(5)>a*ln(2)+b*ln(3)+c*ln(5)>(x-1)*ln(2)+(y-1)*ln(3)+(z-1)*ln(5)}. Т.е. это плоский слой, содержащий t 2 элементов, где t - "характерный линейный размер" на текущем шаге; к этому моменту рассмотрено порядка t 3 элементов. Элементы слоя имеет смысл хранить в памяти, в упорядоченной структуре, поскольку для некоторых из них процедура точного сравнения требует длинной арифметики и не должна проделываться на каждом шаге.
Это так, идея решения, код не писал.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37796695
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AbstractionZyK_BotaNможно про память поподробней?

и что за MaxInt имеется ввиду?MaxInt - это о том, что не требуется использовать длинную арифметику для степеней.
То есть, у нас есть сетка степеней 2, 3, 5 (три степени свободы); есть текущее число. Число, следующее за текущим (a,b,c), принадлежит множеству {(x,y,z)|x*ln(2)+y*ln(3)+z*ln(5)>a*ln(2)+b*ln(3)+c*ln(5)>(x-1)*ln(2)+(y-1)*ln(3)+(z-1)*ln(5)}. Т.е. это плоский слой, содержащий t 2 элементов, где t - "характерный линейный размер" на текущем шаге; к этому моменту рассмотрено порядка t 3 элементов. Элементы слоя имеет смысл хранить в памяти, в упорядоченной структуре, поскольку для некоторых из них процедура точного сравнения требует длинной арифметики и не должна проделываться на каждом шаге.
Это так, идея решения, код не писал.

не понял к чему ты, хотел бы на решение посмотреть.

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

имхо - основная проблема решения которое я привел - постоянная аллокация памяти для каждого последующего элемента.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37796776
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division Xmaytonпропущено...

По поводу ЕС5 - я вообще невкурсе что это такое.
ES5 - ECMAScript 5. Стандарт Javascript, реализованный во всех нормальных браузерах и IE, начиная с 9, а также в stand-alone платформах а-ля nodeJS.

Так Javascript самый что ни на есть функциональный язык.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37796806
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division XZyK_BotaN,

Она решает какие-то практические вопросы? Тем не менее, завтра попробую. Сейчас уже не соображаю.
Думаю, что нет. Но это интересная мозго-ломка, котороая позволит развить
свой закисший мозк от практичной унылой серости.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37797048
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
Division X
Код: javascript
1.
2.
3.
			items[val]=0;
...
		else items[val]=1;





Я так понимаю, в JS нет класса Set даже с импортами :) ?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37797185
kDnZP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNз.ы. а императивщики сломали копья, не потому, что на имп языках нельзя решить, а потому что были уверенны что решение на связных списках - не наш метод, и использовали массивы с прямым доступом.

вот и не смогли написать корректное решение для поиска 100_000_000-го элемента.
Ну если по-совести, то алгоритм вам был предоставлен. А вот искать библиотеки работы с длинной арифметикой - вот тут да, желания никакого не было))). А с изначальной задачей, получением первых 1000 или 10000 элементов вообще проблем не возникло))). Это вы затем начали придумывать всякие сложности.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37797813
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kDnZPZyK_BotaNз.ы. а императивщики сломали копья, не потому, что на имп языках нельзя решить, а потому что были уверенны что решение на связных списках - не наш метод, и использовали массивы с прямым доступом.

вот и не смогли написать корректное решение для поиска 100_000_000-го элемента.
Ну если по-совести, то алгоритм вам был предоставлен. А вот искать библиотеки работы с длинной арифметикой - вот тут да, желания никакого не было))). А с изначальной задачей, получением первых 1000 или 10000 элементов вообще проблем не возникло))). Это вы затем начали придумывать всякие сложности. ну я для языка си - нашел библиотеку(с помощью которой сделал по скорости хаскель)


а так - не совсем верно про библиотеку, там писали заведомо более медленные решения, а на счет "алгоритм вам был предоставлен", это да, я и не говорил, что я его придумал, вот только императивщики доказывали что алгоритм плохой, и нужно решение на массивах строить.
...
Рейтинг: 0 / 0
324 сообщений из 324, показаны все 13 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Зачем писать программы сложно и долго, когда можно просто и легко?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]