[ Perl 6 ] Haskell式的Fibonacci函数定义

[ Perl 6 ] Haskell式的Fibonacci函数定义

There is more than one way to do it.

  • 在Perl 6中,总有超过一种方法来达到目的。例如我们可以使用函数重载功能,写出Haskell式的Fibonacci函数定义
-- Haskell ver.
fib 0 = 1
fib 1 = 1
fib n = fib (n-1) + fib (n-2)
# Perl 6 ver.
multi fib (0) { 1 }
multi fib (1) { 1 }
multi fib(Int $n where $n > 1) {
  (fib $n-1) + (fib $n-2)
}

?

时间: 2024-10-12 12:51:54

[ Perl 6 ] Haskell式的Fibonacci函数定义的相关文章

[js]变量声明、函数声明、函数定义式、形参之间的执行顺序

一.当函数声明和函数定义式(变量赋值)同名时 function ledi(){ alert('ledi1'); }; ledi(); var ledi = function (){ alert('ledi2'); }; ledi(); 执行顺序: var ledi: function ledi(){ alert('ledi1'); }; //预编译结束 ============== ledi(); ledi = function (){ alert('ledi2'); }; ledi(); 函数

“函数声明”、“函数原型”与“函数定义”辨析

最近在看一本关于C的书,对函数声明和函数定义的定义很是模糊,分不清楚,百度了一下,发现一篇帖子写的很是不错,转载过来: 原文: 对函数的“定义”和“声明”不是一回事.函数的定义是指对函数功能的确立,包括指定函数名,函数值类型.形参及其类型以及函数体等,它是一个完整的.独立 的函数单位.而函数的声明的作用则是把函数的名字,函数类型以及形参的类型.个数和顺序通知编译系统,以便在调用该函数时进行对照检查(例如,函数名是否 正确,实参与形参的类型和个数是否一致),它不包括函数体.————谭浩强 ,<C程

Effective C++ Item 46 当需要投你非成员函数定义模板

本文senlie原版的,转载请保留此地址:http://blog.csdn.net/zhengsenlie 经验:当我们编写一个 class template, 而它所提供之"与此 template 相关的"函数支持"全部參数之隐式类型转换"时.请将那些函数定义为 "class template内部的 friend 函数". 演示样例: template<typename T> class Rational{ public: Rati

javascript之函数定义

javascript的基础之一 --- function function的定义: 1.直接定义 function test(){ //内容,想要处理的逻辑 } 2.变量式 var demo = function(){ //内容,想要处理的逻辑 }; 3.利用Function var fun = new Function('fun','conlose.log("内容,想要处理的逻辑")'); 1/2两种经常使用,第三种比较少见.第一种函数定义会被提升到最前面,后面一种不可以. test

条款27: 如果不想使用隐式生成的函数就要显式地禁止它

假设想写一个类模板Array,它所生成的类除了可以进行上下限检查外,其它行为和C++标准数组一样.设计中面临的一个问题是怎么禁止掉Array对象之间的赋值操作,因为对标准C++数组来说赋值是不合法的: double values1[10];double values2[10]; values1 = values2;                 // 错误! 对很多函数来说,这不是个问题.如果你不想使用某个函数,只用简单地不把它放进类中.然而,赋值运算符属于那种与众不同的成员函数,当你没有去写

[JavaScript]function expression(函数陈述式) VS declaration (函数运算式)

摘要:[JavaScript]function expression(函数陈述式) VS declaration (函数运算式) 先前写过一篇[Javascript]Call method(调用函数)关于函数声明,这边进阶一下做一个比较. 但在开始前, 先来回忆一下如何自定一个JS函数 How to create JS custom function 第一种 - declaration (函数运算式) function callTest(){ console.log(123); } callTe

Python函数(函数定义、函数调用)用法详解

Python 中,函数的应用非常广泛,前面章节中我们已经接触过多个函数,比如 input() .print().range().len() 函数等等,这些都是 Python 的内置函数,可以直接使用. 除了可以直接使用的内置函数外,Python 还支持自定义函数,即将一段有规律的.可重复使用的代码定义成函数,从而达到一次编写.多次调用的目的. 比如,在程序中定义了一段代码,这段代码用于实现一个特定的功能.问题来了,如果下次需要实现同样的功能,难道要把前面定义的代码复制一次?如果这样做实在太傻了,

python基础 函数定义 返回值 参数

函数定义 1 #python中函数定义.def函数定义的关键字,fun1函数名,x为函数的形参可以有多个,多个之间用“,”隔开:return 函数返回值的关键字,python中return可以是非必要 2 def fun1(x): 3 x += 1 4 return x 函数返回值 1 # 函数返回值可以有多个,之间使用“’”分隔,返回值讲多个值组成的元组进行返回. 当无return时python会隐式return “None”,如果只返回一个值就返回这个值本身 2 def fun2(x, y)

条件、循环、函数定义、字符串操作练习

注意标准库的两种导入与使用方式,建议大家采用<库名>.<函数名>的方式. 对前面的代码进行优化,用for,while,if,def实现: 用循环画五角星 1 import turtle 2 3 turtle.fillcolor("red") 4 turtle.begin_fill() 5 for i in range(5): 6 turtle.forward(100) 7 turtle.right(144) 8 turtle.end_fill() 用循环画同心圆