Path: csiph.com!news.mixmin.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Patricia Ferreira Newsgroups: pt.comp.programacao Subject: Re: Lisp, um mapa de trajeto Date: Fri, 19 Jan 2024 08:38:33 -0300 Organization: A noiseless patient Spider Lines: 43 Message-ID: <87zfx1eeo6.fsf@example.com> References: <87ttni48z9.fsf@example.com> <87r0im428v.fsf@brilhante.top> <87edem3yds.fsf@example.com> <87edel4avz.fsf@brilhante.top> <874jfhvwb9.fsf@example.com> <87a5p83yxq.fsf@brilhante.top> <87mst8rpjj.fsf@example.com> <87o7dn3636.fsf@brilhante.top> <874jff1dbm.fsf@yaxenu.org> <87a5p638mt.fsf@brilhante.top> <87bk9mzg3b.fsf@example.com> <87bk9l9mki.fsf@brilhante.top> <87r0ign4zd.fsf@yaxenu.org> <87h6jcj6uh.fsf@brilhante.top> <87wms6khgu.fsf@yaxenu.org> <87cytyjzhb.fsf@brilhante.top> <87v87qike6.fsf@example.com> <874jfajvgc.fsf@brilhante.top> <878r4mfjiw.fsf@example.com> <87zfx1ip40.fsf@brilhante.top> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: dont-email.me; posting-host="c5fe725ff71a35acf8c120b4ec82df41"; logging-data="3281668"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/DeZQf+lFIb0/GPl8rKPrj2fe1l+Ooang=" Cancel-Lock: sha1:q4A69hBRzV0olCb8rgt1x7jrN9U= sha1:zz8u3bNjcDYOjFW+2ng1ezwd1kI= Xref: csiph.com pt.comp.programacao:181 Daniel Cerqueira writes: > Patricia Ferreira writes: > >> Eis uma tentativa pela receita HtDP. Um Vértice é um Símbolo. Um >> Vizinhos é uma lista de Símbolos. Um Grafo é um de >> >> - NIL >> - (cons Vértice Vizinhos) >> >> Por exemplo, >> >> NIL ou (list B E)) >> >> são Vizinhos. Já A, B, C, ... são Vértices. E, assim, >> >> ((A (B E)) >> (B (E F))) >> >> é um grafo. Precisamos de um procedimento neighbors que extrai os >> Vizinhos de um vértice. Como é trivial, usemos /assoc/: >> >> (defun neighbors (v g) (assoc v g)) > > Esta função "neighbors" está a confundir-me, porque, da maneira com que > está escrita, ela está a devolver a aresta mais o vértice (sendo v um > vértice e g um grafo). > > Verifica esta função e vê se está correta. > > Será que deveria ficar assim: > > (defun neighbors (v g) (cadr (assoc v g))) > > ? Perdão! Percebi isso depois de escrever o procedimento; atualizei o código e não postei pra você. Na verdade escrevi (defun vertex (v graph) (assoc v graph)) (defun neighbors (v graph) (cadr (vertex v graph))) Sua leitura está correta.