val farey = fn(n number) { var a, b, c, d = 0, 1, 1, n while[=[[0, 1]]] c <= n { val k = (n + b) // d a, b, c, d = c, d, k * c - a, k * d - b _while ~= [[a, b]] } } val testFarey = fn*() { writeln "Farey sequence for orders 1 through 11" for i of 11 { writeln "{{i:2}}: ", join(map(farey(i), by=fn(f) { "{{f[1]}}/{{f[2]}}" }), delim=" ") } } testFarey() writeln() writeln "count of Farey sequence fractions for 100 to 1000 by hundreds" for i = 100; i <= 1000; i += 100 { writeln "{{i:4}}: ", len(farey(i)) }