(string<? "alpha" "bet")? true
这句话怎么样?
字符串<计算什么?投注的字符数少于alpha.
我对Scheme很新,我正在使用DrRacket,我希望得到一些急需的帮助.
我正在定义结构,我在某种程度上理解,但我似乎遇到了障碍.
我需要做到这一点,因此"EmployeeRaise"函数适用于所有检查期望,而不会使它只能用于一个特定的检查期望.
主要问题是在定义中,更具体地说,在粗体部分,
(+(员工 - 小时率em)(*(员工 - 小时率em)0.1)))
我似乎无法弄清楚它如何确定每个人的员工每小时费率,而不是那个用"em"定义的员工.
我认为将所有三名员工都定义为"em",但不会让我这样做.
我希望有人可以帮助我.
这是我的代码:
(define-struct employee (Name Hourly-rate overtime?))
;;Signature: EmployeeRaise: string -> number
;;Purpose: Consumes an employee and returns an employee with the hourly rate increased by 10%.
;;Tests
(check-expect (EmployeeRaise "Ben") 13.2)
(check-expect (EmployeeRaise "Joe") 16.5)
(check-expect (EmployeeRaise "Debbie") 22)
;; Define
(define (EmployeeRaise employee-Name)
(+ (employee-Hourly-rate em) (* (employee-Hourly-rate em) 0.1)))
Run Code Online (Sandbox Code Playgroud) #lang lazy
(define Y (?(f)((?(x)(f (x x)))(?(x)(f (x x))))))
(define Fact
(Y (?(fact) (?(n) (if (zero? n) 1 (* n (fact (- n 1))))))))
(define Fib
(Y (?(fib) (?(n) (if (<= n 1) n (+ (fib (- n 1)) (fib (- n 2))))))))
Run Code Online (Sandbox Code Playgroud)
(define Y
(lambda (f)
((lambda (x) (x x))
(lambda (g)
(f (lambda args (apply (g g) args)))))))
(define fac
(Y
(lambda (f)
(lambda (x)
(if (< x 2)
1
(* x …Run Code Online (Sandbox Code Playgroud) 我从互联网上获得了这个代码,我没有得到(#t #f)函数最后一行的含义.请详细说明.
(define (equal? S1 S2)
(cond ((and (not (pair? S1)) (not (pair? S2))) (eqv? S1 S2))
((or (not (pair? S1)) (not (pair? S2))) #f)
((equal? (car S1) (car S2)) (equal? (cdr S1) (cdr S2)))
(#t #f)))
Run Code Online (Sandbox Code Playgroud) 我已经开始研究我的第一个球拍功能,但是有一个很大的问题.
(define (sequence low hide stride)
(letrec ([list-of-int null])
(define (f low hide stride)
(if (< low hide)
[(begin ((append (list low) list-of-int)
(f (+ low stride) hide stride)))]
[list-of-int]))
(f low hide stride)))
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我理解我的球拍吗?在我看来,它看起来很好,但不起作用.我在互联网上找到了更简单的解决方案:
(define (sequence low high stride)
(if (> low high)
null
(cons low (sequence (+ low stride) high stride))))
Run Code Online (Sandbox Code Playgroud)
我理解但为什么我的代码不起作用?有谁能够帮我?
奥斯卡回答真的很棒)非常感谢亲爱的朋友.
所以我在球拍中编写了I函数来计算Sums:
(define (sum term a next b)
(if (> a b)
0
(+ (term a) (sum term (next a) next b))))
Run Code Online (Sandbox Code Playgroud)
术语是应用于每个参数的函数.A接下来是我们如何前进到下一个元素(即a2 = 2*a1或a2 = a1 + 1等),b是最后一个元素.
还有2个附加功能:
(define (square x) (* x x))
(define (inc x) (+ x 1))
Run Code Online (Sandbox Code Playgroud)
如果我输入:
(sum square 1 inc 5)我得到的是正确的55
但如果我输入:
(总平方1平方5)
我陷入了困境!?为什么a2应该是a1*a1和a3 = a2*a2并且a应该超过b,因此结束递归的条件将是fultifield.很奇怪.
例如:
'(ace spade king queen)
Run Code Online (Sandbox Code Playgroud)
我理解它在列表中,但我不确定将是什么数据类型..我假设它是一个字符串,但不是一个字符串应该有双引号围绕这个词?
我正忙于计算机程序的结构和解释练习2.18.在这里,我们必须定义一个反向过程以反转列表.它应该做到以下几点:
(reverse (list 1 4 9 16 25))
;; => (25 16 9 4 1)
Run Code Online (Sandbox Code Playgroud)
我想出了以下定义:
(define (reverse list)
(if (null? list)
list
(cons (reverse (cdr list)) (car list))))
;; => (mcons (mcons (mcons (mcons (mcons '() 25) 16) 9) 4) 1).
Run Code Online (Sandbox Code Playgroud)
然后在解决方案中找到类似如下的内容:
(define (reverse items)
(if (null? (cdr items))
items
(append (reverse (cdr items))
(cons (car items) nil))))
;; => (mcons 25 (mcons 16 (mcons 9 (mcons 4 (mcons 1 '()))))).
Run Code Online (Sandbox Code Playgroud)
这里append和cons …
开始学习计划,我遇到了这个:
有什么区别
("v" . 1)
Run Code Online (Sandbox Code Playgroud)
和
("v" 1)
Run Code Online (Sandbox Code Playgroud)
他们似乎工作相同,只是想知道有什么区别.我倾向于使用("v" 1),但( cons "v" 1 )返回("v" . 1).那么,有什么区别?
谢谢
我正在网上阅读一些试图为Scheme程序员提出monad概念的文档.核心思想是,在非命令式编程中,monad用于表示"计算流程",即强制执行表达式的顺序评估.然后它让我感到震惊:因为lambda表达式的主体是按顺序计算的,所以应该理解monad在Scheme中是多余的吗?lambda实体在其他语言中的评估方式是否不同(例如Haskell或ML)?