Apr. 2nd, 2011

juan_gandhi: (Default)
Представьте, ваш код вдруг, оказывается, должен зависеть от конфигурации. Значит, он теперь является такой функцией:

Вход -> (Конфигурация -> Выход)

Или, переставляя параметры,

Конфигурация -> (Вход -> Выход)

Если уже есть функция F: Вход -> Выход, не зависящая от конфигурации, то из неё можно сделать Конфигурация -> (Вход -> Выход), просто это будет постоянная (по конфигурации) функция.

Что делать, если выход одной функции подаётся на вход другой?


F: Конфигурация -> (A -> B), G: Конфигурация -> (B -> C)


Как их скомпоновать в H: Конфигурация -> (A -> C)?

В принципе, у нас получается функция из декартова произведения конфигураций:

H': (Конфигурация × Конфигурация) -> (A -> C)


(Детали)
F: Конфигурация -> (A -> B), G: Конфигурация -> (B -> C)

даёт
F × G: (Конфигурация × Конфигурация) -> ((A -> B) × (B -> C)) -> (A -> C) -- последний шаг представляет собой композицию функций

(/Детали)


Ну, из этого легко сделать формат

H: Конфигурация -> (A -> C)


достаточно взять сначала диагональ,

Конфигурация -> (Конфигурация × Конфигурация)


А потом уже применить H'.

Шо за диагональ? Это которая x сопоставляет пару (x, x).

Вопросы?

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

September 2025

S M T W T F S
 1 23456
78910111213
14151617181920
21222324252627
282930    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 5th, 2025 09:57 pm
Powered by Dreamwidth Studios