「最初の要素の反復のとき」、「最後の要素の反復のとき」に特別な処理をしたい、というのがよくあると思うんです。
最初/最後かわかる擬似変数を参照できるか、iter ブロック内で if みたいに書けるといい。と思う。
iter1 { if (first_of_iter) { "jemmy".p; } else { "alex".p; } } iter2 { "iter block top".p; first { "jemmy".p; } else { "alex".p; } //はじめの時は jemmy それ以外は alex と出力 //またブロックの途中でもOK "iter block bottom".p; } iter3 { first { "jemmy" } else { "alex" } .p; //値を返せると便利な気もするけれど、キモイかも(if も返さないし)。 }
本体ブロックの後ろに付けるのは、"first" でも後ろに書かないといけないわけでなんとなくいやだなぁ。
また、後ろにつける方式だと、イテレータブロック内の(はじめ|おわり)の固定位置にしか処理をいれられなくて不便な気がする。