2013-04-10 14 views

cevap

4

Çoğu dil, ödevin bir ifade olarak bildirildiğini söyleyerek bununla kaybolur. Örnekte

, atama olur:

def p_expression_assign(t): 
    'expression : NAME EQUALS expression' 
    t[0] = names[t[1]] = t[3] 

Ben sadece "deyimi" den "ifadesi", işlev adı ve docstring'ini sözdiziminde ve "iade" her ikisi (t[0] atanan) değiştirildi atanan değer.

"Uzaklaş" diyorum çünkü diğer diller (Python gibi) birden fazla ödeve izin verdikleri için ekstra mil gidiyorlar, ancak ödevin sonucunu başka bir ifade türünde kullanmayı yasaklıyorlar.

Ancak ikinci örneğiniz a=(b=1)*1, daha önce birden çok ödevin daha fazla (veya C benzeri) biçimini istediğinizi bildirir.