{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,11,28]],"date-time":"2025-11-28T20:23:52Z","timestamp":1764361432689,"version":"3.46.0"},"publisher-location":"Cham","reference-count":44,"publisher":"Springer Nature Switzerland","isbn-type":[{"type":"print","value":"9783031997501"},{"type":"electronic","value":"9783031997518"}],"license":[{"start":{"date-parts":[[2025,10,1]],"date-time":"2025-10-01T00:00:00Z","timestamp":1759276800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"},{"start":{"date-parts":[[2025,10,1]],"date-time":"2025-10-01T00:00:00Z","timestamp":1759276800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2026]]},"DOI":"10.1007\/978-3-031-99751-8_1","type":"book-chapter","created":{"date-parts":[[2025,10,1]],"date-time":"2025-10-01T01:17:05Z","timestamp":1759281425000},"page":"3-15","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["Things We Never Told Anyone About Functional Programming"],"prefix":"10.1007","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-5280-9632","authenticated-orcid":false,"given":"Michael","family":"Sperber","sequence":"first","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2025,10,1]]},"reference":[{"key":"1_CR1","unstructured":"Abraham, I.: F# in Action. Manning (2024)"},{"key":"1_CR2","unstructured":"ArchUnit: Unit test your Java architecture. https:\/\/www.archunit.org\/"},{"key":"1_CR3","unstructured":"Barnett, T.O., Constantine, L.L.: Modular Programming: Proceedings of a National Symposium. Information & systems Institute (1968)"},{"key":"1_CR4","unstructured":"Bloch, J.: Effective Java. Pearson, 3rd edn. (2017)"},{"key":"1_CR5","unstructured":"Brown, S.: Software Architecture for Developers. Leanpub (2022)"},{"key":"1_CR6","doi-asserted-by":"crossref","unstructured":"Claessen, K., Hughes, J.: QuickCheck: a lightweight tool for random testing of Haskell programs. In: Proceedings of the Fifth ACM SIGPLAN International Conference on Functional Programming, pp. 268\u2013279. ICFP \u201900, Association for Computing Machinery, New York, NY, USA (2000)","DOI":"10.1145\/351240.351266"},{"key":"1_CR7","unstructured":"Cockburn, A., de\u00a0Paz, J.M.G.: Hexagonal Architecture Explained. Humans and Technology Press (2024)"},{"key":"1_CR8","unstructured":"Conway, M.E.: How do committees invent? Datamation (1968). https:\/\/www.melconway.com\/research\/committees.html"},{"key":"1_CR9","unstructured":"Elliott, C.: Denotational design with type class morphisms (extended version). Tech. Rep. 2009-01, LambdaPix (2009). http:\/\/conal.net\/papers\/type-class-morphisms"},{"key":"1_CR10","doi-asserted-by":"crossref","unstructured":"Elliott, C., Hudak, P.: Functional reactive animation. In: Proceedings of the Third ACM SIGPLAN International Conference on Functional Programming. Association for Computing Machinery, New York, NY, USA (1997)","DOI":"10.1145\/258948.258973"},{"key":"1_CR11","unstructured":"Evans, E.: Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley (2003)"},{"key":"1_CR12","unstructured":"Felleisen, M., Findler, R.B., Flatt, M., Krishnamurthi, S.: How to Design Programs. MIT Press, second edn. (2018)"},{"key":"1_CR13","unstructured":"Forsgren, N., Humble, J., Kim, G.: Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations. IT Revolution Press (2018)"},{"key":"1_CR14","unstructured":"Fowler, M.: Analysis Patterns: Reusable Object Models. Addison-Wesley Professional (1996)"},{"key":"1_CR15","unstructured":"Fowler, M.: Two pizza team. https:\/\/martinfowler.com\/bliki\/TwoPizzaTeam.html (2023)"},{"key":"1_CR16","unstructured":"Gabasova, E.: Comparing F# and C# with dependency networks. https:\/\/evelinag.com\/blog\/2014\/06-09-comparing-dependency-networks\/ (2014)"},{"key":"1_CR17","volume-title":"Design Patterns","author":"E Gamma","year":"1994","unstructured":"Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns. Prentice-Hall, Elements of Reusable Object-Oriented Software (1994)"},{"key":"1_CR18","unstructured":"Ghosh, D.: Functional and Reactive Domain Modeling. Manning (2016)"},{"key":"1_CR19","doi-asserted-by":"crossref","unstructured":"Gibbons, J.: How to design co-programs. J. Funct. Program. 31 (2021)","DOI":"10.1017\/S0956796821000113"},{"key":"1_CR20","unstructured":"Granin, A.: Functional Design and Architecture: Examples in Haskell. Manning (2024)"},{"key":"1_CR21","unstructured":"Harrer, M.: Quality Tactics. Leanpub (2024)"},{"key":"1_CR22","doi-asserted-by":"crossref","unstructured":"Henderson, P.: Functional geometry. In: Proceedings of the 1982 ACM Symposium on LISP and Functional Programming, pp. 179\u2013187. LFP \u201982, Association for Computing Machinery, New York, NY, USA (1982)","DOI":"10.1145\/800068.802148"},{"key":"1_CR23","doi-asserted-by":"crossref","unstructured":"Hudak, P.: The Haskell School of Expression: Learning Functional Programming through Multimedia. Cambridge University Press, 4th edn. (2000)","DOI":"10.1017\/CBO9780511818073"},{"issue":"1\u20133","key":"1_CR24","doi-asserted-by":"publisher","first-page":"67","DOI":"10.1016\/S0167-6423(99)00023-4","volume":"37","author":"J Hughes","year":"2000","unstructured":"Hughes, J.: Generalising monads to arrows. Sci. Comput. Program. 37(1\u20133), 67\u2013111 (2000)","journal-title":"Sci. Comput. Program."},{"key":"1_CR25","doi-asserted-by":"crossref","unstructured":"Hutton, G.: Programming in Haskell. Cambridge University Press, 2nd edn. (2016)","DOI":"10.1017\/CBO9781316784099"},{"key":"1_CR26","unstructured":"Khononov, V.: Learning Domain-Driven Design: Aligning Software Architecture and Business Strategy. O\u2019Reilly (2021)"},{"key":"1_CR27","unstructured":"Lilienthal, C.: Langlebige Softwarearchitekturen. Dpunkt Verlag, 4th edn. (2024)"},{"key":"1_CR28","unstructured":"Maguire, S.: Algebra-Driven Design. Leanpub (2020)"},{"issue":"1","key":"1_CR29","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1017\/S0956796807006326","volume":"18","author":"C McBride","year":"2008","unstructured":"McBride, C., Paterson, R.: Applicative programming with effects. J. Funct. Program. 18(1), 1\u201313 (2008)","journal-title":"J. Funct. Program."},{"key":"1_CR30","doi-asserted-by":"crossref","unstructured":"Minsky, Y., Madhavapeddy, A.: Real World OCaml: Functional Programming for the Masses. Cambridge University Press, 2nd edn. (2022)","DOI":"10.1017\/9781009129220"},{"key":"1_CR31","unstructured":"Okasaki, C.: Functional Data Structures. Cambridge University Press (2008)"},{"issue":"12","key":"1_CR32","doi-asserted-by":"publisher","first-page":"1053","DOI":"10.1145\/361598.361623","volume":"15","author":"DL Parnas","year":"1972","unstructured":"Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053\u20131058 (1972)","journal-title":"Commun. ACM"},{"key":"1_CR33","doi-asserted-by":"crossref","unstructured":"Peyton\u00a0Jones, S., Eber, J.M., Seward, J.: Composing contracts: an adventure in financial engineering (functional pearl). In: Proceedings of the Fifth ACM SIGPLAN International Conference on Functional Programming, pp. 280\u2013292. ICFP \u201900, Association for Computing Machinery, New York, NY, USA (2000)","DOI":"10.1145\/351240.351267"},{"key":"1_CR34","unstructured":"Richards, M., Ford, N.: Fundamentals of Software Architecture: An Engineering Approach. O\u2019Reilly (2020)"},{"key":"1_CR35","unstructured":"Self-contained systems (SCS). https:\/\/scs-architecture.org\/"},{"key":"1_CR36","unstructured":"Skelton, M., Pais, M.: Team Topologies. IT Revolution Press (2019)"},{"key":"1_CR37","unstructured":"Sperber, M., Wehr, S.: Data modeling with sums and products. https:\/\/funktionale-programmierung.de\/2024\/11\/25\/sums-products-english.html (2024)"},{"key":"1_CR38","unstructured":"Starke, G., et\u00a0al.: arc42 quality model. https:\/\/quality.arc42.org\/"},{"key":"1_CR39","doi-asserted-by":"crossref","unstructured":"Wadler, P.: The essence of functional programming. In: Proceedings of the 19th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 1\u201314. POPL \u201992, Association for Computing Machinery, New York, NY, USA (1992)","DOI":"10.1145\/143165.143169"},{"key":"1_CR40","unstructured":"Whitington, J.: OCaml from the Very Beginning. Coherent Press (2013)"},{"key":"1_CR41","unstructured":"Wlaschin, S.: Domain Modeling Made Functional. O\u2019Reilly Media (2018)"},{"key":"1_CR42","unstructured":"Wolff, E.: Microservices: Flexible Software Architecture. Addison-Wesley Professional (2016)"},{"key":"1_CR43","doi-asserted-by":"crossref","unstructured":"Yorgey, B.A.: Monoids: theme and variations (functional pearl). In: Proceedings of the 2012 Haskell Symposium, pp. 105\u2013116. Haskell \u201912, Association for Computing Machinery, New York, NY, USA (2012)","DOI":"10.1145\/2364506.2364520"},{"key":"1_CR44","unstructured":"Yourdon, E., Constantine, L.L.: Structured Design. Prentice-Hall (1979)"}],"container-title":["Lecture Notes in Computer Science","Trends in Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-031-99751-8_1","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,11,28]],"date-time":"2025-11-28T20:22:12Z","timestamp":1764361332000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-031-99751-8_1"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,10,1]]},"ISBN":["9783031997501","9783031997518"],"references-count":44,"URL":"https:\/\/doi.org\/10.1007\/978-3-031-99751-8_1","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2025,10,1]]},"assertion":[{"value":"1 October 2025","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"TFP","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Symposium on Trends in Functional Programming","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Oxford","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"United Kingdom","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2025","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"14 January 2025","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"16 January 2025","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"26","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"tfp2025","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/trendsfp.github.io\/index.html","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}}]}}