(
(lambda (x y z) (+ x y z))
1 2 3)
(
(lambda (<variable 1> <variable 2>)
<body>)
<expression 1>
<expression 2>
)
In this form we are essentially binding the values 1, 2, 3 to `x, y, & z` and this is so useful in other lisp dialects a function is associated with the construct called `LET`.(let ((<variable 1> <expression 1>)
(<variable 2> <expression 2>))
<body>
)
(defun;;{$N}
str_pathtemp
( / rr e f k) (asserte "A131")
(setq;|a8424|;
rr nil
f (dfn_var_isstr (getenv "TEMP"))) (if (and (not rr) f) (setq;|a8533|;
rr f)) (setq;|a8563|;
f (if (not f) (dfn_var_isstr (getenv "TMP")) f)) (if (and (not rr) f) (setq;|a8674|;
rr f)) (setq;|a8706|;
f (dfn_var_isstr (getvar "TEMPPREFIX"))
f (if (not f) (dfn_var_isstr (getenv "TMP")) f)) (setq;|a8835|;
f (dfn_var_isstr (getvar "XLOADPATH"))
f (if (not f) (dfn_var_isstr (getenv "TMP")) f)) (if (= rr nil) (setq;|a8989|;
rr "")) (setq;|a9019|;
k (strlen rr)) (if (> k 2) (progn (while (and (> k 1) (= (substr rr k 1) " ")) (setq;|a9169|;
rr (substr rr 1 (- k 1)))) (progn (while (and (> k 1) (wcmatch rr "*[\\]*")) (if (= (substr rr k 1) "\\") (setq;|a9369|;
rr (strcat (substr rr 1 (- k 1)) "/" (substr rr (+ k 1))))) (setq;|a9505|;
k (- k 1)))) (setq;|a9549|;
c (substr rr (strlen rr))) (if (/= c "/") (setq;|a9630|;
rr (strcat rr "/"))))) rr)
:wink:(Defun str_pathtemp ( / rr e f k) (setq rr nil)
(
(lambda (f)
(if (and (= rr nil) (dfn_var_isstr (getenv f))) (setq rr f))
)
"TEMP" "TMP" "TEMPPREFIX" "XLOADPATH" )
)
(setq
k (strlen rr)) (if (> k 2) (progn (while (and (> k 1) (= (substr rr k 1) " ")) (setq;|a9169|;
rr (substr rr 1 (- k 1)))) (progn (while (and (> k 1) (wcmatch rr "*[\\]*")) (if (= (substr rr k 1) "\\") (setq;|a9369|;
rr (strcat (substr rr 1 (- k 1)) "/" (substr rr (+ k 1))))) (setq;|a9505|;
k (- k 1)))) (setq;|a9549|;
c (substr rr (strlen rr))) (if (/= c "/") (setq;|a9630|;
rr (strcat rr "/"))))) rr)
:wink: