たるこさん
「最初の要素の反復のとき」、「最後の要素の反復のとき」に特別な処理をしたい、というのがよくあると思うんです。
最初/最後かわかる擬似変数を参照できるか、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" でも後ろに書かないといけないわけでなんとなくいやだなぁ。
また、後ろにつける方式だと、イテレータブロック内の(はじめ|おわり)の固定位置にしか処理をいれられなくて不便な気がする。