| 

.NET C# Java Javascript Exception

eSCALAtion Blog

Blog über die Sprache Scala und verwandte Themen, wie Java oder Haskell.
Über den Autor
Ich bin langjähriger Java-Programmierer, der Scala und Haskell für sich entdeckt hat.
Webseite des Autors Themen des Autors
2014 abstrakte-type-members abstraktion acht-damen acht-damen-problem android applicative-functor applikative-funktoren asinstanceof bounds builder builder-pattern cast ceylon comparable continuations dependency-injection diamant-problem diamond-problem dont-repeat-yourself dry eclipse extractors extraktoren falten fixpunkt-kombinator fold for-schleife frege funktionale-programmierung gosu haskell higher-kinded-types highj implicit implizite-konvertierung implizite-konvertierungen inheritance interview java java-8 juli lambda-ausdruck pattern-matching popularitaet programmiersprachen scala typklassen uncategorized xfalkx
Auf codekicker News finden Programmierer redaktionell vorausgewählte und daher hochwertige Artikel zu verschiedenen, auswählbaren Themen. Auch dieser Autor veröffentlicht seine Artikel auf codekicker News.

» News weiterer Autoren
» Auch Autor werden


News und Artikel von eSCALAtion Blog

7

Die 8 Damen in highJ

Normalerweise schreibe ich hier kaum über meine highJ-Bibliothek. Da ist auch wirklich ziemlich seltsames Zeug drin, und seit Clinton Selke mitmacht, auch immer mehr, was ich selbst nicht mehr so ganz verstehe. Nun gab es vor kurzem die Anregung von Clinton, die MonadRec-Implementierung aus PureScript zu übersetzen, weil man damit Stacküberläufe verhindern kann, wenn man ...
uncategorized
24.04.2016 | 137 0
8

Eine fehlende Optional-Methode und ein Workaround

Ein wirklich hässliches Pattern, um mehrere Dinge auszuprobieren, bis eines davon klappt, ist: int x ... int y ... int z ... Integer result null; if (x % 2 0) { result x / 2; } if (result null && y % 2 0) { result y / 2; } if (result null && z % 2 0) { result z / 2; } String s result null ? "all numbers were odd" : "the result is " result; Eigentlich sollte Optional uns in diesen Fällen die Null-Checks ...
uncategorized
27.01.2016 | 200 0
5

Java-Kontrollstrukturen nachgebaut – if

Wieder so ein seltsamer Beitrag: Wozu sollte man Kontrollstrukturen nachbauen? Nun, selbst als reine Fingerübung lernt man einiges über die Möglichkeiten – und Unmöglichkeiten – der Sprache, aber die eigentliche Idee ist, einen soliden Ausgangspunkt für eigene Erweiterungen zu schaffen. Beginnen wir mit einer der einfachsten Kontrollstrukturen, nämlich if, und dem ...
uncategorized
15.10.2015 | 211 0
8

Kleiner Optional-Trick in Java

So froh ich über die Einführung von Optional in Java 8 bin, so ärgerlich ist dort das Fehlen von Methoden, die eigentlich selbstverständlich sein sollten. So renne ich öfter in die Situation, dass ich aus dem Optional keinen Wert zurückliefern möchte, sondern abschließend eine Aktion ausführen. Dafür gibt es die Methode ifPresent, die einen Consumer entgegennimmt. Das ...
uncategorized
29.06.2015 | 212 0
11

Dependency Injection mit der Reader-Monade

... das böse M-Wort in den Mund! Dabei ist die Reader-Monade kaum mehr als eine einfache Function. Aber eins nach dem anderen. ... id). Mit etwas “Verfeinerung” ist das die Idee der Reader-Monade . Als erstes stellt sich die Frage, was ist, ... flatMap(userComp::greet).apply(config)); ... Das war das Grundprinzip der Reader-Monade als DI-Ersatz. Ich gebe zu, der entstehende Code sieht ...
dependency-injection funktionale-programmierung java-8 monaden reader-monade uncategorized
27.03.2015 | 334 0
11

Und wieder mal die Damen…

... - qss; j - (1 to n) if qs.forall(safe(_ ,(j,k)))) yield ((j,k) :: qs) (1 to n).foldRight(List(List[Pos]()))(qu) } def main(args:Array[String]) println(nqueens(8).mkString("\n")) } Die folgende Java 8 -Version ist beiliebe nicht allein auf meinem eigenen Mist gewachsen. Ich habe nämlich feststellen müssen, dass meine Kentnisse über die javanischen Lambdas zwar recht ...
acht-damen acht-damen-problem java-8 uncategorized
01.02.2015 | 330 0
6

Eine Builder-Variante mit Initialisierungsblöcken

... weniger oft genutzen Java -Features sind Initialisierungsblöcke. ... auch, um Builder zu schachteln? Und ... Builder -Struktur erst einmal ... java .util.ArrayList; import java .util.List; public class ... Builder genau so ineinanderschachteln, ... Builder -Variante nun einzuschätzen? ... Builder -Klasse immer länger, ... Builder-Pattern unbequem werden). Auf ... Builder -Variante eine gute ...
builder builder-pattern java java-8 uncategorized
13.11.2014 | 323 0
6

