1votos

Matriz Caracol en Haskell

por AverageUser hace 1 año

Matriz caracol en Haskell.

em java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import Data.List 
import Control.Applicative 
 
acu = tail . reverse . concat . map (replicate 2) . enumFromTo 1 
val = cycle . ((++) <$> map id <*> map negate) . (1 :) . (: []) 
grado = map snd . sort . flip zip [1..] 
replicas = grado . scanl1 (+) . concat . map (uncurry replicate) . (zip <$> acu <*> val) 
partes = (<*>) take $ (.) <$> (map . take) <*> (iterate . drop) <*> replicas 
caracol = (>> return ()) . mapM (putStrLn . intercalate " " . map show) . partes 
 
{- 
 
caracol 3 
 
1 2 3 
8 9 4 
7 6 5 
 
-} 

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.