2011/06/12

haskellのリストは便利

haskellのリストでは、閉区間の書き方がとても便利です。
1〜10のリストを作る場合、以下のように書きます。
ghci>[1,3..10]

間隔を指定する場合、以下のように書きます。この場合、3の間隔でリストが作られます。
ghci>[1,3..10]
[1,3,5,7,9]

せっかくなのでjsで実装。
var ci = function(arg) {
 argList = arg.split(".."),
 pivo = argList[0];

  // ,で区切られたデータからスタート値と間隔値を取り出す。
  if (pivo.length !== 1) {
   pivoList = pivo.split(",");
   pivo = pivoList[0];
   interval = pivoList[1] - pivo;
  } else {
   interval = 1;
  }
 pivo = parseInt(pivo);
 interval = parseInt(interval);
 for (len = argList[1]; pivo < len;pivo = pivo + interval) {
  console.log(pivo);
 }
};

con("1,3..10");