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

sicp每日一题[2.4]

时间:2024-09-10 10:49:31浏览次数:9  
标签:cons car 每日 sicp define cdr 2.4 lambda

Exercise 2.4

Here is an alternative procedural representation of pairs. Forthisrepresentation, verify that (car (cons x y)) yields x for any objects x and y.

(define (cons x y)
 (lambda (m) (m x y)))
(define (car z)
 (z (lambda (p q) p)))

Whatisthe corresponding definition of cdr? (Hint: To verify that this works, make use of the substitution model of Section 1.1.5.)


这道题很简单,只需要把 car 改一个字母就行。

; 返回值是一个单参数的函数,它会把 cons 函数的两个数传给返回值函数
(define (cons x y)
  (lambda (m) (m x y)))

; 如果 z 是由 cons 函数创建的数据对,则 z 会把 (lambda (p q) p)) 作为参数
(define (car z)
  (z (lambda (p q) p)))

(define (cdr z)
  (z (lambda (p q) q)))


(define z (cons 3 4)) 
(car z) 
(cdr z) 

; 执行结果
3
4

; applicative-order
; (car (cons x y)) 
; (car (lambda (m) (m x y))) 
; ((lambda (m) (m x y)) (lambda (p q) p)) 
; ((lambda (p q) p) x y) 
; x 

标签:cons,car,每日,sicp,define,cdr,2.4,lambda
From: https://www.cnblogs.com/think2times/p/18405951

相关文章

  • 每日OJ_牛客_单词倒排(字符串模拟)
    目录牛客_单词倒排(字符串模拟)解析代码牛客_单词倒排(字符串模拟)单词倒排__牛客网时间限制:C/C++1秒,其他语言2秒空间限制:C/C++32M,其他语言64M题目描述:对字符串中的所有单词进行倒排。说明:1、构成单词的字符只有26个大写或小写英文字母;2、非构成单词的字符均视为单词......
  • CH58x/CH59x/CH57x RF_PHY(2.4g)切换Channel发送接收
    前言:在做某些应用的时候可能需要我们发送或者接收时切换对应的channel。此次完成测试的平台在WCH的CH592F上完成的。在工作发送过程中切换37、38、39三个信道进行轮询发送。具体需要使用最关键的函数是:RF_SetChannel实现代码如下:if(events&channl_37_tx_evt){......
  • sicp每日一题[2.3]
    Exercise2.3Implementarepresentationforrectanglesinaplane.(Hint:YoumaywanttomakeuseofExercise2.2.)Intermsofyourconstructorsandselectors,createproceduresthatcomputetheperimeterandtheareaofagivenrectangle.Nowimplemen......
  • Go进阶概览 -【2.4 切片的结构与内存管理】
    2.4切片的结构与内存管理切片是我们日常使用比较多的一个结构,深入的了解它的结构对于我们提高程序性能也有比较大的帮助。本节我们将针对切片底层结构、扩容机制、底层数组进行讲解。本节代码存放目录为lesson4切片底层结构我们在使用的时候发现切片与数组很相似,这是......
  • GitHub每日最火火火项目(9.8)
    项目名称:polarsource/polar项目介绍:polar是一个开源的项目,它是LemonSqueezy的替代方案,并且具有更优惠的价格。这个项目的目标是让开发者能够在自己热爱的编码工作中获得报酬。它为开发者提供了一种新的选择,使他们能够以更低的成本实现自己的项目,并从中获得收益。通过......
  • sicp每日一题[2.2]
    Exercise2.2Considertheproblemofrepresentinglinesegmentsinaplane.Eachsegmentisrepresentedasapairofpoints:astartingpointandanendingpoint.Defineaconstructormake-segmentandselectorsstart-segmentandend-segmentthatdefinet......
  • 每日OJ_牛客_骆驼命名法(递归深搜)
    目录牛客_骆驼命名法(简单模拟)解析代码牛客_骆驼命名法(简单模拟)骆驼命名法__牛客网解析代码首先一个字符一个字符的读取内容:遇到_就直接跳过。如果上一个字符是_则下一个字符转大写字母。#include<iostream>#include<string>usingnamespacestd;intmai......
  • GitHub每日最火火火项目(9.6)
    项目名称:Zeyi-Lin/HivisionIDPhotos项目介绍:HivisionIDPhotos是一个轻量级且高效的AI证件照制作工具。它能够通过人工智能技术,快速、准确地生成符合要求的证件照。这个工具具有较高的实用性,可以帮助用户节省时间和精力,无需专业的摄影知识和技能,就能轻松制作出满意的......
  • 【工具推荐】KillWxapkg v2.4(最新版) - 自动化反编译微信小程序,小程序安全评估工具
    工具介绍:纯Golang实现,一个用于自动化反编译微信小程序的工具,小程序安全利器,自动解密,解包,可还原工程目录,支持微信开发者工具运行下载链接:链接:https://pan.quark.cn/s/aa5480be4bd5使用说明工程结构还原还原前还原后微信开发者工具运行......
  • 【每日刷题】Day112
    【每日刷题】Day112......