Содомия

Jan 27, 2016 01:33



def replicateM(n, xs) {
    let res = [];
    for (let i = 0; i < n; ++i) {
        push(res, bind xs);
    }
    wrap res;
}

print(replicateM(2, [1, 2, 3]);

// [[1, 1], [1, 2], [1, 3],
//  [2, 1], [2, 2], [2, 3],
//  [3, 1], [3, 2], [3, 3]]

Leave a comment

Comments 2

ex_juan_gan January 26 2016, 23:07:10 UTC
Looks like dark magic to me.

Reply

udpn January 26 2016, 23:44:41 UTC
https://github.com/pelotom/effectful, только прилетает ещё магия, которая делает вид, что скоуп персистентный, из него собрали StateT+ErrorT, требует от [] объяснения, как он собирается с этим житькоммутировать, и чего-то вроде Traversable для for. Я ещё не верю, что правильно проссал этот дешугаринг, так что подробнее напишу позже.

Reply


Leave a comment

Up