SICP:1.43重复调用函数

#lang racket

(define (repeated f n)
  (define (compare f1 f2)
    (lambda(x)
      (f1 (f2 x)));lambda
    );compare

  (define (doing result n)
    (if (= n 1)
    result
    (doing (compare result f)
           (- n 1))
     );if
    );doing
  (doing f n)
  );repeated

(define (square x)
  (* x x)
  );square

((repeated square 2) 5)

最后结果: 625

时间: 2024-12-21 06:35:03

SICP:1.43重复调用函数的相关文章

菠菜网站函数参数传入和菠菜平台重复调用函数的搭建使用方法

原创摘要:菠菜网站函数参数传入和菠菜平台重复调用函数的搭建使用详细方法菠菜网站函数参数BCfrom sys import argv#利用sys.argv传入参数,argv是一个BC网参数列表listscript,file_name,input_encoding,errors = argv def main(language_file,encoding,errors):#主函数参数print(">>>>main",repr(language_file),encod

自动重复调用函数,去除属性

1 <body> 2 3 年份:<input type="text" id="A" shx="2016" /><br /> 4 <input type="button" value="提交" onclick="tj()" /><br /> 5 6 例子2: 7 <input type="button"

Unity 协程与调用函数的区别以及示例应用

Coroutine:协同程序(简称:协程),参考网络给出以下两个定义供参考. 1> 协同程序,即在主程序运行时同时开启另一段逻辑处理,来协同当前程序的执行.换句话说,开启协同程序就是开启一个模拟线程. [作者注: 不是真正的线程] 2> 是一种很古老的编程模型,以前的操作系统里进程调度里用到过,现在操作系统的进程调度都是根据时间片和优先级来进行轮换,以前是要程序自己来释放cpu的控制权,一直不释放一直也就占用着cpu,这种要求程序自己来进行调度的编程模型应该就叫"协程".

使用call命令在GDB中重复调用某函数

在白盒测试中经常使用GDB进行函数的分支覆盖测试,但在测试对象函数触发很困难,测试效率就很低下. 假设测试函数fun1有10条分支.每次进入fun1需设置10个变量. 那么一般情况下要在GDB中操作10 * 10 = 100次才能将该分支覆盖完毕. 经过查找,GDB中存在一种方法,重复调用该函数,使用10+10 =20次即可覆盖分支. GDB使用步骤: 1)首先对该函数打断点 有以下函数: int webprc_cmmenu_lchk(WEB_CMMENU_LAN_PATH_CHK_STATUS

【ASP.NET】如何使用类创建公共函数,在不同ASP.NET页面间重复调用

为了减少代码冗余,应将公共函数写在类中,供不同ASP.NET页面调用. 1,先新建一个类,并在类中添加函数逻辑 namespace public_function_demo { public class MyFunction { public static string tbName(string tbNo) { if (tbNo == "510101") { return "3GPP 51.010-1"; } else { return "3GPP 51

关于百度地图周边雷达的回调函数会重复调用问题的解决方案

//构造请求参数,其中centerPt是自己的位置坐标 RadarNearbySearchOption option = newRadarNearbySearchOption().centerPt(pt).pageNum(pageIndex).radius(2000); //发起查询请求 mManager.nearbyInfoRequest(option); @Override publicvoidonGetNearbyInfoList(RadarNearbyResult result, Rad

C 可变长参数运用-----编写Lua的通用调用函数

1.C可变长参数 printf这个使用频繁的C语言函数的参数列表包含一个const char*的描述串,还有一个可变长参数(...) ,如下为printf的函数声明. int printf(const char * __restrict, ...) 在stdarg.h这个头文件中包含着对可变长参数进行操作的一些宏(x86平台为例): #define va_start(ap,v)( ap = (va_list)&v + _INTSIZEOF(v) ) #define va_arg(ap,t) ( 

Shell函数:Shell函数返回值、删除函数、在终端调用函数

函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高.像其他编程语言一样,Shell 也支持函数.Shell 函数必须先定义后使用. Shell 函数的定义格式如下: function_name () { list of commands [ return value ] } 如果你愿意,也可以在函数名前加上关键字 function: function function_name () { list of commands [ return value ] } 函数

thinkphp 前台html调用函数 格式化输出

仅仅是输出变量并不能满足模板输出的需要,内置模板引擎支持对模板变量使用调节器和格式化功能,其实也就是提供函数支持,并支持多个函数同时使用.用于模板标签的函数可以是PHP内置函数或者是用户自定义函数,和smarty不同,用于模板的函数不需要特别的定义. 模板变量的函数调用格式为: XML/HTML代码 {$varname|function1|function2=arg1,arg2,### } 说明: { 和 $ 符号之间不能有空格 ,后面参数的空格就没有问题 ###表示模板变量本身的参数位置 支持