blob: 3984d44f2ad70a8efb0817c6a68ecbca5749bd06 (
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
|