Monads/List monad: Difference between revisions
Content added Content deleted
(→{{header|AppleScript}}: Some simplification - normalised argument sequence in a couple of higher-order functions) |
(→{{header|AppleScript}}: Renamed 2 script objects for better ratio of signal-to-noise) |
||
Line 27: | Line 27: | ||
-- pythagoreanTriples :: Int -> [(Int, Int, Int)] |
-- pythagoreanTriples :: Int -> [(Int, Int, Int)] |
||
on pythagoreanTriples(maxInteger) |
on pythagoreanTriples(maxInteger) |
||
script |
script X |
||
on lambda( |
on lambda(X) |
||
script |
script Y |
||
on lambda( |
on lambda(Y) |
||
script |
script Z |
||
on lambda( |
on lambda(Z) |
||
if |
if X * X + Y * Y = Z * Z then |
||
unit([ |
unit([X, Y, Z]) |
||
else |
else |
||
[] |
[] |
||
Line 41: | Line 41: | ||
end script |
end script |
||
bind( |
bind(Z, range(1 + Y, maxInteger)) |
||
end lambda |
end lambda |
||
end script |
end script |
||
bind( |
bind(Y, range(1 + X, maxInteger)) |
||
end lambda |
end lambda |
||
end script |
end script |
||
bind( |
bind(X, range(1, maxInteger)) |
||
end pythagoreanTriples |
end pythagoreanTriples |
||
Line 129: | Line 129: | ||
end if |
end if |
||
end mReturn |
end mReturn |
||
</lang> |
</lang> |
||