Events: Difference between revisions

Content added Content deleted
(Add LFE version of events based on the Erlang version)
Line 429: Line 429:
->
->
</pre>
</pre>

=={{header|LFE}}==
<lang lisp>
;;;
;;; This is a straight port from the Erlang version.
;;;
;;; You can run this in the LFE REPL by slurping the file:
;;;
;;; > (slurp "events.lfe")
;;; > (main)
;;;
(defmodule events
(export all))

(defun log (msg)
(let (((tuple h m s) (erlang:time)))
(lfe_io:format "~2.B:~2.B:~2.B => ~s~n" (list h m s msg))))

(defun task ()
(log "Task start")
(receive
('go 'ok))
(log "Task resumed"))

(defun main ()
(log "Program start")
(let ((pid (spawn (lambda () (task)))))
(progn
(log "Program sleeping")
(timer:sleep 1000)
(log "Program signalling event")
(! pid 'go)
(timer:sleep 100))))
</lang>

However, OTP comes with a gen_event behavior that is more robust and resilient than this version.


=={{header|JavaScript}}==
=={{header|JavaScript}}==