首页 > 其他分享 >sicp每日一题[1.41]

sicp每日一题[1.41]

时间:2024-09-02 10:27:07浏览次数:11  
标签:double 每日 sicp argument define 1.41 procedure inc

Exercise 1.41

Define a procedure double that takes a procedure of one argument as argument and returns a procedure that applies the original procedure twice. For example, if inc is a procedure that adds 1 to its argument, then (double inc) should be a procedure that adds 2. What value is returned by

(((double (double double)) inc) 5)


理解了可以把过程(procedure)作为返回值的概念之后,这道题就变得非常简单,double过程只需要将传进来的参数过程连续执行2次就行

(define (double f)
  (lambda (x) (f (f x))))

(define (inc a)
  (+ a 1))

(define (halve a)
  (/ a 2))


(((double (double double)) inc) 5)

(((double double) halve) 1024)

; 执行结果:
21
64

标签:double,每日,sicp,argument,define,1.41,procedure,inc
From: https://www.cnblogs.com/think2times/p/18392255

相关文章

  • 系统架构师(每日一练25)
    每日一练1.在客户机/服务器系统开发中,采用()时,应将数据层和数据处理层放置于服务器,应用逻辑层、表示逻辑层和表示层放置于客户机。答案与解析A.分布式表示结构B.分布式应用结构C.分布式数据和应用结构D.分布式数据结构2.软件的横向重用是指重用不同应用领域中的软件......
  • 算法学习每日一题数位不同的组合
    Problem:3153.所有数对中数位不同之和思路本题关键在于如何处理数位不同的个数,其实就是组合问题,两个不同数字的不同数位只能算一对,所以我们不妨把后方元素与前方元素数位不同算作一对,保持单调性避免重复计数。那么后方元素不同的数位应该如何统计呢,我们不妨使用哈希......
  • GitHub每日最火火火项目(8.31)
    项目名称:Cinnamon/kotaemon项目介绍:kotaemon是一个基于开源RAG(检索增强生成)的工具,主要用于与文档进行聊天。它允许用户与自己的文档进行交互,提出问题并获取相关的回答。通过利用RAG技术,该工具能够从文档中检索信息,并以自然语言的方式与用户进行对话,帮助用户更好地理解和......
  • GitHub每日最火火火项目(8.29)
    项目名称:goauthentik/authentik项目介绍:authentik是一个提供认证功能的工具,它就像是你在数字世界中的身份验证胶水,能够确保你的系统和应用的安全性。它可能具备强大的功能,能够满足各种复杂的认证需求,为用户提供可靠的身份验证体验。项目地址:https://github.com/goauthe......
  • 【每日一题】LeetCode 1343.大小为K且平均值大于等于阈值的子数组数目(数组、滑动窗口)
    【每日一题】LeetCode1343.大小为K且平均值大于等于阈值的子数组数目(数组、滑动窗口)题目描述给定一个整数数组arr和两个整数k和threshold,要求找出数组中长度为k且平均值大于等于threshold的子数组的数量。输入格式arr:一个整数数组。k:子数组的长度。thres......
  • 【每日一题】【想通后的诈骗题】Wakey Wakey 牛客挑战赛76 A题 C++
    牛客挑战赛76A题WakeyWakey题目背景牛客挑战赛76题目描述样例#1样例输入#12232100001000002333样例输出#112014备注1≤T......
  • 2024/08/31 每日一题
    LeetCode3127构造相同颜色的正方形方法1:模拟classSolution{publicbooleancanMakeSquare(char[][]grid){for(inti=0;i<2;i++){for(intj=0;j<2;j++){intcnt=0;//统计黑色数量cnt+=......
  • 2024/08/29 每日一题
    LeetCode3142判断矩阵是否满足条件方法1:模拟classSolution{publicbooleansatisfiesConditions(int[][]grid){intn=grid.length,m=grid[0].length;for(inti=0;i<n;i++){for(intj=0;j<m;j++){......
  • 2024/08/30 每日一题
    LeetCode3153所有数对中数位差之和方法1:模拟classSolution{publiclongsumDigitDifferences(int[]nums){intn=nums.length;longans=0;while(nums[0]>0){//遍历每一位inttol=0;//统计总个数i......
  • 软设每日一练2——某计算机系统页面大小为4K,若进程的页面变换表如下所示,逻辑地址为十
    题目:某计算机系统页面大小为4K,若进程的页面变换表如下所示,逻辑地址为十六进制1D16H。该地址经过变换后,其物理地址应为十六进制(        )​        A.1024H    B.3D16H     C.4Dl6H    D.6D16H            ......