HN user

yoo-interested

9 karma
Posts0
Comments4
View on HN
No posts found.

This reminded me of gotchas one can fall to when defining some Lisp macro from scratch. So I decided to test whether rotatef works exactly like Python's multiple assignment:

  (let ((A (vector 2 1)))
    (rotatef (elt A
                  0)
             (elt A
                  (1- (elt A 0))))
    A)
It returns a changed vector as if indexes were saved.

I am not sure which should be considered the right behavior.

to no longer have functions be first class objects?

There are other dynamic languages with functions as first class objects which don't share the "mutable default arguments" gotcha.

But having said that, any change regarding this would break backward compatibility.

Speaking of find\_item, is the `for..else` loop (which can be used to write find\_item in another way) considered Pythonic? I personally like `for..else` loops but I don't know where the consensus is at.