ConsWorld

Este mundo permite que você experimente com listas recursivas, pois ele foi introduzido primeiro em Lisp. É muito similar ao BatWorld, mas você deve escrever funções recursivas que funcionem em [!python|java]strings recursivas. pois [!thelang] não fornece tal contrução nativamente, o ConsWorld define listas recursivas do tipo RecList.[/!] [!scala]listas de inteiros (List[Int]).[/!]

Qualquer lista dada é ou a lista vazia (noted [!scala]Nil[/!][!java]null[/!][!python]None[/!]), ou um inteiro seguido de uma lista. Se uma lista não é vazia, você pode recuperar seu primeiro inteiro com list.head e a lista contendo os demais parâmetros com list.tail. Obviamente, a lista vazia não tem head nem tail, portanto, tentar acessar estes elementos vai resultar numa mensagem de erro (desagradável).

Para construir sua própria lista, você precisa concatenar um head e um tail como segue: [!java|python]cons(head, tail)[/!] [!scala]head::tail Observe que :: é um operador genérico em Scala para construir listas.[/!]

Logo, resumindo, você pode resolver cada exercício desta lição com as seguintes construções.