DartでmapIndexedなど作ってみた。
generatorは便利だね。TypeScriptにもあればいいのに
map_indexed.dart
Iterable<R> mapIndexed<T,R>(Iterable<T> list, R f(int index, T val)) sync*{
int i = 0;
for(T val in list){
yield f(i++, val);
}
}
map_notnull.dart
Iterable<R> mapNotNull<T,R>(Iterable<T> list, R f(T val)) sync*{
for(T val in list){
R result = f(val);
if(result != null){
yield result;
}
}
}
range.dart
Iterable<int> range(int size) sync* {
for(int i = 0; i < size; i++){
yield i;
}
}