Проблемы при конвертации Infix в Postfix с использованием стеков и очередей в Java

Синтаксис обновления записи входит в стандартную комплектацию с компилятором:

addManStk team = team {
    manager = (manager team) {
        diet = (diet (manager team)) {
             steaks = steaks (diet (manager team)) + 1
             }
        }
    }

Ужасно! Но есть лучший способ. В Hackage есть несколько пакетов, которые реализуют функциональные ссылки и линзы, что определенно то, что вы хотите сделать. Например, с пакетом fclabels вы должны поставить знаки подчеркивания перед всеми вашими именами записей, а затем записать

$(mkLabels ['BBTeam, 'Coach, 'Diet, 'BBPlayer])
addManStk = modify (+1) (steaks . diet . manager)

Отредактировано в 2017 году, чтобы добавить: в наши дни существует широкое консенсус по пакету линзы является особенно хорошей методикой реализации. Хотя это очень большой пакет, есть также очень хорошая документация и вводные материалы, доступные в разных местах в Интернете.

0
задан Ria 20 March 2019 в 04:25
поделиться