Letter frequency: Difference between revisions

added Ol
(added Ol)
Line 4,018:
@@ Hashtbl.fold (fun k v l -> (Text.of_uchar k,v) :: l) freq []
</lang>
 
=={{header|Ol}}==
<lang scheme>
(define source (bytes->string (file->bytestream "letter_frequency.scm"))) ; utf-8
(define dict (lfold (lambda (ff char)
(put ff char (+ 1 (get ff char 0))))
{}
(str-iter source)))
; that's all.
 
; just print the dictionary in human readable format:
(for-each (lambda (kv)
(let* ((key value kv))
(case key
(#\newline
(display "NEWLINE"))
(#\tab
(display "TAB"))
(#\space
(display "SPACE"))
((< key #\space) => (lambda (_)
(display "char ") (display key)))
(else
(display (string key))))
(display " --> ")
(display value))
(print))
(ff->alist dict))
</lang>
{{Out}}
<pre>NEWLINE --> 27
SPACE --> 374
" --> 12
# --> 5
' --> 1
( --> 37
) --> 37
* --> 1
+ --> 1
- --> 8
. --> 3
/ --> 4
0 --> 1
1 --> 1
8 --> 1
: --> 2
; --> 4
< --> 1
= --> 1
> --> 5
A --> 2
B --> 1
C --> 1
E --> 3
I --> 1
L --> 2
N --> 2
O --> 1
P --> 1
S --> 1
T --> 1
W --> 1
\ --> 4
_ --> 3
a --> 35
b --> 7
c --> 17
d --> 19
e --> 41
f --> 17
g --> 4
h --> 9
i --> 25
j --> 1
k --> 8
l --> 25
m --> 7
n --> 13
o --> 9
p --> 14
q --> 2
r --> 23
s --> 24
t --> 31
u --> 10
v --> 4
w --> 2
y --> 18
{ --> 1
} --> 1
</pre>
 
=={{header|OxygenBasic}}==