Обновить

Make Perl Great Again! Поиски простоты в программировании

Уровень сложностиСложный
Время на прочтение56 мин
Охват и читатели6.1K
Всего голосов 7: ↑7 и ↓0+9
Комментарии5

Комментарии 5

А потом потребуется вводить строки и будет

"Введите первое число: ", \\&on_err_retry_number, \&get_number,
"Введите первый идентификатор: ", \\&on_err_retry_string, \&get_string,

как-то идея с каллбаком выглядит не доведенной до логического завершения.

Какая шикарная статья. Первую часть про проблематику нужно давать студентам ит направлений.

Статья шикарна вне зависимости от того, что дальше я напишу. Согласен, что все это надо на любой дисциплине связанной с программированием рассказывать. Чтобы научить людей правильно "думать" про это.

По поводу FDD скажу, что на мой вкус вы придумали конкретную реализацию в рамках DDD (domain-driven design). Фактически, для задачи деления вы придумали язык на котором эта задача эффективней всего решается. И не просто язык, еще показали, как выбрать инструментарий для реализации этого языка и даже показали саму реализацию. Отлично показали переходы между абстракциями. Как они выражаются на вложенном уровне. И все это просто и понятно.

Аплодирую стоя!

Интересный подход, и вы правы, что это переизобретение Forth. У меня в своей ОС похожая ситуация с обработкой прерываний: там тоже приходится выбирать между линейностью и безопасностью. А как вы решаете проблему, когда функция в потоке должна вернуть не одно значение, а несколько? В Forth для этого используют стек, а у вас — массив, и это может быть неочевидно.

ага, там видимо как-то неочевидно написано, надо будет в будущем исправить.
когда функция возвращает ссылку на массив, он считается подпотоком, который должен влиться в основной поток, в функцииflow он распаковывается в поток.
например есть изначальный поток (\&fun1), а fun1 делает `return [\&fun2, \&fun3];` тогда после исполнения fun1 в изначальном потоке будет `(\&fun2, \&fun3)`.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации