首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计划,球拍的帮助。如果满足条件,我想返回number

计划,球拍的帮助。如果满足条件,我想返回number
EN

Stack Overflow用户
提问于 2017-01-29 02:58:01
回答 1查看 67关注 0票数 0

代码如下:

代码语言:javascript
运行
复制
(define make-simple-sv-num
  (lambda (delare)
    (let ((tal (random-from-to 100000 1000000)))
      (cond ((= (divisible? (sum-of-digits tal) delare) #t) tal)
            (else (make-simple-sv-num))))))

所以我的规范是生成一个随机的6位数,它也可以被输入变量"delare“除以。

我对代码的思考过程是将"tal“绑定到随机数上,然后在计算中使用它,如果验证无误,它将返回"tal”中的数字。然而,如果它不满足条件,它将调用自己,我的想法是,当它这样做时,它会给"tal“一个新的随机数,并继续这样做,直到条件满足,从而给我想要的类型的数字。

我得到了这个错误,但我不知道如何修复它

代码语言:javascript
运行
复制
=: contract violation
  expected: number?
  given: #t
  argument position: 1st
  other arguments...:
EN

回答 1

Stack Overflow用户

发布于 2017-01-31 18:19:28

我认为你的代码可以简单得多,就像:

代码语言:javascript
运行
复制
(define (make-simple-sv-num declare)
    (let ([tal (random-from-to 100000 1000000)])
       (if (divisible? (sum-of-digits tal) delare)
           tal
           (make-simple-sv-num declare))))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41913609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档