如何在方案/球拍上做乘法表 [英] How to do a multiplying table on Scheme/Racket
本文介绍了如何在方案/球拍上做乘法表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
以下是我的代码
(define (multiplying-table n value)
(cond ((= n 0) '())
(else (* n value)(Multiplying-table(- n 1)))))
推荐答案
您需要使用cons
将第一个数字3
与睡觉列表合并。
例如。(3 6 ...)
为(cons 3 (cons 6 ...))
。相反,您有两个表达式,其中(* n value)
仅用于效果,因为结果从未使用过。因此,每个调用都应返回空列表。
通常有两种方法可以做到这一点。在cons
内使用递归或使用累加器。因为列表是从头到尾创建的,所以您可以向下计数n
并从头到尾构建列表。基本情况只返回累加器,默认情况下是空列表。下面是一个示例:
(define (sequence from to)
(let loop ((n to) (acc '()))
(if (< n from)
acc
(loop (- n 1) (cons n acc)))))
(sequence 5 10) ; ==> (5 6 7 8 9 10)
这篇关于如何在方案/球拍上做乘法表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文