Olá, Paulo, é interessante o seu ponto. Agora que me ocorreu que uma das dificuldades em Lisp se trata da forma como você resolve o problema: por partes, do mais simples ao mais complexo, da mesma forma que você faz no papel ou na cabeça.
Isso lembra aquele problema apresentado nessa lista a uns dias atrás onde o usuário estava esboçando código em C e ele fazia as manipulações nas listas na marra, elemento a elemento. No meu raciocínio, para cada lista numa lista de listas eu tinha que verificar se o 1o elemento batia com um 1o elemento fixado e remover essas ocorrências da lista original, então o que eu fiz foi o mais natural: (remove elemento listas :key #'car). Agora, em C, a sua forma de pensar muda: você não tenta encapsular esse passo em uma única chamada de função porque é muito complicado sem funções e sem macros. Ao invés disso você prefere fazer um for para ir removendo manualmente as listas. Ou seja: você perde tempo fazendo o que você já sabe fazer, alongando o código e dificultando seu próprio raciocínio frente ao problema. Na minha opinião, a única coisa legal de se fazer em baixo nível é uma base que você encapsula e transforma em alto nível, por exemplo ao usar o cffi para criar uma biblioteca baseada numa biblioteca em C, ou ao fazer uma coisa parecida com o spartns. Claro, desde que você possa usar funções de alto nível para isso ;) Gustavo Em 10 de agosto de 2010 16:11, Paulo Jabardo <[email protected]>escreveu: > Eu não acho que o problema seja IDE ou coisas do tipo. Nem mesmo qualidade > de aluno e professor. Eu brinco com lisp de vez em quando e eu acho os > conceitos da linguagem geniais. Um monte delas foram apropriadas por > linguagens como Python e as macros só lisp tem mesmo. Eu acho que a grande > dificuldade é que programar bem em lisp exige uma certa maturidade do > programador. Há alguns anos eu resolvi dar uma olhada em Ruby. Em uma tarde > eu podia fazer praticamente de tudo. No lisp eu levei muito mais tempo. Em > python você pode simplesmente jogar uma variável nova no meio da função e > aos trancos e barrancos fazer o programa. O lisp, com os lets da vida, não > incentiva isto, o que é bom, mas exige maturidade. Tem um monte de coisas > assim que eu acho que dificulta a entrada de programadores inexperientes. > > Uma outra coisa que eu, como admirador de lisp mas não programador no dia a > dia, sentia (e sinto às vezes) é certa dificuldade na leitura de código. De > onde vem isso? Não tenho certeza, mas certamente não tem nada a ver com os > parênteses. Talvez seja a facilidade de criar novas abstrações e abstrações > diferentes (macros por exemplo) o que faz que seja necessário ver além do > código imediatamente a sua frente: o que é esta macro que aparece aqui? É > uma macro ou uma função e o que faz? Onde está definida? As limitações de > outras linguagens eliminam este tipo de problema: o que você vê é o que há e > não é muito complicado (em geral...). É lógico que mais para frente estas > abstrações facilitam muito mas para alguém começando com lisp é extremamente > intimidador. > > As conseqüências destes aspectos é que em geral um código em lisp possui > funções (ou "blocos de código") bem menores o que a longo prazo é muito bom > mas para iniciante é um pouco complicado. Esta foi minha experiência > começando com lisp e acho que seja um aspecto importante da falta de > popularidade do lisp. > -- You received this message because you are subscribed to the Google Groups "Lisp-br" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/lisp-br?hl=en.
