А если отключить xon/xoff (stty -ixon), то можно наряду с ctrl+r использовать ctrl+s для поиска вперед.
Удобно когда при обратном поиске случайно пролистаешь команду, то можно вернуться.
Бывает нужно вызвать из datastep/sql другую процедуру. Это как раз можно сделать через связку proc fcmp + macro через функцию run_macro. Например:
%macro test_macro;
proc sql noprint;
select count(*), sum(height) into :cnt, :hght from sashelp.class
where age <= (select age from sashelp.class where name = &name);
quit;
%mend;
Аналогичная ситуация сейчас с SAS и WPS.
Но здесь я полностью на стороне SAS — язык все-таки узко специализированный и придуманный компанией для своих определенных целей, а WPS просто решили взять все их разработки за долгие годы и на этом нажиться.
Интересно как вы это узнали если даже сотрудники SAS не знали
Удобно когда при обратном поиске случайно пролистаешь команду, то можно вернуться.
%macro test_macro;
proc sql noprint;
select count(*), sum(height) into :cnt, :hght from sashelp.class
where age <= (select age from sashelp.class where name = &name);
quit;
%mend;
proc fcmp outlib=work.func.test;
subroutine test_func(name $, cnt, hght);
outargs cnt, hght;
rc=run_macro('test_macro', name, cnt, hght);
endsub;
run;
options cmplib=work.func;
data test;
set sashelp.class(keep=name);
call missing(count, hight_sum);
call test_func(name, count, hight_sum);
run;
format t 12.6;
t=time();
val=262146;
do i=val-1 to 1 by -1;
d=val/i;
if int(d) = d then
do;
t=time()-t;
put i= t=;
stop;
end;
end;
run;
Его вон с Петриком можно в один ряд.
Но здесь я полностью на стороне SAS — язык все-таки узко специализированный и придуманный компанией для своих определенных целей, а WPS просто решили взять все их разработки за долгие годы и на этом нажиться.