ronniko
> хочется без парсинга делать
Кто мешает захотеть что-нибудь другое? Лучше займись чем-нибудь полезным вместо придумывания проблем на ровном месте. Люди изобрели компьютер чтобы он решал их проблемы, а не для того, чтобы решать проблемы за него.
Dmitry_Milk
> Роннико за последние недели похоже единственный во флейме, кто спрашивает про программирование, а не про квантово-механический оккультизм, содержанок, политоту, тачки и прочую херомантию.
И даже с такими вопросами он всё равно умудряется вписываться в общий деградантский тренд. Всё потому что как и во всех остальных случаях ему на самом деле не нужны чужие ответы, ему надо самому покрасоваться и выставить свой бред на всеобщее обозрение. Все, кому были нужны ответы, давно научились пользоваться гуглом и/или LLM.
=A=L=X=
> Вообще прикольно как ФЯ сперва очень рекламирует себя широкими возможностями для параллелизма
Реклама параллелизма там возникла из-за того, что данные, с которыми работают функциональные языки, являются иммутабельными, поэтому с ними легко и безопасно работать параллельно так как нет никаких конфликтов и если надо что-то поменять, то вместо изменения уже имеющегося просто создаётся новый объект. Причём параллелизм даже не является основной фичей, а возникает как бы между делом, а упор идёт на безопасность, но никак не на производительность. И даже чтобы это было удобно нужно приложить усилия потому что работа с иммутабельными данными должна проводиться по-другому, особенно если хочется чтобы это было ещё и не адски медленно.
Скачка производительности вообще можно добиться эсли параллелить на уровне потоков работу с большими данными. На мелочи таким образом ничего не выиграть, для этого существуют другие механизмы типа SIMD, но для этого структура данных должна быть не случайной, а заранее известной.
Zefick
> Реклама параллелизма там возникла из-за того, что данные, с которыми работают функциональные языки, являются иммутабельными
Угу, и поэтому функция input_key() является невозможной, т.к. функция без аргументов должна возвращать константу - разные выходы для одинаковых входов подразумевают, что на том конце что-то мутабельное, что-то с мутабельным внутренним состоянием.
Поэтому input_key надо "научить" различать состояния и для этого в неё надо передавать каждый раз разный аргумент. Универсальный подход - что передаём состояние мира до, а на выходе получаем состояние мира после ввода new_world = input_key(old_word). Но... это прошивает код последовательной зависимостью и как раз разрывает возможность параллелизма - пока input_key не вернула новый мир нечего скармливать в другие функции с "внешней зависимостью". Итог: программа явным образом прошивается последовательностью.
=A=L=X=
> поэтому функция input_key() является невозможной
а в чём разница с чтением файлов? вроде как в фя нет проблем прочитать данные из файла
skalogryz
> вроде как в фя нет проблем прочитать данные из файла
В хаскеле работа с файлами, как и работа с пользователем, осуществлятся через монаду IO (которая по сути представляет недоставаемое состояние мира).
=A=L=X=
> Итог: программа явным образом прошивается последовательностью.
Научись уже отличать свои фантазии от реальности и не пиши бред. Если нужно делать много параллельных вычислений, то никто никакой инпут пихать туда не будет. А если предусматривается возможность ввода, то программа имеет узкое горлышко в виде пользователя, который может выполнять только одну операцию за раз и уже не важно на чём она там написана.
skalogryz
> вроде как в фя нет проблем прочитать данные из файла
ФЯ бывают ФЯ рознь и в лиспе, например, есть и мутабельное говно. Но вот если хочется функциональной чистоты, то надо выкручиваться. Хаскель упомянутый - лидер по сахару как прятать такие сложности за строками кода и называть этот комплекс монадами.
Zefick
Ты опять с какими то своими голосами в голове споришь.
А компьютерные программы ваще решают что-либо в общем виде? Ронико опять подводит не знание школьной программы?
=A=L=X=
> Итог: программа явным образом прошивается последовательностью.
Почему не отдать на откуп работы программы? Если событие приходило, то считываем, если не было, то наплевать на него. И ни чем это не помешает.
извиняюсь, не перечитывал сообщения ранее.