2014-10-22 7 views
10

В Clojure Core documentation for the 1.7 release - следующие функцииЧто такое преобразователь состояния?

dedupe 
disj! 
dissoc! 
filter 
keep 
map 
random-sample 
remove 
replace 
take-while 

имеют следующий текст в их описании API

Returns a transducer when no collection is provided. 

И следующие функции

drop 
keep-indexed 
partition-all 
partition-by 
take 
take-nth 

имеют следующий текст.

Returns a *stateful* transducer when no collection is provided. 

Кроме того, было this criticism of this wording.

enter image description here

Мой вопрос: Что такое Stateful преобразователь? т.е. то, что похоже на сгруппированные функции. (и именно по этой причине people say typing a transducer будет require dependent types?)

ответ

4

Состояние может храниться внутри преобразователей. Соответствующие слайды:

https://github.com/matthiasn/talk-transcripts/blob/master/Hickey_Rich/Transducers/00.34.26.jpg https://github.com/matthiasn/talk-transcripts/blob/master/Hickey_Rich/Transducers/00.36.36.jpg

Смотреть Богатые преобразователи говорить - https://www.youtube.com/watch?v=6mTbuzafcII

Смежные вопросы