Skip to content

Commit

Permalink
Merge pull request #243 from zhongl/feedback
Browse files Browse the repository at this point in the history
Fix typos
  • Loading branch information
noelwelsh authored Oct 27, 2023
2 parents ab140f7 + 167a129 commit 5db2f81
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 2 deletions.
2 changes: 1 addition & 1 deletion src/pages/adt/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ A product in an e-commerce store might have a stock keeping unit (a unique ident

In two-dimensional vector graphics it's typical to represent shapes as a path, which is a sequence of actions of a virtual pen. The possible actions are usually straight lines, Bezier curves, or movement that doesn't result in visible output. A straight line has an end point (the starting point is implicit), a Bezier curve has two control points and an end point, and a move has an end point.

What is common betwen all the examples above is that the individual elements---the atoms, if you like---are connected by either a logical and or a logical or. For example, a user is a screen name **and** an email address **and** a password **and** a role. A 2D action is a straight line **or** a Bezier curve **or** a move. This is the core of algebraic data types: an algebraic data type is data that is combined using logical ands or logical ors. Conversely, whenever we can describe data in terms of logical ands and logicals or we have an algebraic data type.
What is common between all the examples above is that the individual elements---the atoms, if you like---are connected by either a logical and or a logical or. For example, a user is a screen name **and** an email address **and** a password **and** a role. A 2D action is a straight line **or** a Bezier curve **or** a move. This is the core of algebraic data types: an algebraic data type is data that is combined using logical ands or logical ors. Conversely, whenever we can describe data in terms of logical ands and logicals or we have an algebraic data type.


### Sums and Products
Expand Down
2 changes: 1 addition & 1 deletion src/pages/intro/three-levels.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ At the craft level we get to actual code, and the language specific nuance that

In the next section I'll describe the functional programming paradigm. The remainder of this book is primarily concerned with theory and craft. The theory is language agnostic but the craft is firmly in the world of Scala. Before we move onto the functional programming paradigm are two points I want to emphasize:

1. Paradigms are social constructs. They change over time. Object-oriented programming as practiced todays differs from from the style originally used in Simula and Smalltalk, and functional programming todays is very different from the original LISP code.
1. Paradigms are social constructs. They change over time. Object-oriented programming as practiced todays differs from the style originally used in Simula and Smalltalk, and functional programming todays is very different from the original LISP code.

2. The three level organization is just a tool for thought. In real world is more complicated.

0 comments on commit 5db2f81

Please sign in to comment.