r_function_out_rhs.od 547 B

12345678910111213141516171819202122232425
  1. # Our entire LHS (don't delete anything):
  2. f:RAM_Function
  3. f_outport:RAM_OutPort
  4. f_has_outport:RAM_hasOutPort (f -> f_outport)
  5. # To create:
  6. f_out_signal:RAM_Signal {
  7. RAM_x = ```
  8. def read(inport_name):
  9. inport = get(inport_name)
  10. outport = get_source(get_incoming(inport, "link")[0])
  11. signal = get_target(get_outgoing(outport, "hasSignal")[0])
  12. return get_slot_value(signal, "x")
  13. code = get_slot_value(matched('f'), 'func')
  14. eval(code, {}, { 'read': read })
  15. ```;
  16. }
  17. :RAM_hasSignal (f_outport -> f_out_signal)