以下是构建vl every函数的三种可选方法:
- ([color=BLUE]defun[/color] every1 ( prd ls1 ls2 )
- ([color=BLUE]or[/color] ([color=BLUE]not[/color] ls1) ([color=BLUE]not[/color] ls2)
- ([color=BLUE]and[/color] (prd ([color=BLUE]car[/color] ls1) ([color=BLUE]car[/color] ls2)) (every1 prd ([color=BLUE]cdr[/color] ls1) ([color=BLUE]cdr[/color] ls2)))
- )
- )
- ([color=BLUE]defun[/color] every2 ( prd ls1 ls2 )
- ([color=BLUE]apply[/color] '[color=BLUE]and[/color] ([color=BLUE]mapcar[/color] 'prd ls1 ls2))
- )
示例:
- _$ (vl-every '= '(1 2) '(1 2 3))
- T
- _$ (every1 = '(1 2) '(1 2 3))
- T
- _$ (every2 = '(1 2) '(1 2 3))
- T
- _$ (every3 = '(1 2) '(1 2 3))
- T
- _$ (vl-every '= '(1 2 4) '(1 2 3))
- nil
- _$ (every1 = '(1 2 4) '(1 2 3))
- nil
- _$ (every2 = '(1 2 4) '(1 2 3))
- nil
- _$ (every3 = '(1 2 4) '(1 2 3))
- nil
|