Skip to content

Commit 1a09e33

Browse files
author
Patrick Drechsler
committed
slides: add adt slides, add c#9 slide
1 parent b57011d commit 1a09e33

File tree

4 files changed

+60
-3
lines changed

4 files changed

+60
-3
lines changed

slides/slides/csharp9.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
### C# 9 is coming...
2+
3+
- record types
4+
- discriminated unions
5+
- pattern matching
6+
- immutability / non-nullability
7+
8+
![images/tweet-don-syme-fsharp-csharp.png](images/tweet-don-syme-fsharp-csharp.png)
9+
10+
Note:
11+
12+
https://twitter.com/dsymetweets/status/1294280620823240706

slides/slides/fsharp.md

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,6 @@ match vehicle with
112112
113113
```
114114

115-
auch als **Summentyp** bekannt
116-
117115
----
118116

119117
## Discriminated Unions mit Werten
@@ -149,7 +147,50 @@ let shoppingCart = {
149147
}
150148
```
151149

152-
TODO auch als **Product Typ** bekannt
150+
----
151+
152+
## ...Also known as...
153+
154+
- Discriminated Union
155+
- OR-Type <!-- .element: class="fragment" data-fragment-index="2" -->
156+
- Sum-Type: Der Zustand ergibt sich aus der Summe der Auswahlmöglichkeiten (*) <!-- .element: class="fragment" data-fragment-index="3" -->
157+
- Record Type
158+
- AND-Type <!-- .element: class="fragment" data-fragment-index="2" -->
159+
- Product-Type: Der Zustand ergibt sich aus dem kartesischen Produkt aller Möglichkeiten jedes Feldes (*) <!-- .element: class="fragment" data-fragment-index="3" -->
160+
161+
(*) Algebraic Data Types <!-- .element: class="fragment" data-fragment-index="3" -->
162+
163+
----
164+
165+
### Algebraic Data Types: Sum Type
166+
167+
```fsharp
168+
type Vehicle = Bike | Car | Bus
169+
```
170+
171+
Alle möglichen Zustaende von `Vehicle` sind: `Bike`, `Car`, oder `Bus`.
172+
173+
Dies entspricht der **Summe** der Auswahlmöglichkeiten.
174+
175+
----
176+
177+
### Algebraic Data Types: Product Type
178+
179+
```fsharp
180+
type TruthTable {
181+
Wert1: bool
182+
Wert2: bool
183+
}
184+
```
185+
186+
Alle möglichen Zustaende von `TruthTable` sind:
187+
188+
- `true`, `false`
189+
- `true`, `true`
190+
- `false`, `false`
191+
- `false`, `true`
192+
193+
Diese Menge nennt man kartesisches **Produkt**.
153194

154195
----
155196

Loading

slides/slides/index.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,10 @@ FILE: fsharp.md
110110

111111
---
112112

113+
FILE: csharp9.md
114+
115+
---
116+
113117
FILE: anforderung_datum_darf_keine_zeit_haben.md
114118

115119
---

0 commit comments

Comments
 (0)