powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Зачем писать программы сложно и долго, когда можно просто и легко?
25 сообщений из 324, страница 7 из 13
Зачем писать программы сложно и долго, когда можно просто и легко?
    #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
25 сообщений из 324, страница 7 из 13
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Зачем писать программы сложно и долго, когда можно просто и легко?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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