blob: 927396292fb0334b93384cd4062d95c506504367 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#!/usr/local/bin/apl --script --
⍝ Calculate frequency distribution of the characters/glyphs in a given number of input files.
⍝ This will be the input for monkey-test.apl.
Files ← 4↓⎕ARG
Data ← 19 ⎕CR ∊⎕FIO['read_file']¨Files
∇ Dist←GetDist Data; i; C
⍝Dist ← 38 ⌷CR ↑⍴Data ⍝ associative array
Dist.X ← 0
i ← 0
Loop:
C ← ,Data[i←i+1]
~∨/∊C=Dist[;1] →→ Dist[C] ← 0 ←←
Dist[C] ← Dist[C] + 1
→(i<⍴Data)/Loop
∇
Dist ← GetDist Data
Freq ← {Dist[⍵]}¨Dist[;1]
⎕ ← "Chars ←", ⎕UCS ∊Dist[;1][Sort←⍋Freq] ⍝ character codepoints
⎕ ← "Freq ←", Freq[Sort] ⍝ character frequencies
)OFF
|