JSFiddle - React, Tailwind, and code Playground

by kentaromiura

JavaScript

functionFrom = function(pattern) {
    var pm = function(param) {
        var callable = pattern[param] || pattern['else'] ||
        function() {};
        return callable.call(pm, param);
    }
    return pm;
};

var pow = functionFrom({
    0: function() {
        return 1;
    },
    'else': function(n) {
        return n * this(n - 1);
    }
});

alert(pow(3));