А вот подскажите, пожалуйста, что можно хорошего почитать про проектирование в ФП. Про ОО-архитектуру написаны тонны макулатуры, а что есть для ФП? Есть много про языки, но хочется на уровень выше — как правильно спроектировать программу размером побольше шашек. Желательно с применением строгой типизации для обеспечения безбажности.
Здравствуйте, D. Mon, Вы писали:
DM>А вот подскажите, пожалуйста, что можно хорошего почитать про проектирование в ФП. Про ОО-архитектуру написаны тонны макулатуры, а что есть для ФП? Есть много про языки, но хочется на уровень выше — как правильно спроектировать программу размером побольше шашек. Желательно с применением строгой типизации для обеспечения безбажности.
Здравствуйте, Курилка, Вы писали:
К>Здравствуйте, thesz, Вы писали:
T>>FAD: A Functional Analysis and Design Methodology
К>Здорово, только ps там какой-то "странный" и okular и evince не могут корректно открыть. Пришлось конвертить через ps2pdf
Прошу прощения. Я давно его читал, причём, с помощью ghostscript.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Здравствуйте, D. Mon, Вы писали:
DM>А вот подскажите, пожалуйста, что можно хорошего почитать про проектирование в ФП. Про ОО-архитектуру написаны тонны макулатуры, а что есть для ФП? Есть много про языки, но хочется на уровень выше — как правильно спроектировать программу размером побольше шашек. Желательно с применением строгой типизации для обеспечения безбажности.
Именно по проектированию, в общем нет, но например в "Хендерсон П. — Функциональное программирование" в том числе и проектирование и типовые приемы функциональщины по моему описаны.
Здравствуйте, D. Mon, Вы писали:
DM>А вот подскажите, пожалуйста, что можно хорошего почитать про проектирование в ФП. Про ОО-архитектуру написаны тонны макулатуры, а что есть для ФП? Есть много про языки, но хочется на уровень выше — как правильно спроектировать программу размером побольше шашек. Желательно с применением строгой типизации для обеспечения безбажности.
I’ll just start with the big idea: make the types and objects in your program mean something. Usually there is some rhyme and reason for creating classes the way we do—eg. list is not just a convenient grouping of procedures, it conceptually represents a list. Semantic Design takes that to the extreme. We first decide exactly what a list is, and then we make sure that every operation we expose is consistent with that idea.
To give additional guidance to the what, without impinging on the how, this paper proposes a principle of type class morphisms (TCMs), which further refines the compositional style of denotational semantics. The TCM idea is simply that the instance’s meaning is the meaning’s instance. This principle determines the meaning of each type class instance, and hence defines correctness of implementation. It also serves to transfer laws about a type’s semantic model, such as the class laws, to hold for the type itself. In some cases, it also provides a systematic guide to implementation, and in some cases, valuable design feedback.
Утянул из Haskell-cafe в ответе насчёт "как проектировать DSL".
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)