169 похожих чатов

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

нужна строгая, но когда именно ленивая рулит?

50 ответов

31 просмотр

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

Oleksij-Kyslytsja Автор вопроса
Cheese Syrowiecki
для написания коданных. я пока не понял, что это о...

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

Oleksij Kyslytsja
А в чем разница в случае кода или данных если в ФП...

константы по определению есть. данные не являются функциями однозначно. а вот функции являются значениями в ФП, но не являются простыми данными

Oleksij-Kyslytsja Автор вопроса
Cheese Syrowiecki
константы по определению есть. данные не являются ...

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

Oleksij Kyslytsja
Функциональное программирование предполагает обход...

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

Oleksij Kyslytsja
А в чем разница в случае кода или данных если в ФП...

Структуры ленивые, но они всё-таки находятся в памяти в определённом месте, и не всегда в виде задумок

Oleksij-Kyslytsja Автор вопроса
Cheese Syrowiecki
категорически не согласен с вашим видением. данные...

Это не мое видение, это точка зрения со стороны ФП. Другое дело, что ЯП не являются стопроцентно чистыми ФП и приходится идти на копромис, но рассматривать константы не как функцию имет смысл разве с точки зрения оптимизации. Но на этапе проектирования имеет смысл смотреть как раз от ФП

Oleksij Kyslytsja
Это не мое видение, это точка зрения со стороны ФП...

почему вы думаете, что это точка зрения со стороны ФП? я уверен в обратном, основываясь на собственном опыте

Oleksij-Kyslytsja Автор вопроса
jit.js
Структуры ленивые, но они всё-таки находятся в пам...

Вопрос, когда они появляются в памяти?

Oleksij Kyslytsja
Это не мое видение, это точка зрения со стороны ФП...

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

Oleksij Kyslytsja
Это не мое видение, это точка зрения со стороны ФП...

1. первый раз о таком слышу, никто кроме вас такого не говорит 2. не вижу в этом пользы

Oleksij-Kyslytsja Автор вопроса
Cheese Syrowiecki
почему вы думаете, что это точка зрения со стороны...

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

Oleksij Kyslytsja
Ок, я в данном случае могу пукиведию процитировать...

слово "соотвественно" предполагает какую-то логическую связку, а я не вижу её

Oleksij Kyslytsja
Ок, я в данном случае могу пукиведию процитировать...

ВП не АИ, я вам проще скажу: ФП — это когда функции являются значениями

Oleksij Kyslytsja
Ок, я в данном случае могу пукиведию процитировать...

а точнее, ваша логическая ошибка в том, что из наличия функций не следует отсутствие нефункций

Oleksij Kyslytsja
Ок, я в данном случае могу пукиведию процитировать...

чтобы понять это определение, почитайте, что такое лямбда-исчисление и как оно прикладывается к реальности

Cheese Syrowiecki
чтобы понять это определение, почитайте, что такое...

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

Lierdakil
Вообще, чистые функции ~ данные. В этом есть смысл...

Но к практике ФП это всё имеет очень опосредованное отношение

Lierdakil
Вообще, чистые функции ~ данные. В этом есть смысл...

а вот это чистая ошибка: чистые функции совершенно точно не данные

Oleksij Kyslytsja
Ок, я в данном случае могу пукиведию процитировать...

а что в математике константы не константы тогда? функции тоже?

Oleksij-Kyslytsja Автор вопроса
Cheese Syrowiecki
а точнее, ваша логическая ошибка в том, что из нал...

Я даже больше скажу, все что у вас есть это имя, а что за именем стоит транслятор узнает вычисляя это имя. И с точки зрения ФП это функция.

Lierdakil
~ символизирует изоморфизм

ну и что? есть изофорфизм между ФП и ИП такой же

Cheese Syrowiecki
там плохой изоморфизм

вполне хороший. для большинства практических функций даже бесконечного объёма памяти не нужно

Oleksij Kyslytsja
Я даже больше скажу, все что у вас есть это имя, а...

транслятор может не стоять. И с точки зрения ФП это функция. — нет, конечно

Oleksij-Kyslytsja Автор вопроса
Oleksij Kyslytsja
Можете привести цитату подтверждающую?

что именно? это вы выдвигаете странный тезис, вы и приводите доказательства

Oleksij-Kyslytsja Автор вопроса
Cheese Syrowiecki
что именно? это вы выдвигаете странный тезис, вы и...

Это не странный тезис. Я не гуру, потому процитировал википедию, считаете что имеете более доверенный источни, то приведите

Oleksij Kyslytsja
Это не странный тезис. Я не гуру, потому процитиро...

вы процитировали правильно, но выводы сделали нелогичные

Oleksij-Kyslytsja Автор вопроса
Cheese Syrowiecki
вы процитировали правильно, но выводы сделали нело...

А в чем разница между функцией и данными тогда?

Oleksij-Kyslytsja Автор вопроса
Cheese Syrowiecki
данные можно вводить и выводить

функцию тоже можно вводить и выводить

Cheese Syrowiecki
покажите, как

да кек, интерпретаторы на этом работают

Oleksij-Kyslytsja Автор вопроса
Cheese Syrowiecki
покажите, как

f z = \x y -> x + y + z Вроде как это даст функцию выводящую другую функцию а пример ввода - map

кана
да кек, интерпретаторы на этом работают

нет, не на этом. интерпретатор выводит обычные данные. а вводит код — представленные данными алгоритмы. код интерпретируется в функцию или в ошибку

Oleksij Kyslytsja
f z = \x y -> x + y + z Вроде как это даст функцию...

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

Oleksij-Kyslytsja Автор вопроса
Cheese Syrowiecki
нет, не на этом. интерпретатор выводит обычные дан...

транслятор выводит именно что код, компайлер например, это никак не данные а именно что функция

Oleksij-Kyslytsja Автор вопроса
Cheese Syrowiecki
это не вывод, а вычисление. вам нужен будет ещё те...

вычисление будет когда вы используете возвращенную функцию

Oleksij-Kyslytsja Автор вопроса
Cheese Syrowiecki
это не вывод, а вычисление. вам нужен будет ещё те...

а вот насчет терминала это ж в хаскеле нечистая функция нарушение ФП и потому в монаду завернуто для контроля

Oleksij Kyslytsja
а вот насчет терминала это ж в хаскеле нечистая фу...

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

Oleksij Kyslytsja
Почему?

по определению функции и по тезису Чёрча—Тьюринга

Oleksij-Kyslytsja Автор вопроса
Cheese Syrowiecki
по определению функции и по тезису Чёрча—Тьюринга

Какое определение функции имеете ввиду и какой именно тезис?

Oleksij Kyslytsja
Какое определение функции имеете ввиду и какой име...

https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%B7%D0%B8%D1%81_%D0%A7%D1%91%D1%80%D1%87%D0%B0_%E2%80%94_%D0%A2%D1%8C%D1%8E%D1%80%D0%B8%D0%BD%D0%B3%D0%B0

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта