Сложная композиция функторов
Многих программистов сбивает с толку термин монада. Но если программист знаком с функторами, то имеет смысл спросить его: насколько он далеко ушел в построении сложных функторов. Наверняка он будет удивлен, что из простых функторов можно, с помощью композиции, строить настолько сложные функторы, что они будут обладать свойством самостоятельного языка, имеющего уникальную семантику.Если вы среди таких людей и слабо в это верите, то ниже свежий пример, написанный на питоне:
Эта программа будет вести как и написано:
"action1" будет печаться через каждую секунду, а "action2" каждые - 3 секунды.
В самом языке Питон нет языковой конструкции, выражающей параллельность. Здесь же такая конструкция есть, и она реализована без использования тредов!
action = Parallel([
RepeatSequence (
Print("action1"),
Delay(1.0) ),
RepeatSequence (
Print("action2"),
Delay(3.0) )
])
run(action)
Эта программа будет вести как и написано:
"action1" будет печаться через каждую секунду, а "action2" каждые - 3 секунды.
В самом языке Питон нет языковой конструкции, выражающей параллельность. Здесь же такая конструкция есть, и она реализована без использования тредов!