Class: Lisp::System

Inherits:
Object show all
Defined in:
lib/rubylisp/system.rb

Class Method Summary collapse

Class Method Details

.registerObject



5
6
7
8
# File 'lib/rubylisp/system.rb', line 5

def self.register
  Primitive.register("sleep")         {|args, env| Lisp::System.sleep_impl(args, env) }
  Primitive.register("quit")          {|args, env| exit() }
end

.sleep_impl(args, env) ⇒ Object



11
12
13
14
15
16
# File 'lib/rubylisp/system.rb', line 11

def self.sleep_impl(args, env)
  return Lisp::Debug.process_error("sleep needs 1 argument", env) if args.length != 1
  arg = args.car.evaluate(env)
  return Lisp::Debug.process_error("sleep needs a numeric argument", env) unless arg.number?
  sleep(arg.value)
end