performance of let seems to be about O(n^2) for n bindings
bash script to reproduce
range="$1"
time guile --no-auto-compile <( printf "(let ("; for i in $(seq 0 $range); do printf "(foo%s
'bar)" $i; done; printf ") '())" )
$ ./let.sh 10000
real 0m1.059s
user 0m1.306s
sys 0m0.064s
$ ./let.sh 20000
real 0m3.901s
user 0m4.197s
sys 0m0.078s
$ ./let.sh 40000
real 0m14.955s
user 0m15.707s
sys 0m0.188s
$ ./let.sh 80000
./let.sh: line 2: 6182 Segmentation fault guile --no-auto-compile <( printf '(let ('; for i
in $(seq 0 $range); do printf '(foo%s '"'"'bar)' $i; done; printf ") '())" )
real 0m58.146s
user 0m59.156s
sys 0m0.326s