All pastes #2075014 Raw Edit

Something

public text v1 · immutable
#2075014 ·published 2011-06-05 11:26 UTC
rendered paste body
(defun groesser(ListA ListB)
    (while ( and  (equal (car ListA) (car ListB)) (eq (  or (eq (car ListA) nil)  (eq (car ListB) nil)   ) nil ) )	;Finde die erste Stelle, an der sich die beiden Listen unterscheiden, oder eine Liste leer ist
       (pop ListA)
       (pop ListB)
    )
    (if (eq (car ListA) nil)
        nil
        (if (listp (car ListA))
                (if (listp (car ListB))
                        (groesser (car ListA) (car ListB))
                        t 
                )
                (if (listp (car ListB) )  
                        (if ( eq (car ListB) nil)
                             t
                             nil
                        )
                        (if ( > (car ListA) (car ListB) )
                             t
                             nil
                        )
                )	
          )
     )
)

(defun kleiner(ListA ListB)
    (while ( and  (equal (car ListA) (car ListB)) (eq (  or (eq (car ListA) nil)  (eq (car ListB) nil)   ) nil ) )	;Finde die erste Stelle, an der sich die beiden Listen unterscheiden, oder eine Liste leer ist
       (pop ListA)
       (pop ListB)
    )
    (if (eq (car ListA) nil)
        (if (eq (car ListB) nil)
	        nil
	        t
	)
        (if (listp (car ListA))
                (if (listp (car ListB))
                        (kleiner (car ListA) (car ListB))
                        nil 
                )
                (if (listp (car ListB) )  
                        (if ( eq (car ListB) nil)
                             nil
                             t
                        )
                        (if ( < (car ListA) (car ListB) )
                             t
                             nil
                        )
                )	
          )
     )
)    


(defun gleich(ListA ListB)
    (while ( and  (equal (car ListA) (car ListB)) (eq (  or (eq (car ListA) nil)  (eq (car ListB) nil)   ) nil ) )	;Finde die erste Stelle, an der sich die beiden Listen unterscheiden, oder eine Liste leer ist
       (pop ListA)
       (pop ListB)
    )
    (if (eq (car ListA) (car ListB))
        t
        nil
    )  
)

(setq List1 '(1 2 3 (3 4 ) 3))
(setq List2 '(1 2 3 ( 3 4) 5))

(message "%S groesser %S  ist %S" List1 List2 (groesser List1 List2) )

(message "%S kleiner %S  ist %S" List1 List2 (kleiner List1 List2) )

(message "%S gleich %S  ist %S" List1 List2 (gleich List1 List2) )