Size: a a a

2020 May 15

p

polunin.ai in rust_offtopic
polunin.ai
In computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that each return a value, rather than a sequence of imperative statements which change the state of the program or world.
It is a declarative programming paradigm in which function definitions are trees of expressions that each return a value, rather than a sequence of imperative statements which change the state of the program or world.
источник

ГС

Георгий Седометов... in rust_offtopic
red75prime
И для другой монады это будет уже не рецепт заваривания чая.
будет, просто в одном случае на выходе получится чайник с чаем, а в другом - рецепт на бумажке, например
источник

DS

Doge Shibu in rust_offtopic
polunin.ai
In computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that each return a value, rather than a sequence of imperative statements which change the state of the program or world.
источник

NL

Nick Linker in rust_offtopic
red75prime
И для другой монады это будет уже не рецепт заваривания чая.
Ну ясно понятно, у функций вскипятитьВоду должен быть подходящий тип. Но он может быть достаточно общий, чтобы его можно было использовать в других монадах.
источник

p

polunin.ai in rust_offtopic
Doge Shibu
Опять мифы от тех, кто на ФП языках не писал
да плевать какие вы там придумали определения, есть общепринятые определения
источник

p

polunin.ai in rust_offtopic
источник

DS

Doge Shibu in rust_offtopic
polunin.ai
да плевать какие вы там придумали определения, есть общепринятые определения
Кем общепринятые? В ФП сообществе - они не общепринятые, потому что там всем понятно, что декларативный код != ФП код
источник

r

red75prime in rust_offtopic
Георгий Седометов
будет, просто в одном случае на выходе получится чайник с чаем, а в другом - рецепт на бумажке, например
Или список всех возможных чаёв. Но мне нужно было заварить чай, а для этого нужен именно IO.
источник

DS

Doge Shibu in rust_offtopic
Т.е. возьми любое IO. ФП код - ФП код. Декларативный - нет
источник

p

polunin.ai in rust_offtopic
Doge Shibu
Т.е. возьми любое IO. ФП код - ФП код. Декларативный - нет
любой ФП декларативный
источник

p

polunin.ai in rust_offtopic
но не любой декларативный - ФП
источник

DS

Doge Shibu in rust_offtopic
polunin.ai
любой ФП декларативный
runST (do
   ref <- newSTRef "hello"
   x   <- readSTRef ref
   writeSTRef ref (x ++ "world")
   readSTRef ref )

Очень декларативно, очень ФП
источник

DS

Doge Shibu in rust_offtopic
sumST :: Num a => [a] -> a
sumST xs = runST $ do
   n <- newSTRef 0
   for_ xs $ \x ->
       modifySTRef n (+x)
   readSTRef n
источник

DS

Doge Shibu in rust_offtopic
И т.д. и т.п.
источник

DS

Doge Shibu in rust_offtopic
Это ФП код
источник

DS

Doge Shibu in rust_offtopic
Но нифига не декларативный
источник

p

polunin.ai in rust_offtopic
Doge Shibu
runST (do
   ref <- newSTRef "hello"
   x   <- readSTRef ref
   writeSTRef ref (x ++ "world")
   readSTRef ref )

Очень декларативно, очень ФП
ну этот код императивный, значит не ФП)
источник

p

polunin.ai in rust_offtopic
Doge Shibu
Это ФП код
нет
источник

DS

Doge Shibu in rust_offtopic
polunin.ai
ну этот код императивный, значит не ФП)
Любой код без unsafePerformIO на хаскеле - это чистый код
источник

DS

Doge Shibu in rust_offtopic
А значит - ФП
источник