引数を上書きできない

(define lis '(1 2 3))
(print lis)
(define lis (append lis '("test" "hello")))
(print lis)
(1 2 3)
(1 2 3 test hello)
(define (func lis)
  (print lis)
  )
(func '(1 2 3))
(1 2 3)


書き換えるとなぜかundefになる

(define (func lis)
  (define lis (append lis '("test" "hello")))
  (print lis)
  )
(func '(1 2 3))
gosh: "error": list required, but got #<undef>


別名なら良いらしい

(define (func lis)
  (define lis2 (append lis '("test" "hello")))
  (print lis2)
  )
(func '(1 2 3))
(1 2 3 test hello)


スクリプト言語に見えてアセンブラとしっかり対応させてある言語な気がしてきたcdrとかcarとかあるし。だから高速なのかな