计划编程语言中的递增和递减运算符

 wang小资_588 发布于 2023-01-09 11:02

编程语言中有哪些incrementdecrement运算符scheme.我使用的是"Dr.Racket",它不接受-1+1+作为运营商.而且,我也尝试过incfdecf,但没有用.

2 个回答
  • 它们并不是这样定义的,因为Scheme和Racket试图避免变异; 但您可以自己轻松定义它们:

    (define-syntax incf
      (syntax-rules ()
        ((_ x)   (begin (set! x (+ x 1)) x))
        ((_ x n) (begin (set! x (+ x n)) x))))
    
    (define-syntax decf
      (syntax-rules ()
        ((_ x)   (incf x -1))
        ((_ x n) (incf x (- n)))))
    

    然后

    > (define v 0)
    > (incf v)
    1
    > v
    1
    > (decf v 2)
    -1
    > v
    -1
    

    请注意,这些是语法扩展(也称为宏)而不是普通过程,因为Scheme不通过引用传递参数.

    2023-01-09 11:04 回答
  • 您对"DrRacket"的引用有点暗示您在Racket中.根据这个,你可能已经有效利用#lang racket.无论哪种方式,你可能都在寻找add1sub1.

    -> (add1 3)
    4
    -> (sub1 3)
    2
    

    2023-01-09 11:06 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有