gpt4 book ai didi

functional-programming - 用 lambda 函数表示集合

转载 作者:行者123 更新时间:2023-12-04 04:39:34 24 4
gpt4 key购买 nike

我正在努力理解我真正需要做的事情,并且想要一些外部输入或一个很好的引用点。我被要求使用过程表示来“实现数字集”。每个集合将是一个单参数函数,它接受一个数字并决定该数字是否在集合中。我必须创建的一些函数(我读过的可以在一行中定义):

  • 一个函数,它返回一个将数字作为参数的函数,并检查该数字是否在集合中。
  • 返回 arg1 或 arg2 中所有元素的集合的联合函数
  • 以上的交函数
  • 返回 arg1 中的元素但不返回 arg2 中的元素的函数

  • 现在我知道这只是包含一个 lambda 函数,但我想我对如何表示一个集合并在 lambda 函数中检查它感到困惑?如果有人能指出我正确的方向,我将不胜感激。

    最佳答案

    您必须意识到 TODO 列表中的第一个函数是构造函数。我认为其余的都是从那里掉出来的。

    (define (make-set x) (lambda (y) (eq? x y)))
    (define (union x y) (lambda (z) (or (x z) (y z))))
    (define (intersection x y) (lambda (z) (and (x z) (y z))))
    (define (difference x y) (lambda (z) (and (x z) (not (y z)))))

    (define set-5 (make-set 5))
    (set-5 4)
    (set-5 5)

    (define set-45 (union (make-set 4) (make-set 5)))
    (set-45 3)
    (set-45 5)

    (define set-34 (union (make-set 3) (make-set 4)))

    (define set-4 (intersection set-34 set-45))
    (set-4 3)
    (set-4 5)
    (set-4 4)

    (define set-3 (difference set-34 set-45))
    (set-3 4)
    (set-3 5)
    (set-3 3)

    关于functional-programming - 用 lambda 函数表示集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19129413/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com