我是球拍编程语言的新手。 我需要在球拍中提供一个解决方案但我无法写出有效的东西。
问题:
定义一个消耗五个整数的max-gap函数,并返回任意两个(按照它们出现的顺序)中的最大间隙(绝对值,即自然数)。例如,(max-gap 1 3 -1 1 1)将返回4.您可能希望使用Racket函数max,abs。
输出例如:
(test(max-gap 1 5 -1 6 22)=> 16)
答案 0 :(得分:1)
#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
如果您发布了一些您已经做过的尝试,我会帮助您找到一个比这个更惯用的解决方案。