prog2-lab06-it21bwin-romans.../code/solutions-sheet.adoc

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.