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

August 2025

S M T W T F S
      12
3456789
10 11 12 13141516
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 16th, 2025 02:44 am
Powered by Dreamwidth Studios