88 lines
2.1 KiB
Plaintext
88 lines
2.1 KiB
Plaintext
|
:source-highlighter: coderay
|
||
|
:icons: font
|
||
|
|
||
|
= Lösungsblatt zum Praktikum Functional Programming
|
||
|
|
||
|
Diese Datei ist als Hilfsmittel für Sie gedacht.
|
||
|
Sie brauchen die Datei nicht zu verwenden, wenn Sie nicht möchten.
|
||
|
|
||
|
== 1. Die Functional Interfaces
|
||
|
|
||
|
[loweralpha]
|
||
|
. Welche Interfaces aus dem Package `java.util.function` können Sie alles nutzen, um
|
||
|
- die mathematische Funktion f(x) = x ^ 2 - 3 für Zahlen des Typs `long` abzubilden?
|
||
|
[numbered]
|
||
|
.. Lösung 1
|
||
|
.. Lösung 2
|
||
|
.. Lösung 3
|
||
|
.. Lösung 4
|
||
|
.. Lösung 5
|
||
|
|
||
|
- um den Zinsfaktor (double) für n (int) Jahre bei einem Zinssatz von p Prozent (float) zu berechnen mit der Formel
|
||
|
zf = (1 + p / 100)^n ?
|
||
|
[numbered]
|
||
|
.. Lösung 1
|
||
|
.. Lösung 2
|
||
|
|
||
|
- ein Objekt vom Typ `Person` (ohne Parameter) zu generieren?
|
||
|
[numbered]
|
||
|
.. Lösung
|
||
|
|
||
|
- Welche Eigenschaft muss eine Funktion haben, damit Sie ein eigenes Interface schreiben müssen,
|
||
|
also keines der in `java.util.function` vorhandenen Interfaces verwenden können?
|
||
|
[numbered]
|
||
|
.. Lösung
|
||
|
|
||
|
. Welche der Aussagen stimmen für ein funktionales Interface?
|
||
|
** [x] Ankreuzen mit x in [ ]
|
||
|
** [ ] Es ist ein Java-Interface (Schlüsselwort `interface` im Code)
|
||
|
** [ ] Es hat **genau eine** abstrakte Methode
|
||
|
** [ ] Das Interface **muss** mit `@FunctionalInterface` markiert sein
|
||
|
** [ ] Es hat **keine** default-Methoden (Schlüsselwort `default`)
|
||
|
. Welche Aussagen stimmen?
|
||
|
** [ ] Zu **jedem** funktionalen Interface können Lambda-Ausdrücke (_lambda expressions_) geschrieben werden
|
||
|
** [ ] Ein Lambda-Ausdruck kann **ohne** passendes funktionales Interface erstellt werden
|
||
|
** [ ] Eine Variable vom Typ `Optional` kann nie `null` sein.
|
||
|
|
||
|
|
||
|
== 2. Übungen auf der Stepik-Plattform
|
||
|
|
||
|
=== Übungen zu Functional Interface und Lambda Expression
|
||
|
. Identify the correct lambdas and method references
|
||
|
Korrekt sind
|
||
|
* ...
|
||
|
|
||
|
. Writing simple lambda expressions
|
||
|
+
|
||
|
[source, Java]
|
||
|
----
|
||
|
// java function
|
||
|
----
|
||
|
|
||
|
. Too many arguments
|
||
|
+
|
||
|
[source, Java]
|
||
|
----
|
||
|
// java function
|
||
|
----
|
||
|
|
||
|
=== Übungen mit Streams
|
||
|
|
||
|
. Composing predicates
|
||
|
+
|
||
|
[source, Java]
|
||
|
----
|
||
|
// java code
|
||
|
----
|
||
|
|
||
|
== 3. Design Pattern _Chain of responsibility_
|
||
|
|
||
|
[source, Java]
|
||
|
----
|
||
|
// java code
|
||
|
----
|
||
|
|
||
|
== 4. Company Payroll
|
||
|
|
||
|
Lösung im Code-Repository.
|