Nested function: Difference between revisions

m
(Added XPL0 example.)
Line 97:
 
=={{header|AppleScript}}==
<lang AppleScript>-- NESTED FUNCTION --------------------------------------- NESTED FUNCTION --------------------
 
-- makeList :: String -> String
Line 115:
end makeList
 
-- TEST --------------------------------------------- TEST -------------------------
on run
Line 123:
 
 
-- GENERIC FUNCTIONS -------------------------------------- GENERIC FUNCTIONS -------------------
 
-- mReturn :: First-class m => (a -> b) -> m (a -> b)
on mReturn(f)
-- Lift 2nd class handler function lifted into 1st class script wrapper.
if script is class of f is script then
f
else
script
property |λ| : f
end script
end if
end mReturn</lang>
 
 
-- map :: (a -> b) -> [a] -> [b]
on map(f, xs)
-- The list obtained by applying f
-- to each element of xs.
tell mReturn(f)
set lng to length of xs
Line 135 ⟶ 150:
return lst
end tell
end map</lang>
 
-- Lift 2nd class handler function into 1st class script wrapper
-- mReturn :: Handler -> Script
on mReturn(f)
if class of f is script then
f
else
script
property |λ| : f
end script
end if
end mReturn</lang>
{{Out}}
<pre>1. first
9,655

edits