" return japanese numeric string from 'num' function! s:num2ja(num) let str ="". a:num let len =len(str) if str ==0 return s:num[0][0] endif if len >=17*4+1 return s:dig[17][0] endif let n =0 let ret ="" whilen< len if str[n] !=0&&(str[n] !=1||(len-n)%4==1) let ret .= has_key(s:num[str[n]], len-n) ? \ s:num[str[n]][len-n] : s:num[str[n]][0] endif if str[n] !=0 let ret .= has_key(s:ndg[(len-n-1)%4], str[n]) ? \ s:ndg[(len-n-1)%4][str[n]] : s:ndg[(len-n-1)%4][0] let ret .= has_key(s:dig[(len-n-1)/4], str[n]) ? \ s:dig[(len-n-1)/4][str[n]] : s:dig[(len-n-1)/4][0] endif "echo ret let n =n+1 endwhile returnret endfunction
" generate array from 'start' to 'end' function! s:gen_array(start, end) let ret = [] let n = a:start whilen<= a:end calladd(ret, n) let n =n+1 endwhile returnret endfunction
fornin s:gen_array(1, 40) echo(!(n % 3)|| n =~'3') ? s:num2ja(n) : n endfor