-
Notifications
You must be signed in to change notification settings - Fork 0
/
plurale.rkt
37 lines (35 loc) · 1.19 KB
/
plurale.rkt
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
34
35
36
37
#lang Scheme
; Insieme di procedure che permettono di trovare il plurale di un nome a partire dalla sua forma al singolare.
; Per utilizzare il codice digitare (plurale "parola") nel terminale integrato in Racket.
(define chk-last ; val: booleano
(lambda (word) ; word: stringa
(char=?
(string-ref word (- (string-length word) 1))
#\o)
(char=?
(string-ref word (- (string-length word) 1))
#\e)
)
)
(define plurale-m ; val: stringa
(lambda (word) ; word: stringa
(string-append
(substring word 0 (- (string-length word) 1))
"i")
)
)
(define plurale-f ; val: stringa
(lambda (word) ; word; stringa
(string-append
(substring word 0 (- (string-length word) 1))
"e")
)
)
(define plurale ; val: stringa
(lambda (word) ; word: stringa
(if (chk-last word)
(plurale-m word)
(plurale-f word)
)
)
)