efene programming language

for loops

for those who can’t live without for loops or aren’t confortable with recursion, map and lists.foreach, now efene provides for loops.

here are some examples, after them the output of the execution:

@public
run = fn ()
    R0 = for X in lists.seq(1, 10)
        A = X + 1
        A

    R1 = for X in lists.seq(1, 10) if X % 2 == 0
        A = X + 1
        A

    R2 = for X in lists.seq(1, 5)
        for Y in lists.seq(6, 10)
            (X, Y)

    R2A = [(X, Y) for X in lists.seq(1, 5) for Y in lists.seq(6, 10)]

    R3 = for (X, Y) in lists.zip(lists.seq(1, 3), lists.seq(4, 6))
        (Y, X)

    io.format("R0: ~p~n", [R0])
    io.format("R1: ~p~n", [R1])
    io.format("R2: ~p~n", [R2])
    io.format("flatten R2: ~p~n", [lists.flatten(R2)])
    io.format("R2A: ~p~n", [R2A])
    io.format("R3: ~p~n", [R3])

ouput:

R0: [2,3,4,5,6,7,8,9,10,11]

R1: [3,5,7,9,11]

R2: [[{1,6},{1,7},{1,8},{1,9},{1,10}],

[{2,6},{2,7},{2,8},{2,9},{2,10}],

[{3,6},{3,7},{3,8},{3,9},{3,10}],

[{4,6},{4,7},{4,8},{4,9},{4,10}],

[{5,6},{5,7},{5,8},{5,9},{5,10}]]

flatten R2: [{1,6}, {1,7}, {1,8}, {1,9}, {1,10},

{2,6}, {2,7}, {2,8}, {2,9}, {2,10},

{3,6}, {3,7}, {3,8}, {3,9}, {3,10},

{4,6}, {4,7}, {4,8}, {4,9}, {4,10},

{5,6}, {5,7}, {5,8}, {5,9}, {5,10}]

R2A: [{1,6}, {1,7}, {1,8}, {1,9}, {1,10},

{2,6}, {2,7}, {2,8}, {2,9}, {2,10},

{3,6}, {3,7}, {3,8}, {3,9}, {3,10},

{4,6}, {4,7}, {4,8}, {4,9}, {4,10},

{5,6}, {5,7}, {5,8}, {5,9}, {5,10}]

R3: [{4,1},{5,2},{6,3}]


To Tumblr, Love Metalab