• Stars
    star
    234
  • Rank 171,630 (Top 4 %)
  • Language
    Scala
  • Created over 4 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Exercises for the course 'Functional Design by John A. De Goes

Functional Design

Getting Started

sbt
compile

You can open the project from Visual Studio Code with Metals and it should build without issue.

About Functional Design

Although functional programming theory is useful, most day-to-day functional programming does not require any category theory or even any type classes. Most problems can benefit from a domain-specific model, constructed using immutable data types and operators. Such functionally-oriented solutions are simple, composable, type-safe, and testable.

In this course, developers will learn how to write simple functional solutions to everyday business problems, without jargon and without type classes. Developers will learn how to construct type-safe and composable solutions to domain-specific problems, and how the single responsibility principle of object-oriented programming translates into orthogonality. When developers leave, theyโ€™ll have newfound ability to directly benefit from functional programming techniques across their whole application, in a way thatโ€™s highly accessible to the whole team and new hires.

  • Functional domain modeling
  • The essence of composability
  • Measuring the orthogonality of operators
  • Achieving both minimalism and expressiveness
  • Using types to enforce business constraints
  • Generalized algebraic data types for advanced modeling
  • Principle of least power applied to functional design
  • Design techniques used in the ZIO library and broader ecosystem
  • Functional approaches to internal domain-specific languages
  • Translating between different domain-specific language

More Repositories

1

blueeyes

A lightweight Web 3.0 framework for Scala, featuring a purely asynchronous architecture, extremely high-performance, massive scalability, high usability, and a functional, composable design.
Scala
738
star
2

zio-workshop

Real World Functional Programming with ZIO
Scala
195
star
3

functional-effects

The exercises for the Functional Effects workshop
Scala
194
star
4

functional-scala

The repository for the Functional Scala workshop.
Scala
178
star
5

lambdaconf-2014-introgame

Online material for the Introduction to Functional Game Programming with Scala workshop.
Scala
162
star
6

scalaworld-2015

Supporting material for ScalaWorld 2015.
Shell
99
star
7

stax

A functional standard library for HaXe, loaded with a full stack of features.
Haxe
69
star
8

scala3-for-scala2-developers

Scala
65
star
9

advanced-zio

The material for the Advanced ZIO Workshop.
Scala
63
star
10

functional-data-modeling

The exercises for the Functional Data Modeling workshop.
Scala
58
star
11

scalaua-2019

The workspace for ScalaUA 2019 presentation, "Thinking Functionally"
Scala
57
star
12

fp-to-the-min

Code for FP to the Min talk at Scala in the City Conference.
Scala
53
star
13

intro-to-ps

Introduction to PureScript materials.
PureScript
31
star
14

zio-features

ZIO Features
Scala
21
star
15

foundations-scala

An accompanying repository for the workshop 'Fundamentals of Functional Scala'
Scala
20
star
16

advanced-functional-design

The material for the Advanced Functional Design workshop
Scala
18
star
17

intro-rust

Material for the course, An Introduction to Rust.
Rust
17
star
18

zio-webapp

Scala
16
star
19

jvm-perf

Materials for a workshop on JVM performance optimization
Java
14
star
20

sbtb-2016

Streams for (Co)Free! โ€” The supporting repository for a 2016 Scala By The Bay presentation
Scala
14
star
21

RosettaJson

A Scala library for library authors who want to support different JSON libraries.
Scala
14
star
22

scala3-macros

The workshop materials for the course on Scala 3 metaprogramming.
Scala
13
star
23

rust-web

The materials for the workshop, Introduction to Rust Web Programming.
Rust
10
star
24

redeyes

A next-generation web framework for building robust, purely-functional, strongly-typed, richly annotated RESTful web services.
9
star
25

fun-with-automata

Accompanying material for the Fun with Automata talk at Frontier Developers, May 24th 2012
Scala
8
star
26

advanced-scala-cc

Workshop materials for Advanced Scala, delivered at Functional Scala 2023.
Scala
6
star
27

foundations-streaming

Material for the workshop 'Foundations fo Streaming'
Scala
5
star
28

zio-errors

Scala
5
star
29

winter-retreat-2018

Winter Retreat 2018.
Shell
3
star
30

textype

A Scala library for detecting and parsing structured text files.
Scala
2
star
31

spartans-rust

Rust
2
star
32

blueeyes-services

Open source services for the BlueEyes web framework.
1
star