2015-05-10 3 views

ответ

2

Реализация псевдонимов списка может не использовать макросы. Вот пример FPR, как реализовать нужные попы из индексного метода псевдо:

define <my_n_pop'exp> "<list'exp>[ ].[ ]pop_index[ ]\(<num'exp>\)" as { 


evaluate typeof_item(<list'exp>) { 
    if(<list'exp>.size()> <num'exp>) { 
     value = <list'exp>[<num'exp>]; 
     <list'exp>.delete(<num'exp>); 
    }else { 
     error("error : This list is has the size of ",<list'exp>.size(),"and you requested item",<num'exp>); 
    }; 
    }; 
}; 

Использования внутри кода будет выглядеть примерно так:

i=l.pop_index(2); // pop the item with index 2. All greater indices will decrease by 1. 
+0

На самом деле, с помощью этого макроса вы получите хорошее сообщение об ошибке, если вы попытаетесь использовать его с чем-то, что не является списком. В нем говорится, что «выражение» i «не является списком» и указывает как макрос, так и исходную строку, в которой используется макрос. –