P: como posso converter uma lista de 2 itens em uma cons
célula de par pontilhado ?
Posso converter uma lista de 2 itens em um par pontilhado com:
(let ((list '(1 2)))
(cons (car list) (cadr list))) ; => (1 . 2)
Estou apagando: existe uma função interna que faz isso ou devo executar a minha própria?
'(1 2)
, sua saída como'(1 . 2)
e ela sugerirá(apply #'cons '(1 2))
para você!Respostas:
cons
faz uma célula contras com dois argumentos.apply
usa uma lista como argumentos para uma função. Quando seus poderes se combinam:(apply #'cons x)
converte uma lista de dois elementos em uma célula de contras (sem ter que bisbilhotar dentro da lista) e gera um erro se a lista não for longa.fonte