반복이 세 기능이 반복 인터페이스를 구현하여 새로운 정의 유형을 달성 할 수 있습니다 start
, next
는줄리아 반복 : 시작은, 다음, 수행 부작용
done
나는에는 느낌표를 볼 수 없습니다 그 기능의 끝 그래서 julia 명명 규칙에 대한 나의 이해에서이 3 가지 기능은 그들의 주장을 수정하면 안된다. 특히이 두 루프는 동일한 출력을 제공해야합니다.
state = start(iter)
while !done(iter, state)
(i, state) = next(iter, state)
@show i
end
state = start(iter)
while !done(iter, state)
(other_i, other_state) = next(iter, state)
(i, state) = next(iter, state)
@show i
end
내가 잘못 했습니까? 나는이 것을 존중하지 않는 외부 줄리아 패키지의 일부 반복자에 부딪 혔기 때문에 물어 본다. 당신이 반복자를 다시 사용할 수 있습니다 아마도 때문에
일반적으로 iterator는 어쨌든 변경할 수 없어야합니다. iteration은 위험한 사업이므로 반복되는 내용을 변경하는 것이 중요합니다. 따라서 반복 함수를 사용하는 것은 의미가 없습니다. 이론적으로'next' 함수는받은'state' 객체를 변형시킬 수 있고 단순히 새로운 상태를 반환하기보다는 다시 반환 할 수 있기 때문에 이름에'!'가 없다고 생각합니다 실제로'state' 객체는 직접적으로 다루어 져서는 안되지만'for' 문과 마찬가지로'next'와 마찬가지로 내부적으로 처리됩니다. 그래서 아마도 부족합니다! 일관성을 위해서입니다. –
"불손한 행동"을 발견 한 패키지는 무엇입니까? : p –
설명해 주셔서 감사합니다. @ TaosPapastylianou. 꾸러미에 대해 걱정하지 마라, 그것은 고쳐질 것이다. –