2011-09-11 9 views

答えて

17
while doWork() then 

thenを使ったトリックに

+14

それとも、読みやすくするために、いくつかのバイトを交換して喜んでいる場合、私はdoWorkは() 'になりながら'続けると思いますそれを明瞭に書く方法。 –

+0

'( - >)'をノーオペレーションとして使っています。これは最短のものですから、 '( - >)doWork()'を実行します。 –

+0

@トレヴァー私は、あなたの提案が信じられないほど読みやすく(構文的に)、驚くほど暗く(意味的に)どうか驚いています。私はそれがAaronのコメントなしでどのように動作するかは決して理解できません:)(しかし、それは本当に美しいイディオムであり、私はそれを喜んで回答として投稿します)。 – brandizzi

2

を行う必要があり、それが明示的に(この場合は空の)身体から条件を分離するためのものですので、おそらく標準的なソリューションです。別の方法としては、私はまた、continue while doWork()ソリューションのよう

#はエラーとしてフラグを立てるからの強調表示vimのシンタックスを保つ)

while doWork() 
    ;# 

を書くことができますが、私は強く、コメントで述べたexpression while doWork()の他のフォームに対して助言しますこれは、関数の最後のステートメントであるときには、リストのコンストラクタになりますので、:

_results = []; 
while (doWork()) { 
    _results.push(expression); 
} 
return _results; 
関連する問題