方案全屋戳功能

时间:2015-05-07 01:48:54

标签: list scheme lisp racket

我试图在Scheme中定义一个函数来确定一个五元素列表是否包含一个完整的房子(也就是说,3个元素是相同的,另外两个是相同的)。虽然我搞砸了语法,但我的脑海中有一个轮廓。我正在尝试使用和尝试这样做。输入是一个列表(5个元素,编号1-13),输出是布尔值。以下是我到目前为止的情况:

if(s.getSid()== sG.getSid())

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

你很亲密 - 但首先要确保你理解 是一个完整的房子,以及在这种情况下使用布尔连接器的正确方法。试试这个:

(define is-full-house?
  (lambda (listy)
    (let ((sorted-list (sort listy <=)))
      (or
       (and
        (= (first sorted-list) (second sorted-list) (third sorted-list))
        (= (fourth sorted-list) (fifth sorted-list)))
       (and
        (= (first sorted-list) (second sorted-list))
        (= (third sorted-list) (fourth sorted-list) (fifth sorted-list)))))))