[personal profile] carrauntoohil
Читаю Functional Programming in Scala. Книга отличная. Ну это давно всем известно.
Возникает вопрос. Откуда у всей этой "красоты" ноги растут?
Например в главе "Purely functional state" главная идея: создание нового состояния из старого, вместо модификации старого. Идея хорошо понятна.
Но вот, как на основе этой идеи прийти к результатам последнего упражнения в этой главе?
"implement a finite state automaton that models a simple candy dispenser."

Я бы без посторонней помощи сам не додоумался. Да и что бы понять как это решено в книге мне пришлось хорошо поломать голову.
Возникает вопрос. Как до этого додумался автор книги? Возможно это применение каких то стандартных "шаблонов" из теории категорий или теории типов....
И как следствие главный вопрос. А где об этом можно почитать? Только статьи в различных журналах? Или есть хорошая книжечка, где "красота" разобрана подробно и с хорошими примерами?
Всем заранее большое спасибо за любую информацию.
Хорошего дня!

Date: 2023-10-13 02:50 pm (UTC)
vit_r: default (Default)
From: [personal profile] vit_r
Ясен пень, решения собираются много лет из разных источников, а потом пишут "не трудно догадаться, что".

Re: Обработка сигналов

Date: 2023-10-14 09:02 am (UTC)
vit_r: default (Default)
From: [personal profile] vit_r
Про функциональную обработку сигналов, думаю, проще всего посмотреть Эрланг. Но одновременно стоит посмотреть объектно-ориентированный подход Шлейер-Меллора (сейчас executable UML).

А про теорию категорий для программистов [dreamwidth.org profile] juan_gandhi хотел дописать книжку.

Date: 2023-10-13 03:04 pm (UTC)
From: [personal profile] zyxman
Книжные примеры как правило собираются академическим сообществом за годы работы кафедры. Иногда бывает, что какой-то человек сам один эти примеры собирает, ну как это Кнут делает, но это сейчас большая редкость.

Да, поэтому там смешная ситуация бывает, что человек который отучился по вот этим стандартным задачкам думает что может всё, а в реальной жизни шаг влево-вправо сделать не может.

Пример, я недавно изучал CFD, на лекционных задачках всё прекрасно работает. Захожу на форумы, в том числе на SO, а там валом примеров, люди попытались какой-то из реальной жизни пример рассчитать, а фигвам, не сходится решение.

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

Profile

carrauntoohil

January 2024

S M T W T F S
 123456
7891011 12 13
14151617181920
21222324252627
28293031   

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 11th, 2026 12:41 am
Powered by Dreamwidth Studios