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

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

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

50 ответов

8 просмотров

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

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

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

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

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
4
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
Так а кто может спарсить всех участников чата? Идишники
Magic
17
Есть вопрос: допустим есть железка с каким-то интерфейсом(допустим usb), но как по этому интерфейсу железкой управлять неизвестно, прог нету, а управлять очень хочется надо. К...
Mixail Frolov
15
а как ловят такое ghci> res <- getPos2 urlt 0 (alist !! 0) 200 ghci> res SearchAtom (Search "www.google.com" "/search?q=" "Haskell") "haskell.org" (SearchTS [(2024-05-06 07:...
Fedor
14
всем привет почти закончил курс После него можно писать свою операционку? Какие библиотеки надо использовать и куда дальше копать для изучения
Linus
13
Ребята, а из API геокодеров (по адресам в РФ) что сейчас актуального и есть ли среди актуального бесплатное/с нормаотным лимитом запросов? ситуация простая - на сайте периоди...
Dreamer_0x01 VeseloV
8
Карта сайта