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