netch80: (Default)
[personal profile] netch80

Кто с ходу увидит ошибку?

    for i in range(0,3):                                                    
        test.acct_servers[i].handleAcctRequest = \                          
                lambda p: handleAcctRequest(test, test.acct_servers[i], p)  

Получившие данную шишку на лбу понимают, почему для порождения замыкания надо рисовать отдельную функцию.

UPD[2012-07-05]: от gegmopo4:
... lambda p, i=i: (далее по тексту)
Работает, но я не берусь отправлять такое в общее репо.

Date: 2012-07-04 12:42 pm (UTC)
From: [identity profile] p1r4nh4.livejournal.com
В елиспе вообще кошмар - не просто лениво, а архилениво: `i` должна быть забинжена в текущем скоупе, а иначе только через параметризацию и новое замыкание. В коммон лиспе емнип такая же лажа, но лень ставить, чувак напротив говорит, что в схеме вроде бы тоже так.

В кложуре всë immutable, там просто иначе никак не выйдет, так что там нормально. Итого - хаскель, окамл, кложура. Хз, что там в ерланге.

Date: 2012-07-04 06:03 pm (UTC)
From: [identity profile] lionet.livejournal.com
Эрланг как хаскель в этом отношении.

Profile

netch80: (Default)
netch80

January 2026

S M T W T F S
    1 23
45678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 2nd, 2026 02:16 pm
Powered by Dreamwidth Studios