23 lines
799 B
Text
23 lines
799 B
Text
* # Sort letters of word
|
|
define('sortw(str)a,i,j') :(sortw_end)
|
|
sortw a = array(size(str))
|
|
sw1 i = i + 1; str len(1) . a<i> = :s(sw1)
|
|
a = sort(a)
|
|
sw2 j = j + 1; sortw = sortw a<j> :s(sw2)f(return)
|
|
sortw_end
|
|
|
|
* # Count words in string
|
|
define('countw(str)') :(countw_end)
|
|
countw str break(' ') span(' ') = :f(return)
|
|
countw = countw + 1 :(countw)
|
|
countw_end
|
|
|
|
ana = table()
|
|
L1 wrd = input :f(L2) ;* unixdict.txt from stdin
|
|
sw = sortw(wrd); ana<sw> = ana<sw> wrd ' '
|
|
cw = countw(ana<sw>); max = gt(cw,max) cw
|
|
i = i + 1; terminal = eq(remdr(i,1000),0) wrd :(L1)
|
|
L2 kv = convert(ana,'array')
|
|
L3 j = j + 1; key = kv<j,1>; val = kv<j,2> :f(end)
|
|
output = eq(countw(val),max) key ': ' val :(L3)
|
|
end
|