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

Я читаю книжкуHaskell Programming и не совсем понял вот это

предложение: "Applicative, we saw, is a monoidal functor, and gives us a way to
transform any values contained within a structure using a function
that is also embedded in structure. This means that each application
produces the effect of adding structure which is then applicatively
combined."

Мне кажется что добавления структуры (adding structure) не происходит, а структура остается той же, но добавлются новые значения. Чтобы структура добавилась мы должны по меньшей мере испльзывать либо новый тип либо новы конструктор, например A1 x <*> А2 y = A3 z. Если А1, А2, А3 имеют один и тот же тип (или конструктор) то никакого наращивания структуры не проишодит. Как минимум должно быть А3 не равно А1 и А2 на уровне типов (кнострукторов). Теоритически это возможно цтобы результатом действия <*> был новый тип ( через type family), но это не типично ( не правда ли, посколько требует определениия аппликатива н семействе типов?)/ поскажите что автор имелл ввиду под трмином приращение структуры (adding structure). Applicative почти что моноид, то из самого определения мноида структура не добавляется. Если мы "сложим два элемента моноида, то получим третий элемент, структурно не отличающийся от "слагаемых" Да эффект наращивается но структура (контэинер) остается неизменной

8 ответов

22 просмотра

может быть что-то подобное? [(2*),(2+)] <*> [1,2,3] > [2,4,6,3,4,5]

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

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

TOV_MULTIMASSO
Лично я просто использую аппликатив, когда мне не ...

а не наоборот? когда зависят друг от друга — монада, когда не зависят, аппликатив

Nick-By Автор вопроса
TOV_MULTIMASSO
Лично я просто использую аппликатив, когда мне не ...

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

Nick By
Не могли бы вы привести пример, когда вычисления з...

лучше сказать мы знаем зависимости статически

Nick By
Не могли бы вы привести пример, когда вычисления з...

fmap :: (a -> b) -> f a -> f b ^ можем только модифицировать "результат" (<*>) :: f (a -> b) -> f a -> f b ^ функция , "возвращаемая" из f (a -> b), не может знать про эффекты f a, т.к., она чистая (>>=) :: f a -> (a -> f b) -> f b ^ a -> f b теперь может зависеть от эффектов, так как из неё возвращается f b

Nick By
Не могли бы вы привести пример, когда вычисления з...

«зависят друг от друга в начале, но не зависят по результатам» что это вообще значит? можно пример?

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

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

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Добрый день. Хочу сделать отрисовку по команде на панели. Почему-то рисуется только при втором вызове. С чем может быть связано, не подскажете? procedure TForm1.FormDblClick(...
Kirill Filippenok
20
Всем доброго дня! Подскажите может кто использовал связку Pagebuilder + Clientsetting. Сами параметры с типом pagebuilder в модуле Clientsetting работают нормально, можно такж...
Александр Добриков
12
А почему в си некоторые вещи работают с двойными кавычками некоторые с одинарными? Нельзя было все сделать с одними или чтоб работало с разными? например чтоб выводить строки ...
.
15
Всем привет! Нужен совет от опытных. Переношу свой проект с Делфи 10.2 Токио на Лазарус 3.2 установленный через инсталлятор fpcupdeluxe-x86_64-win64. При импортировании проект...
Дмитрий Завгородний
7
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Всем привет! procedure TForm1.FormCreate(Sender: TObject); type TStartEnd = record S: Byte; E: Byte; end; var a, b: TStartEnd; begin {1} a.S := 1; {2} a.E := 2; ...
Руслан Михайлович
10
Всем привет!) я тут новенький и пытаюсь освоить evolution методом тыка. У меня при переходе между папками файлов выскакивают вот такие уведомления Можете подсказать как их от...
Диман Samoed
10
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Карта сайта