2010-04-26 18 views
6

Tôi cần sửa đổi các giá trị {place} và {other_place} trong bản ghi op.Làm thế nào để sửa đổi một bản ghi trong erlang?

#op{ 
    action = [walk, from, {place}, to, {other_place}], 
    preconds = [[at, {place}, me], [on, floor, me], 
       [other_place, {place}, {other_place}]], 
    add_list = [[at, {other_place}, me]], 
    del_list = [[at, {place}, me]] 
} 

Nhưng erlang không cho phép sửa đổi biến. Có loại dữ liệu nào không?

+1

Vui lòng định dạng mã của bạn với 4 khoảng trống thụt lề. (Hoặc chọn chúng và ctrl + K.) –

+0

Vấn đề là gì, dawg? –

+6

Bạn giải quyết các vấn đề NP-complete trong Erlang giống như cách bạn giải quyết các vấn đề khác, nó chỉ mất nhiều thời gian hơn. Xin vui lòng ít nhất là trả lời câu hỏi của bạn. –

Trả lời

19

erlang không cho phép bạn sửa đổi các biến là đúng. Nhưng không có gì ngăn cản bạn tạo bản sao sửa đổi của một biến.

Với kỷ lục của bạn:

Rec = #op{ 
    action = [walk, from, {place}, to, {other_place}], 
    preconds = [[at, {place}, me], [on, floor, me], 
       [other_place, {place}, {other_place}]], 
    add_list = [[at, {other_place}, me]], 
    del_list = [[at, {place}, me]] 
} 

Bạn có hiệu quả có thể nhận được một phiên bản sửa đổi như sau:

%% replaces the action field in Rec2 but everything else is the same as Rec. 
Rec2 = Rec#op{action = [walk, from, {new_place}, to, {new_other_place}]} 

này sẽ thực hiện những gì bạn dường như được yêu cầu.

+0

Excelent. Cảm ơn bạn! –

+0

chào mừng bạn rất vui được giúp đỡ. –

+0

ergh, làm tôi vặn mặt lên. Tôi từ bỏ Erlang – Acidic

Các vấn đề liên quan