forも明示的な加算も使わずに「1から100まで出力する」
1から100までforを使わずに、さらに明示的な加算も使わずに表示するもの、自分で思いついたバージョンを書いておく。非同期である。
var INTERVAL = 1000; var d = Date.now(); var tid = setInterval(function () { var n = (Date.now() - d) / INTERVAL | 0; console.log(n); if (n == 100) clearInterval(tid); }, INTERVAL);
自分の環境ではINTERVALは700まで安定的に動作した。テストを書いたので、自分の環境で正常に動作する範囲をテストしたい場合、下記のコードを使うと良い。node hundred.js>output.txt
などのようにしておいてcat output.txt|./test.zsh
としてSuccessが表示されれば動いている。
#!/bin/zsh I=1 while read -r LINE do if [ $LINE -ne $I ] then echo "Failed: $LINE should be $I" exit 1 fi I=$(($I + 1)) if [ $LINE -eq "100" ] then break fi done; read -r LINE if [ $LINE ] then echo "Failed: Too many lines" exit 1 fi echo "Success"
参考: