Forum huvudsida -> Programmering -> LISP
Sidor: 1
DemonicDM | 17:11 - 9:e December 2007 | Post #1 | |
Medlem Inlägg: 10 Skicka PM |
Hej. Behöver en enkel rekursiv funktion som ska jämföra elementerna i en lista och returnerar resultat om den hittar bara 2 element med samma värde listan innehåller ((1 2) (6 7) (3 4) (1 2)) alltså resultatet ska bli (1 2). ps antigen med equal eller intersection eller bättre förslag. mvh Demon. |
Independence | 17:15 - 9:e December 2007 | Post #2 | |
Administratör Inlägg: 1800 Skicka PM |
Skoluppgift? ------------------------- Vi är riddarna som säger fiskbulle! |
DemonicDM | 17:21 - 9:e December 2007 | Post #3 | |
Medlem Inlägg: 10 Skicka PM |
Jag som blev glad att det har kommit något svar.. svaret: ja och nej. har du något bra lösning? mvh demon |
Fasting | 17:23 - 9:e December 2007 | Post #4 | |
Medlem Inlägg: 121 Skicka PM |
Vill inte göra uppgiften åt dig men kan iaf säga att det borde vara dubbelrekursion du använder dig av. Dock exakt mer hur det ska skrivas vågar jag mig inte på eftersom då lär alla mardrömmar om LISPen dyka upp igen ------------------------- Efter att ni har läst det här har ni insett att det inte gav något. |
Independence | 17:24 - 9:e December 2007 | Post #5 | |
Administratör Inlägg: 1800 Skicka PM |
Du får nog förklara problemet lite bättre, och om det är en skoluppgift är nog lite "pointers" bättre än en fullständigt lösning ------------------------- Vi är riddarna som säger fiskbulle! |
DemonicDM | 17:32 - 9:e December 2007 | Post #6 | |
Medlem Inlägg: 10 Skicka PM |
Det här är inget skolarbete. egentligen vill jag ha en rekursiv funktion som hanterar listor med hjälp av intersection. intersection tar emot 2 listor dock vill jag att använda bara en lista med olika positioner. nth n alltså. här har vi en lista ((1 2) (6 7) (3 4) (1 2)) med 4 element (1 2) är en element. funktionen skall börja med (1 2) och kolla om det finns en till (1 2) och så vidare och samma sak med resten av elementerna behöver jag förklara mer? mvh demon |
Fasting | 18:29 - 9:e December 2007 | Post #7 | |
Medlem Inlägg: 121 Skicka PM |
typ som en loop i en loop.
Hur man gör det i lisp är en anna sak dock ------------------------- Efter att ni har läst det här har ni insett att det inte gav något. |
FunkyChicken | 18:34 - 9:e December 2007 | Post #8 | |
Nyhetsredaktör Inlägg: 800 Skicka PM |
Inte en skoluppgift, hur menar du nu? Skriver du lisp... frivilligt? |
DemonicDM | 18:35 - 9:e December 2007 | Post #9 | |
Medlem Inlägg: 10 Skicka PM |
hej. tack.. men jag har redan skrivt en kod med loop, men som jag skrev tidigare, det ska vara rekursiv funktion. edit: Projektarbete dock ej skolarbete - ej frivilligt. Senast redigerad 19:12 - 9:e December 2007 |
HärJ | 21:15 - 9:e December 2007 | Post #10 | |
Moderator Inlägg: 1198 Skicka PM |
Citat av FunkyChicken:Inte en skoluppgift, hur menar du nu? klart man skriver lisp frivilligt Tycker fastings lösning verkar bra. Varför måste den vara rekursiv? ------------------------- Tänk om jag vore en skalärprodukt! |
DemonicDM | 21:28 - 9:e December 2007 | Post #11 | |
Medlem Inlägg: 10 Skicka PM |
Bättre och mer läsbart kod om det är rekursiv. så blir något hjälp?. |
DemonicDM | 16:05 - 12:a December 2007 | Post #12 | |
Medlem Inlägg: 10 Skicka PM |
Problem fixat. koden blev fullt med loopar istället. tack för all goda tips.. NOT. Länge leve LISP, Hell no. mvh demon |
viblo | 19:28 - 12:a December 2007 | Post #13 | |
Medlem Inlägg: 25 Skicka PM |
Jag kan inte lisp, men något liknande det här borde funka om du gör om det till riktig lispkod: Såhär kan man skriva i haskell: f (x:[]) = False f (x:y:xs) = f'' (x:xs) or f (y:xs) f'' x:[] = False f'' (x:y:xs) = if x == y then True else f'' (x:xs) Och i lisp blir det väl något liknande det här: (deffun f (x) (if length(x) > 1 (or (f2 (list (first x) (rest(rest x)))) (f (list (first(rest x)) (rest(rest x))) ) ) (deffun f2 (x) osv... Inte det bästa sättet o göra det på kanske, men iaf rekursivt ------------------------- Ingen signatur! |
DemonicDM | 20:22 - 12:a December 2007 | Post #14 | |
Medlem Inlägg: 10 Skicka PM |
tack, det var snällt av dig mvh demon. |
Sidor: 1
Forum huvudsida -> Programmering -> LISP
Du får inte posta i den här tråden | Till toppen
Datum
2024-12-23 13:36
Vecka: 52
Besökare
Inloggade: 0
Gäster: 605
Medlemmar
Medlemmar: 53576
Forum
Senaste inlägget: HAHA MÄNNISKAN LEVER ÄN (13:45 - 18:e Januari 2019, av Hetzz)
Wiki
Senaste ändringen:
3D (rev: 1, tid: 09:40 - 13:e November 2015)
Chatt
#blinkenlights @ Libera.Chat
Gratis shellkonton för IRC, webbsidor mm.