Именования в функциональных языках
От: achmed Удмуртия https://www.linkedin.com/in/nail-achmedzhanov-9907188/
Дата: 15.06.09 13:49
Оценка:
Добрый день!

Почему программируя на функциональных языках люди дают имена переменным из одной буквы?

Символ " ' " часто используют, это производное значение?


Например код монады Stateотсюда
Автор(ы): Евгений Кирпичев aka jkff
Дата: 28.12.2008
Статья рассказывает о том, что такое монады Haskell, приводятся примеры, иллюстрирующие эту концепцию.

instance Monad (State s) where
    return a = State dontChangeStateAndReturnA
        where dontChangeStateAndReturnA s = (a, s)

    -- r1 :: State s a = State (s -> (a, s)) - это вычисление с состоянием
    -- p :: a -> State s b = a -> State (s -> (b, s)) - это вычисление 
    -- с состоянием, зависящее от параметра, вычисляемого r1.
    (State r1) >>= p = State passState
        where passState s = (res2, finalState)
                      -- Запускаем первое вычисление, получаем параметр
                where (res1, intermediateState) = r1 s          
                      -- Вычисляем по параметру второе вычисление
                      (State r2) = p res1                       
                      -- Запускаем второе вычисление
                      (res2, finalState) = r2 intermediateState


мне понятнее чем отсюда
Автор(ы): Пол Хьюдак, Джон Петерсон, Джозеф Фасел
Дата: 24.04.2007
Данный материал – продолжение начатого в прошлом номере введения в программирование на Haskell для имеющих опыт программирования, по крайней мере, на одном языке, желательно функциональном (даже если это «почти функциональный» язык, такой как ML или Scheme).


data SM a = SM (S -> (a,S)) -- Монадический тип

instance Monad SM where
   -- определяет распространение состояния
   SM c1 >>= fc2        = SM (\s0 -> let (r,s1) = c1 s0
                                         SM c2 = fc2 r in
                                        c2 s1)
   return k             = SM (\s -> (k,s))



Что знают другие чего не знаю я?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.