可变变量用于寻找范围

时间:2015-05-16 17:41:47

标签: algorithm functional-programming scheme racket

我正在尝试解决这个C问题,找到一个带有2个整数参数的函数,a和b并生成它们之间所有元素的范围,我试图在Racket中这样做。

这是我到目前为止所做的,我不知道如何继续前进。我需要使用可变变量吗?

(define (list-range a b)
(local [(define sum a)]
 (build-list (+ (- a b) 1)
             lambda (x y) 
             [(<= sum b)(+ sum 1)]
             ))

请帮助我理解并解决这个问题

1 个答案:

答案 0 :(得分:1)

这会构建从from包含到to独占的列表。 包容性/独家性是Racket的惯例。 由于列表的事实,这是最方便的 指数从0开始。

#lang racket
(define (list-range from to)
  (build-list (- to from)
              (lambda (i) (+ from i))))

(list-range 5 7)

输出:     &#39;(5 6)