返回两个输入的较长列表的Scheme函数

返回两个输入的较长列表的Scheme函数,scheme,Scheme,我想写一个函数,它接受两个列表参数并返回两个输入的较长列表。如果两个列表长度相等,则函数返回t;如果其中一个参数不是列表,则函数应返回f 运行示例: 较长的列表“1 2 3 4”a b c d e返回b c d e 较长的列表“d e f”4 5 6返回t或true 较长列表'g h i 3返回f或false 我该怎么做? 似乎你需要做一个案例分析。您需要检查其中一个参数是否不是列表并在那里返回f,如果不是,则需要获取两个列表的长度,以检查它们的长度是否相等,或者一个列表是否比另一个列表小。也许

我想写一个函数,它接受两个列表参数并返回两个输入的较长列表。如果两个列表长度相等,则函数返回t;如果其中一个参数不是列表,则函数应返回f

运行示例:

较长的列表“1 2 3 4”a b c d e返回b c d e 较长的列表“d e f”4 5 6返回t或true 较长列表'g h i 3返回f或false 我该怎么做?
似乎你需要做一个案例分析。您需要检查其中一个参数是否不是列表并在那里返回f,如果不是,则需要获取两个列表的长度,以检查它们的长度是否相等,或者一个列表是否比另一个列表小。也许是这样的

定义最长的lst1 lst2 如果检查其中一个参数是否不是列表 F 让len1 len2 cond=t;等长 < ; lst1比lst2短 否则>;lst2比lst1短
这看起来像是一项作业,所以我让你来填空。

我投票将这个问题作为离题题来结束,因为这本质上是一个要求代码的规范,没有试图解决显示的问题,也没有描述编程中的特殊问题。
(define (longer-list a b)
  (and (list? a)
       (list? b)
       (let ll ((aa a) (bb b))
         (cond
           ((and (null? aa) (null? bb)) #t)
           ((null? aa) b)
           ((null? bb) a)
           (else (ll (cdr aa) (cdr bb)))))))