9 Langage Python : élégance et clareté
-
Abus des énumérables (un fichier est énumérable par ligne).
- Abus des fonctions anonyme (fonction anonyme et récursive).
import sys
import itertools
import functools
def lire():
return list(int(mot,16) for ligne in sys.stdin for mot in ligne.split())
def somme(paquet):
return(
~((lambda replier,somme: replier(replier,somme))(
lambda replier,somme:somme if not(somme>>16) else replier(replier,(somme>>16)+(somme&0xffff)),
functools.reduce(
lambda x,y: x+y,
[paquet[i]<<8|(0 if i>=len(paquet) else paquet[i+1]) for i in range(0,len(paquet),2)])))&0xffff
print('somme='+format(somme(lire()),'04x'))