0votos

Spotify, fecha de caducidad. en Haskell

por josejuan hace 6 años

También buscando el mínimo de entre las permutaciones.

Spotify presenta tres retos para quien quiera trabajar allí como programador. Uno de ellos es averiguar (pesimísticamente) la fecha de caducidad de un producto.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import Data.Time 
import Data.Maybe 
import Data.List 
import Data.List.Split 
 
 
caducidad = minDate.filter (not.isNothing).map toDate.permutations 
  where toDate (y:m:d:_) = fromGregorianValid (fromIntegral $ if y > 999 then y else 2000 + y) m d 
        minDate [] = Nothing 
        minDate xs = minimum xs 
 
 
caducidad' = caducidad . map read . splitOn "/" 
 
 
 
 
test1 = caducidad [2, 4, 67] 
test2 = caducidad [31, 9, 73] 
 
test1' = caducidad' "02/04/67" 
test2' = caducidad' "31/9/73" 

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.