Anonymous user
Y combinator: Difference between revisions
m
→{{header|ALGOL 68}}
Line 316:
-->
The version below works with Algol 68 Genie 2.8.4 tested with Linux kernel release 5.16.
<lang algol68>BEGIN
Line 324:
MODE F = PROC( INT ) INT ;
MODE
#
PROC y combinator = ( PROC(
( ( X x ) F: x( x ) )
(
(
( PROC( F ) F
)(
)
;
# fibgen = fib => ( n => ( ( n === 0 ) ? 0 : ( n === 1 ) ? 1 : fib( n - 2 ) + fib( n - 1 ) ) ) ; #
PROC( F ) F fibgen = ( F fib ) F:
( ( F fib , INT n ) INT: CASE n IN 1 , 1 OUT fib( n - 2 ) + fib( n - 1 ) ESAC
( fib , )
;
# for ( let i = 1 ; i <= 12 ; i++) { console.log( " " +
INT nofibs = 12 ;
print( ( "The first " , whole( nofibs , 0 ) , " fibonacci numbers." , newline ) ) ;
FOR i TO nofibs
DO
print( whole( y combinator( fibgen )( i ) , -11 ) )
OD ;
print( newline )
|