Her er nyhederne i Python 3.10: Match er en ren schweizerkniv

12. maj 2021 kl. 03:455
Her er nyhederne i Python 3.10: Match er en ren schweizerkniv
Illustration: Bigstock/Taborov.
For anden gang udkommer Python efter en ny årlig udgivelsesplan. Den store nyhed for det hidtil switch-løse sprog er en ny match-sætning, der kan lidt af hvert.
Artiklen er ældre end 30 dage
Manglende links i teksten kan sandsynligvis findes i bunden af artiklen.

Med 30 år på bagen har programmeringssproget Python kronede dage. På lister over sprogs popularitet ligger Python enten i toppen eller tæt på.

Python er gået fra at være et scripting-sprog med lav indlæringskurve, til at være et af de foretrukne sprog til videnskabelig programmering, statistik, dataanalyse og kunstig intelligens.

Log ind og læs videre
Du kan læse indholdet og deltage i debatten ved at logge ind eller oprette dig som ny bruger, helt gratis.
5 kommentarer.  Hop til debatten
Debatten
Log ind eller opret en bruger for at deltage i debatten.
settingsDebatindstillinger
5
14. maj 2021 kl. 11:06

Jeg gyser dog lidt ved tanken om hvordan sådan en "schweizerkniv" ser ud i implementeringen - hvor meget den "hopper rundt i koden".

Jeg ved ikke om Pythonoversætteren gør det, men man kan optimere en match-sætning, så man undgår at teste det samme flere gange. I listeeksemplet er de to sidste cases begge lister med et element, der er et punkt, hvor man tilgår de to koordinater. Den sidste case kan udnytte, at man enten ved, at det ikke er en sådan liste, og fejle med det samme, eller at man ved, at det er en sådan liste, men at de to koordinater ikke begge er 0, og bare binde x og y til de to koordinater, man allerede har hentet i den foregående case.

Med andre ord kan den tilsyneladende sekventielle gennemgang af mønstrene laves om til en optimeret automat, hvor man ikke tester eller henter de samme ting flere gange. Det sker i oversættere for f.eks. Standard ML og Haskell, og det kan også gøres for Python. Men Python har aldrig været fokuseret på hastighed, så det er ikke sikkert, at man har prioriteret dette.

4
13. maj 2021 kl. 21:02

Eksemplet er lige under den sætning, du citerer (som antydet ved sætningens afsluttende kolon)

Øhh tak, Thomas.

Jeg gyser dog lidt ved tanken om hvordan sådan en "schweizerkniv" ser ud i implementeringen - hvor meget den "hopper rundt i koden".

3
13. maj 2021 kl. 15:18

Lister kan også anvendes som argument til case-sætningen

Eksemplet er lige under den sætning, du citerer (som antydet ved sætningens afsluttende kolon)

2
13. maj 2021 kl. 11:46

Lister kan også anvendes som argument til case-sætningen:

Det havde være rart med et eksempel - der viste dette ;-)

1
12. maj 2021 kl. 10:23

"Over time, every language evolves to look more and more like Standard ML".