Events: Difference between revisions

m
→‎{{header|LFE}}: Tweaked for LFE
(Added Elixir)
m (→‎{{header|LFE}}: Tweaked for LFE)
Line 468:
 
=={{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))
 
{{trans|Erlang}}
 
Paste in the REPL:
 
<lang lisp>
(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 ()
Line 490 ⟶ 484:
(log "Task resumed"))
 
(defun mainrun ()
(log "Program start")
(let ((pid (spawn (lambda () (task)))))
Line 501 ⟶ 495:
</lang>
 
Usage:
However, OTP comes with a gen_event behavior that is more robust and resilient than this version.
 
<pre>
> (run)
18:34:53 => Program start
18:34:53 => Program sleeping
18:34:53 => Task start
18:34:54 => Program signalling event
18:34:54 => Task resumed
ok
</pre>
However, OTP comes with a gen_event<code>gen_even</code>t behavior that is more robust and resilient than this version. That is what should be used for any non-toy example or project.
 
=={{header|JavaScript}}==
Anonymous user