blob: d5ccebbdcb55248380ba60799072f167df33aa62 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
(define split-words
(command #:inputs text
#:run "tr" "--complement" "--squeeze-repeats" "A-Za-z" "\\n"
#:stdin text
#:outputs (words #:type stdout)))
(define downcase
(command #:inputs words
#:run "tr" "A-Z" "a-z"
#:stdin words
#:outputs (downcased-words #:type stdout)))
(define sort
(command #:inputs words
#:run "sort" "--unique"
#:stdin words
#:outputs (sorted #:type stdout)))
(define find-misspellings
(command #:inputs words dictionary
#:run "comm" "-23" words dictionary
#:outputs (misspellings #:type stdout)
#:stdout "misspelt-words"))
(workflow (text-file dictionary)
(pipe (tee (pipe (split-words #:text text-file)
(downcase #:words words)
(sort (sort-words) #:words downcased-words)
(rename #:sorted-words sorted))
(pipe (sort (sort-dictionary) #:words dictionary)
(rename #:sorted-dictionary sorted)))
(find-misspellings #:words sorted-words
#:dictionary sorted-dictionary)))
|