add pic_list_ref

This commit is contained in:
Yuichi Nishiwaki 2014-01-20 16:43:54 +09:00
parent 78420ef042
commit 293fef5235
2 changed files with 11 additions and 0 deletions

View File

@ -29,6 +29,8 @@ pic_value pic_cadr(pic_state *, pic_value);
pic_value pic_cdar(pic_state *, pic_value);
pic_value pic_cddr(pic_state *, pic_value);
pic_value pic_list_ref(pic_state *, pic_value, int);
#if defined(__cplusplus)
}
#endif

View File

@ -180,6 +180,15 @@ pic_cddr(pic_state *pic, pic_value v)
return pic_cdr(pic, pic_cdr(pic, v));
}
pic_value
pic_list_ref(pic_state *pic, pic_value list, int i)
{
while (i-- > 0) {
list = pic_cdr(pic, list);
}
return pic_car(pic, list);
}
static pic_value
pic_pair_pair_p(pic_state *pic)
{