Leia com atenção as instruções abaixo.
Valor: 2,0 pontos na 3ª Nota.
Data da Entrega Limite: 12/02/2022
Coloque a resposta na pasta atividades/atividade16 do repositório.
Altere o programa findlinks.go para que percorra a lista ligada n.FirstChild usando chamadas recursivas a visit no lugar de um laço. Ou seja, considerando o laço abaixo:
for c:= n.FirstChild; c != nil; c = c.NextSibling {
links = visit(links, c)
}
O mesmo deve substituído por código que chame visit com parâmetros que garantam o mesmo efeito da versão com o laço.
Faça um programa chamado expand.go que tenha uma função com a seguinte assinatura:
expand(s string, f func(string) string) string
Essa função deve substituir cada substring $foo em s pelo texto devolvido por f("foo"). No seu programa, invoque a função passando o valor do primeiro argumento da linha de comando, que é uma string, e uma função chamada joker, definida da seguinte forma:
func joker(s string) string {
return "HaHAhAhAhaHA " + s
}
$ go run expand.go "O nome da disciplina é $LIP"
"O nome da disciplina é HaHAhAhAhaHA LIP"
$ go run expand.go "Campus $da UFC em $Quixadá"
"Campus HaHAhAhAhaHA da UFC em HaHAhAhAhaHA Quixadá"