print Y( sub { my ( $rec ) = @_; sub { my ( $n ) = @_; $n < 2 ? 1 : $n * $rec->( $n - 1 ); } } )->( 10 );; 3628800