球拍家庭作业的解决方案
solution for a homework in racket
我是球拍编程语言的新手。
我需要在 racket 中提供一个解决方案,但我写不出有用的东西。
问题:
定义一个 max-gap 函数,它消耗五个整数和 returns 任意两个整数(按它们出现的顺序)内的最大间隙(绝对值,即自然数)。例如,(max-gap 1 3 -1 1 1) 会 return 4. 你可能想使用 Racket 函数 max, abs.
输出例如:
(测试 (最大间隙 1 5 -1 6 22) => 16)
#lang racket
(require datalog)
(define mg-theory (make-theory))
(datalog mg-theory
(! (:- (max-gap-datalog A B C D E X)
(max A B C D E :- MX)
(min A B C D E :- MN)
(- MX MN :- X))))
(define (max-gap a b c d e)
(hash-ref (first
(datalog mg-theory
(? (max-gap-datalog a b c d e X)))) 'X))
示例:
> (max-gap 1 3 -1 1 1)
4
> (max-gap 1 5 -1 6 22)
23
如果您 post 进行了一些尝试,我会帮助您找到比这个更惯用的解决方案。
我是球拍编程语言的新手。 我需要在 racket 中提供一个解决方案,但我写不出有用的东西。
问题:
定义一个 max-gap 函数,它消耗五个整数和 returns 任意两个整数(按它们出现的顺序)内的最大间隙(绝对值,即自然数)。例如,(max-gap 1 3 -1 1 1) 会 return 4. 你可能想使用 Racket 函数 max, abs.
输出例如:
(测试 (最大间隙 1 5 -1 6 22) => 16)
#lang racket
(require datalog)
(define mg-theory (make-theory))
(datalog mg-theory
(! (:- (max-gap-datalog A B C D E X)
(max A B C D E :- MX)
(min A B C D E :- MN)
(- MX MN :- X))))
(define (max-gap a b c d e)
(hash-ref (first
(datalog mg-theory
(? (max-gap-datalog a b c d e X)))) 'X))
示例:
> (max-gap 1 3 -1 1 1)
4
> (max-gap 1 5 -1 6 22)
23
如果您 post 进行了一些尝试,我会帮助您找到比这个更惯用的解决方案。