¿Por qué no se permiten asignaciones en las expresiones `lambda` de Python?

Esto no es un duplicado de Asignación dentro de la expresión lambda en Python, es decir, soyn preguntando cómo engañar a Python para que asigne unlambda expresión

Tengo algunos antecedentes de cálculo λ. Teniendo en cuenta el siguiente código, parece que Python está bastante dispuesto a realizar efectos secundarios enlambda expresiones:

#!/usr/bin/python

def applyTo42(f):
    return f(42)

def double(x):
    return x * 2

class ContainsVal:
    def __init__(self, v):
        self.v = v

    def store(self, v):
        self.v = v

def main():

    print('== functional, no side effects')

    print('-- print the double of 42')
    print(applyTo42(double))

    print('-- print 1000 more than 42')
    print(applyTo42(lambda x: x + 1000))

    print('-- print c\'s value instead of 42')
    c = ContainsVal(23)
    print(applyTo42(lambda x: c.v))


    print('== not functional, side effects')

    print('-- perform IO on 42')
    applyTo42(lambda x: print(x))

    print('-- set c\'s value to 42')
    print(c.v)
    applyTo42(lambda x: c.store(x))
    print(c.v)

    #print('== illegal, but why?')
    #print(applyTo42(lambda x: c.v = 99))

if __name__ == '__main__':
    main()

Pero si descomento las líneas

    print('== illegal, but why?')
    print(applyTo42(lambda x: c.v = 99))

Lo tendr

SyntaxError: lambda cannot contain assignment

¿Por qué no? @ ¿Cuál es la razón más profunda detrás de esto?

omo lo demuestra el código, no puede tratarse de "pureza" en un sentido funcional.

La única explicación que puedo imaginar es que los asignatarios no devuelven nada, ni siquieraNone. Pero eso suena tonto y sería fácil de solucionar (una forma: hacer que las expresiones lambda devuelvanNone si el cuerpo es una declaración).

No hay respuesta:

Porque se define de esa manera (quiero saber por qué se define de esa manera).

Porque está en la gramática (ver arriba).

Utilizardef si necesita declaraciones (no pregunté cómo obtener declaraciones en una función).

"Esto cambiaría la sintaxis / el idioma / la semántica" estaría bien como respuesta si puede encontrar un ejemplo de tal cambio, y por qué sería malo.

Respuestas a la pregunta(7)

Su respuesta a la pregunta