• Opret dig
  • Glemt adgangskode

User account menu

  • Artikler
  • Forside
  • Forum
  • Nyheder
  • Log ind
Hjem
LinuxIN.dk

Snak med

Opret dig!

Af Looop | 30.04.2010 19:37

Petite Chez Scheme: Har en zip og unzip metod som skal gøres hurtiger.

Programmering
Okay måske et lidt underligt programmerings sprog, men jeg kan faktisk godt lide det, til simpelt arbejde.
Men nu er jeg sku kommet i problemer, jeg har de her metoder:

(define zip
(lambda (a b)
(if (and (list? a) (list? b))
(if (equal? (length a) (length b))
(if(zero? (length a)) '()
(cons (cons (car a) (car b)) (zip (cdr a) (cdr b))))))))

(Define unzip
(lambda (a) ;;; The reason for only 1 lambda need is because we are splliting one list of pairs not two
(if (list? a)
(if (null? a) '(() ()) ;;; If ther exist no a then return to list, both containg the empty list
(list (cons (caar a) (car (unzip (cdr a))))
(cons (cdar a) (cadr (unzip (cdr a)))))))))

Begge metoder kører i O(n^3), men så vidt jeg kan regne ud skulle det kunne gøres i O(n) tid, men jeg ved ikke helt hvordan det skal kunne gøres.
Dog har jeg en ide om at det skal kunne gøres med en letrec metode, men jeg er ikke helt klar over hvordan det skal gøres, for det er jeg stadig ved at lærer.
Så er der nogen som kan hjælpe med det ?
  • Log ind eller opret dig for at tilføje kommentarer

Kommentarer

Svar søges

Internettet er ved at dø. Vi kan stadig stoppe det 0
Tid til at lære noget igen 0
TPM 2 0
BigLinux 0
Amerikansk tastatur på dansk tastatur 0

Seneste aktivitet

Østrigsk ministerium smider Microsoft ud til fordel for Nextcloud 1
Brug carburetor til at forblive usynlig online 8
Sådan konfigurerer du flatpaks' flathub til verified only 9
Plasma tapet-skifter 3
How to upgrade to LMDE 7 4
Virksomheder og enheder der kører på Linux 11
NordVPN har udgivet kildekoden til sin grafiske brugergrænseflade 2
Flere og flere bruger Brave browseren 1
LibreOffice og Collabora: Hvorfor er de ikke i skolerne i stedet for Word og Google Docs? 11
Firewall igen 5
Værdien ved open source 2
Sailfish på android telefon 1
Ladybird Browser 7
Satiriske ordspil 3
Kan ikke boote på installation 26
Tilføj signatur til Evolution mail 2
LUKS kryptering - Er der andre der bruger det 15
Dansk distro til software udviklere 2
Linux Debian 5
Brother printer installation 2

© 2025 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !