为什么要学函数式编程
展开全部
以 C 语言源程序为例,使用函数式的编程风格最重要的是有利于程序的调试、而且程序的可读性也很好、编程思路很清楚!!以下面的源程序进行讲解就一目了然了。
在以下题目中,三次用到了求阶乘的代码(A!、(A-B)!、B!),现在使用调用子函数的编程风格,程序简洁明了、且可读性很强。如果不使用函数式编程,那么求阶乘部分的代码就必须要重复编写三次。你说到底是哪一种编程风格好呢?
例如:求组合数C(A,B) = A!/( (A-B)! * B! ),其源程序如下:
int jie_cheng( int ) ; /* 求 n! 的子函数 */
void main( )
{
int a = 0,b = 0 , c = 0 ;
scanf("%d %d",&a,&b); /* 输入两个整数 a、b */
c = jie_cheng(a) / (jie_cheng(a-b)*jiecheng(b)) ; /* 根据公式求组合数 c */
printf("Zu he shu C is: %d\n", c) ;
}
int jie_cheng(int num) /* 子函数调用 */
{
if( num == 1)
return 1 ;
else
return num*jie_cheng(num-1) ;
}
在以下题目中,三次用到了求阶乘的代码(A!、(A-B)!、B!),现在使用调用子函数的编程风格,程序简洁明了、且可读性很强。如果不使用函数式编程,那么求阶乘部分的代码就必须要重复编写三次。你说到底是哪一种编程风格好呢?
例如:求组合数C(A,B) = A!/( (A-B)! * B! ),其源程序如下:
int jie_cheng( int ) ; /* 求 n! 的子函数 */
void main( )
{
int a = 0,b = 0 , c = 0 ;
scanf("%d %d",&a,&b); /* 输入两个整数 a、b */
c = jie_cheng(a) / (jie_cheng(a-b)*jiecheng(b)) ; /* 根据公式求组合数 c */
printf("Zu he shu C is: %d\n", c) ;
}
int jie_cheng(int num) /* 子函数调用 */
{
if( num == 1)
return 1 ;
else
return num*jie_cheng(num-1) ;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询