Popularität Programmiersprachen – 2014-08

Hallo Leute, hier sind die Statistiken des Monats August. Popularität der Programmiersprachen für August 2014 : (Zuwachs oder Schrumpfung in Prozent über die 13 vorherigen Monate) Popularität der Programmiersprachen für August 2014 : (Statistische Zahlen zu den Sprachen) INFO: Die Statistiken für den September und Oktober erscheinen Anfang November. Viel Spasz ...
2014 juli popularitaet programmiersprachen uncategorized xfalkx
09.09.2014 | 313 0
12

Popularität Programmiersprachen – 2014-07

Hallo Leute, hier sind die Statistiken des dritten Monats. Popularität der Programmiersprachen für Juli 2014 : (Zuwachs oder Schrumpfung in Prozent über die 13 vorherigen Monate) Popularität der Programmiersprachen für Juli 2014 : (Statistische Zahlen zu den Sprachen) Viel Spasz weiterhin Falk
2014 juli popularitaet programmiersprachen uncategorized xfalkx
09.09.2014 | 295 0
10

Popularität Programmiersprachen – 2014-06

... Eine Null steht dabei für keine Veränderung im Rang, positive Zahlen für ein Aufsteigen und negative Zahlen für ein Absteigen im Rang. Popularität der Programmiersprachen für Juni 2014 : (Zuwachs oder Schrumpfung in Prozent über die 13 vorherigen Monate) Popularität der Programmiersprachen für Juni 2014 : (Statistische Zahlen zu den Sprachen) Viel Spasz weiterhin Falk
2014 juni popularitaet programmiersprachen uncategorized xfalkx
09.09.2014 | 309 0
3

Popularität Programmiersprachen – 2014-05

