Lisp 单打拍子(口齿不清)

Lisp 单打拍子(口齿不清),lisp,racket,Lisp,Racket,星期二我有作业要做。是关于球拍的。我必须开发一个程序,可以知道在列表中它是否是单例。 我被困住了,所以我请求你帮助我 谢谢大家 (if (pair? l) (if (pair? (cdr l)) #f #t)) #f #t ) 如果一个列表包含一个元素,那么它就是一个单例列表,所以如果我们检查一下: 对象是一对 其cdr为null 像这样: (and (pair? l) (n

星期二我有作业要做。是关于球拍的。我必须开发一个程序,可以知道在列表中它是否是单例。 我被困住了,所以我请求你帮助我

谢谢大家

  (if (pair? l)
      (if (pair? (cdr l))
                 #f
                 #t))
      #f
      #t
      )

如果一个列表包含一个元素,那么它就是一个单例列表,所以如果我们检查一下:

  • 对象是一对
  • cdr
    null
  • 像这样:

    (and (pair? l) (null? (cdr l)))
    

    (配对)(cdr l)#f#t)
    ,配对?不取3个参数;同样,if不带4个参数Sok,但看代码,它不带3个参数(if(pair?(cdr l))最外层的if有问题,我以为它有4个参数,但实际上右括号太早了。请重新格式化并缩进代码。