Size: a a a

2020 May 14

JS

Jerzy Syrowiecki in fprog_spb
neFormal
Типы не помогают в простых случаях a->a->a
(a->a->a), наверно, двумя способами можно реализовать, не помню точно
источник

YS

Yan Shkurinskiy in fprog_spb
neFormal
Математику не пишут?
А какие нужны типы в математике?
источник

YS

Yan Shkurinskiy in fprog_spb
Что-то более конкретное чем числа?
источник

JS

Jerzy Syrowiecki in fprog_spb
neFormal
Что внутри делается?
внутри (a -> a) делается id
источник

JS

Jerzy Syrowiecki in fprog_spb
neFormal
Математику не пишут?
пишут
источник

YS

Yan Shkurinskiy in fprog_spb
Бизнес-функции так не пишут всё же. Там бизнес типы, а не a -> b -> b и прочее
источник

DS

Denis Shevchenko in fprog_spb
Даже в таких случаях она помогает. Потому что если я вижу

(++) :: [a] -> [a] -> [a]

я понимаю, что:

1. На входе - два списка с элементами одного и того же типа.
2. На выходе - один список с элементами того же типа.
источник

YS

Yan Shkurinskiy in fprog_spb
Если так пишете - сами себе злой буратино
источник

YS

Yan Shkurinskiy in fprog_spb
Не вините типы
источник

DS

Denis Shevchenko in fprog_spb
Да, бизнес-логика описывается вещами посложнее чем a->b->c
источник

DS

Denis Shevchenko in fprog_spb
😊
источник

n

neFormal in fprog_spb
Jerzy Syrowiecki
внутри (a -> a) делается id
Или log?
источник

YS

Yan Shkurinskiy in fprog_spb
Denis Shevchenko
Даже в таких случаях она помогает. Потому что если я вижу

(++) :: [a] -> [a] -> [a]

я понимаю, что:

1. На входе - два списка с элементами одного и того же типа.
2. На выходе - один список с элементами того же типа.
Ну да, супер-общие функции имеют супер-общие сигнатуры
источник

YS

Yan Shkurinskiy in fprog_spb
neFormal
Или log?
Нельзя
источник

YS

Yan Shkurinskiy in fprog_spb
Только id
источник

AT

Anton Trunov in fprog_spb
Denis Shevchenko
Даже в таких случаях она помогает. Потому что если я вижу

(++) :: [a] -> [a] -> [a]

я понимаю, что:

1. На входе - два списка с элементами одного и того же типа.
2. На выходе - один список с элементами того же типа.
и кроме того, выходной список состоит из элементов входных списокв (только про кратность и порядок не известно ничего)
источник

JS

Jerzy Syrowiecki in fprog_spb
Denis Shevchenko
Да, бизнес-логика описывается вещами посложнее чем a->b->c
нет, обычно попроще. ConcreteInput -> ConcreteOutput, никакого полиморфизма
источник

JS

Jerzy Syrowiecki in fprog_spb
neFormal
Или log?
точно нет
источник

n

neFormal in fprog_spb
Denis Shevchenko
Даже в таких случаях она помогает. Потому что если я вижу

(++) :: [a] -> [a] -> [a]

я понимаю, что:

1. На входе - два списка с элементами одного и того же типа.
2. На выходе - один список с элементами того же типа.
А без костылей ты, конечно, не поймёшь, что сложение даст те же типы.
источник

n

neFormal in fprog_spb
Yan Shkurinskiy
Нельзя
Ты скозал?
источник