【发布时间】:2010-03-04 11:13:19
【问题描述】:
考虑一下Chez Scheme 代码:
(进口(chezscheme)) (define (list-enumerate ls val proc) (让循环 ((ls ls) (return?#f) (val val)) (如果(或(null?ls) 返回?) 值 (带值调用(lambda()(proc val(car ls))) (lambda (return?val) (循环(cdr ls)返回?val)))))) (定义(列表索引 ls proc) (列表枚举ls 0 (拉姆达(我 elt) (如果 (proc elt) (值#t i) (值 #f (+ i 1)))))) (定义 n 100000) (定义数据(iota n)) (时间(列表索引数据(lambda (elt) (= elt (- n 1)))))运行它:
~ $ 方案 --script ~/scratch/_list-enumerate-allocation-test-chez-a.sps (时间(列表索引数据...)) 没有收藏 3 毫秒经过的 CPU 时间 4 毫秒经过的实时时间 分配了 8 个字节哇,它报告说只分配了 8 个字节。
让我们使用--program 选项而不是--script 再次运行它:
哎呀,分配了 800000 字节。
有什么区别?
埃德
【问题讨论】:
标签: scheme chez-scheme