i have been reading sbcl user manual , started wondering title question. lisps, example clojure, ban side effects can parallelize code. common lisp allows side effects , wondering if fact given function 'dirty' or 'clean' affects it's compilation.
for example in the cmucl compiler manual let optimizations show how, in many casesm use of 'let' bind new variable more efficient modifying 'setq'. guess i'm asking if similar done function calls.
i have read relevant sections of sbcl manual , poured through question on stackoverflow not find answer this.
short: not faster. slower.
long:
according stas boukarev sbcl-devel,
sbcl doesn't know function has no side effects, so, no. besides, of time having side effects optimal way.
i aware of fact functions such nreverse
, destructive, tend faster nondestructive functions (in case reverse
nondestructive version). come many setbacks. peter siebel put it:
each recycling function loaded gun pointed footward.
Comments
Post a Comment