1樓:「已登出」
varStream
=function
(first
,compute_rest
,empty
)this
.first
=first
;this
._compute_rest
=compute_rest
;this
.empty
=empty
;this
._rest
=null
;this
._computed
=false
;return
this;};
Stream
.prototype
.rest
=function
()return
this
._rest;};
Stream
.empty
=new
Stream
(null
,null
,true
);var
MapStream
=function(fn
,stream
)var
ComputeRest
=function
();return
newStream(fn
(stream
.first
),ComputeRest
);};
// Test
vars
=new
Stream(1
,function
());
console
.log(s
.first
);console
.log(s
.rest
().first
);vars1=
MapStream
(function(x
),s);console
.log(s1
.first
);console
.log(s1
.rest
().first
);試試這種寫法
來自於 http://
www-inst.eecs.berkeley.edu/~cs61a/sp12/book/streams.html
2樓:luchy
function
cons(x
,y)else}}
function
car(p)
function
cdr(p)
function
cons_stream(x
,y,args
)var
car_stream
=car
;function
cdr_stream(p
)function
delayed(y
,args);}
function
enumerate
(start
,end
)return
cons_stream
(start
,enumerate,[
start+1
,end
]);}
function
starting_from
(start
)function
stream_map
(stream,op
)return
cons_stream(op
(car_stream
(stream
)),stream_map
,[cdr_stream
(stream
),op
]);}
function
stream_filter
(stream
,filter
)else
}function
filter(x
)vars=
stream_map
(stream_filter
(starting_from(10
),filter
),function(x
));vari=4
;while(i
-->0)
參考了下答案,實現了delay,並最後做成了無窮流
javascript中多維陣列如何實現扁平化處理,並將特殊字元 正常轉換?
微笑 console.log JSON.parse JSON.stringify 1,3,4 replace g,用手機碼的真是麻煩,思路就是都轉換成字串操作,然後再轉換回來。匹配空資料可以再repace下 JSON.parse JSON.stringify 13,4 replace g,empty...
在javascript中,能否實現訪問a b時,自動返回a get b 的結果?
Gaubee 以前開發MVVM框架的時候遇到過這種需求,比如a是乙個空屬性值的物件 進行以下操作 model.get a.b.1.c 返回undefined,model.set a.b.1.c 3 會進行自動建立值並把3正確地賦值到c屬性上面。其中遇到1這種數字時,自動建值會把b建立成array。後...
JavaScript 如何完整實現深度Clone物件?
曹上 deep copy深拷貝 vardeepCopy function obj for leti 0 i keys length i else return newObject 我試著寫了乙個,不知道給不給力。 李雪強 似乎是個哲學問題,到底能不能造出兩片相同的葉子,似乎很簡單,但是如果兩片葉子要...