0votos

Parentesis en Haskell

por josejuan hace 9 meses

A000108

Generar conjuntos de parentesis validos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-- Otra forma de verlo es como `rose tree` que son isomorfos a cada 
-- forma de agrupar los paréntesis, por ejemplo: 
-- 
--                     root 
--                    /    \ 
--                   /      \ 
--                  ()     ( ) 
--                  /\     /|\ 
--                 /  \   / | \ 
--                ()  () () () () 
--                          /\ 
--                         /  \ 
--                        ()  () 
-- 
-- es la agrupación "(()())(()(()())())" 
-- 
rec 0 = [""] 
rec n = ["(" ++ w ++ ")" ++ t | i <-[0 .. n-1], w <-rec i, t <-rec (n - i - 1)] 

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.