... ich mich seit längerem mit der Popularität von Programmiersprachen beschäftige und dazu eine Statistik führe, ... von insgesamt 54 Programmiersprachen erfasst. Mit diesen Zahlen wird dann ... der letzten 13 Monate. Popularität der Programmiersprachen für Mai 2014: (Zuwachs oder Schrumpfung in Prozent ... der Programmiersprachen für Mai 2014: (Statistische Zahlen zu den Sprachen) ...
mai popularitaet programmiersprachen uncategorized xfalkx
07.09.2014 | 332 0
10

Casts mit zusätzlichen Bounds in Java 8

... WTF-Momente, so auch heute. Eine Syntaxerweiterung in Java 8 , die komplett an mir vorbeigegangen ist, sind Cast s mit zusätzlichen Bounds : LinkedList String list new LinkedList (); List String ... dazu recht lakonisch : If the cast operator contains a list of types – that is, ... was ihr Typ ist. Durch den vorgelagerten Cast wird diese Typbestimmung vorgezogen, so dass das Objekt r ...
bounds cast java-8 lambda-ausdruck uncategorized
29.08.2014 | 391 0
2

Pattern-Matching in Java 8

In Scala ist Pattern-Matching ein beliebtes Feature mit fast unbegrenzten Anwendungsmöglichkeiten. Nicht umsonst wird es oft als “switch auf Steroiden” bezeichnet. Im Rahmen eines kleinen Projekts habe ich überlegt, ob man das nicht auch in Java 8 nachbauen kann. Man kann, mit einigen Einschränkungen. Hier einmal ein kleines Anwendungsbeispiel: String string ... String s ...
uncategorized
02.06.2014 | 304 0
8

Typsicheres Builder-Pattern mit Java

Der folgende Code ist eine ziemlich direkte Übersetzung des typsicheren Builder-Patterns aus Scala nach Java. Es gibt mehrere Versionen, aber mir gefällt die Variante von Daniel Sobral am besten, weil damit auch bei der “Verkabelung” im Builder weniger Fehler möglich sind. Etwas kürzer ist die ursprüngliche Version von Rafael Ferreira, aber dort ist die Zuordnung von ...
uncategorized
07.05.2014 | 354 0
12

zipWith in Java 8

... das Leben in Java 8 leichter machen. In ... es die Funktione zip With, mit der ... nützlicher Anwendungsfall für zip With ist, wenn ... mit der erweiterten for-Schleife zwei Collections gleichzeitig ... an Stelle des Lambda-Ausdruck s möglich gewesen, ... es durch einen Lambda-Ausdruck ersetzen. Wir brauchen ... es gibt in Java 8 eine Default-Methode dafür ... Lambda-Ausdruck heraus auf iterableA ...
for-schleife java-8 lambda-ausdruck uncategorized zip
19.04.2014 | 564 0
6

Java 8 und der Y-Kombinator

... Beispiel, das schon seit Java 5 funktionieren würde (ein entsprechendes Function-Interface ... Klasse durch einen Lambda-Ausdruck ersetzen? Hier zwei Beispiele dafür, wie ... nicht auf den Lambda-Ausdruck selbst Function Integer, Long fac n ... Man verwendet einen Fixpunkt-Kombinator wie den Y-Kombinator. Ich will an ... neuen Features von Java 8 auch wirklich ausnutzen zu können. ...
fixpunkt-kombinator java lambda-ausdruck uncategorized
05.04.2014 | 489 0
8

Kann Java abstrakte Typ-Member simulieren?

... sozusagen als “innere Angelegenheit” behandelt. Und gestern abend dämmerte mir, das Java zumindest prinzipiell etwas Ähnliches erlaubt – und nicht erst seit Java 8. Ich habe keine Ahnung, wie weit diese “Technik” trägt – und ... kannte die Syntax auch nicht, bis ich für die “Java Programmer”-Zertifizierung von Oracle lernen musste (daher auch die “Inspiration” für diesen etwas ...
abstrakte-type-members java uncategorized
30.03.2014 | 415 0
8

Continuations in Java 8

Mit Java 8 in den Startlöchern bietet sich an, mal zum Vergleich ... Hier ist der aktualisierte Code zu Continuations in Java , der deutlich die Mächtigkeit der Lambdas und Default-Methoden zeigt: import java .util.function.Function; public interface Cont R,A { R runCont(Function ... } } Und das Beispiel: import java .util.function.BiFunction; public class PythExample { public ...
continuations java java-8 uncategorized
12.02.2014 | 424 0
13

Top Ten “Was man an Java verbessern könnte”

Kurz vor dem langersehnten Java 8-Release drängt sich mir die Frage auf, was mich an Java am meisten stört, oder anders gesagt, was man (auch mit den modernen Sprachmitteln) unbedingt besser machen sollte, wenn man nicht auf Kompatibilität achten müsste. Dabei will ich gar nicht von gravierenden Neuerungen reden, die den Charakter der Sprache komplett ändern würden, sondern ...
uncategorized
10.02.2014 | 352 0
7

Völlig entkoppelt – das Modell

Ich hatte mir schon länger vorgenommen, endlich wieder etwas über Scala zu schreiben. In dieser kleinen Serie möchte ich anhand eines kleinen Beispiels zeigen, wie weit man Entkopplung in Scala nur mit “Bordmitteln” treiben kann, und welche Techniken dabei helfen. Als Beispiel habe ich mir das altbekannte Spielchen “Sokoban” herausgepickt, und mich bei der Umsetzung grob an ...
uncategorized
01.09.2012 | 473 0
5

Monoide in Java

Eine Abstraktion aus Haskell , die problemlos in Java abgebildet werden kann, sind Monoid e. Keine Angst, ... Zu einem richtigen Monoid fehlt dann nur ... (ein Beispiel aus Haskell wäre der Typ ... Hauptanwendungen ist das “Falten ”, also das ... Container-Typs: public enum Fold { ; public static T T fold (Semigroup T semigroup, ... es interessant, solche Abstraktion smöglichkeiten einmal näher ...
abstraktion falten fold haskell java monoid uncategorized
30.03.2012 | 742 0
9

Sammelsurium

Ich habe das Blog vor allem auf Grund meiner Beteiligung am Frege-Projekt ziemlich vernachlässigt – sorry! Ich denke, dass ich dazu bald einiges schreiben kann, aber mit einem Auge verfolge ich natürlich auch immer die Scala-Front. Zum einen wäre da Martin Oderskys vieldiskutierter Post “Scala – a roadmap”. Ich muss sagen, dass ich das Unverständnis über die “Scala ist ...
uncategorized
27.03.2012 | 545 0
10

Continuations in Java

Continuations sind eine nützliche Sache, ob nun beim Compilerbau oder für Webanwendungen. Kein Wunder, dass Scala Continuations (genauer gesagt „Delimited Continuations“) schon „eingebaut“ hat, und dass auch für Java entsprechende Bibliotheken wie javaflow oder RIFE existieren (hier ein kleines Beispiel für die Anwendung). Übrigens bin ich alles andere als ein Experte ...
uncategorized
04.02.2012 | 568 0
9

Diamanten in Java

Java verfügt weder über Mehrfach- noch über Mixin-Vererbung. Insofern erscheint eine Diskussion des Diamant-Problem s reichlich müßig. Trotzdem bin ich gerade darüber gestolpert, und ... Schönheitspreis gewinnen, weil er mit den Beschränkungen von Java kämpft. Es ist ein Kompromiss, der zur Wahrung des DRY -Prinzips andere Konventionen verletzt. Man sollte sich sehr genau ...
diamant-problem diamond-problem dont-repeat-yourself dry inheritance java uncategorized vererbung
25.01.2012 | 707 0
8

Schachteln für Fortgeschrittene

... Wie sieht die Haskell -Lösung aus? class ... das nun in Scala um? Ich habe ... case class Summable(total:Int) implicit def intSummable(i:Int) Summable(i) implicit def listSummable[T % ... //-- error: No implicit view available from ... der Trick, um Scala die gewünschte "Rekursivität" ... dass Scala s Typsystem dem ... Haskell glänzt hier mit ... mit Scala implementieren lassen (z.B. ... Haskell , bei dem ...
haskell implicit implizite-konvertierung implizite-konvertierungen scala uncategorized
22.12.2011 | 561 0
12