Currying in JavaScript

Ein sehr praktisches, wenn auch fast unbekanntes Feature in JavaScript, ist das sogenannte Currying.

Mit Currying lassen sich Funktionen mit mehreren Argumenten in neue Funktionen mit nur einem Parameter umwandeln.

Beispiel

Wir möchten ein paar Multiplikationen mit JavaScript durchführen, dann würde eine allgemeine Funktion wohl so aussehen:

function mul(a, b) {
    return a * b;
}
console.log(mul(2,3)); //Ergebnis = 6

Wenn jetzt weitere spezielle Funktionen benötigt werden, die eine beliebige Zahl beispielsweise immer mit 2 oder 5 multiplizieren, kann man entweder für jede spezielle Multiplikation eine neue Funktion deklarieren, oder man verwendet Currying und deklariert so nur eine generische Funktion.

Beispiel ohne Currying

function mul2(a) {
     return a * 2;
}
function mul5(a) {
     return a * 5;
}
 
console.log(mul2(2)); // Ergebnis = 4
console.log(mul2(3)); // Ergebnis = 6
 
console.log(mul5(2)); // Ergebnis = 10
console.log(mul5(3)); // Ergebnis = 15

Beispiel mit Currying

function mulGeneric(a) {
    return function(b) {
        return a * b;
    }
}
 
var mul2 = mulGeneric(2);
console.log(mul2(2)); // Ergebnis = 4
console.log(mul2(3)); // Ergebnis = 6
 
var mul5 = mulGeneric(5);
console.log(mul5(2)); // Ergebnis = 10
console.log(mul5(3)); // Ergebnis = 15
Share

Zend-PHP-Zertifikat bestanden

Seit heute darf auch ich mich Zend Certified Engineer nennen. Eigentlich wollte ich die Prüfung bereits gestern ablegen, da aber das Prüfungszentrum in Dietzenbach technische Probleme hatte (genaueres konnte/wollte mir keiner sagen), wurde ich gestern mit einem neuen Termin wieder nach Hause geschickt.

Der Test war definitiv schwieriger wie die Mock-Tests die man zur Vorbereitung erhält. Nachträglich betrachtet fand ich den Study-Guide von Zend am Hilfreichsten zur Vorbereitung auf die Prüfung. Zusammen mit ein paar praktischen Übung zu den einzelnen Themen, war ich insgesamt gut vorbereitet.

In Summe hat sich das Zertifikat für mich persönlich gelohnt, da ich so wieder Neues bzw. auch Nützliches über PHP gelernt habe. Die kostenlose Zend-Studio-Lizenz, die man mit dem bestandenen Zertifikat erhält, ist natürlich auch nicht schlecht :)

Share

Content-Management-Systeme entpacken

Der Eine oder Andere wird es kennen. Schnell mal ein Content-Management-System auf dem Server eines Kunden installieren. Blöd nur wenn der lediglich einen FTP-Zugang zu seinem Server bereitstellt. Also muss erst das geliebte Content-Management-System lokal entpackt und dann mühselig per FTP auf den Kunden-Server hochladen werden.
Genau aus diesem Grund habe ich mir jetzt ein kleines PHP-Skript geschrieben, was ZIP-Archive auf Webservern entpacken kann.
Das spart eine Menge Zeit, da somit nur noch das Skript und das ZIP-Archiv des Content-Management-Systems hochgeladen werden muss. Anschließend wird das PHP-Skript im Browser aufgerufen und ausgeführt um das Content-Management-System zu entpacken.
Wer also genauso wie ich keine Lust mehr auf lange FTP-Upload-Session hat, kann gerne mein PHP-Skript downloaden und einsetzen.
Feedback sehe ich immer gerne, eventuell hat ja jemand auch Verbesserungsvorschläge parat.

Voraussetzung
PHP 5.2+ mit PECL zip >= 1.0.0

Download
CMS Extractor

Share