Sha256: 9c9e1a4d232cd47017cf4852697f0c0bbf822b4087110389791aa50a5d76fc48

Contents?: true

Size: 1.22 KB

Versions: 1

Compression:

Stored size: 1.22 KB

Contents

# frozen_string_literal: true

module Rus3

  # An empty list is a special object in Scheme language.  The role
  # roughly corresponds to the one of 'nil' in Ruby.

  module EmptyList

    # Represents an empty list.
    EMPTY_LIST = []

    # Returns true if the argument is an empty list.  RuS^3 treats nil
    # (an instance of NilClass) as an empty list.

    def null?(obj)
      obj.instance_of?(Array) and obj.empty?
    end

  end

  # Indicates the values is not specified in the Scheme specification.
  # This value is intended using to be returned from procedures those
  # does not have any specified value as its return value.

  require "singleton"
  class Undef
    include Singleton

    def to_s
      "\#<undef>"
    end
  end
  UNDEF = Undef.instance

  require_relative "rus3/version"
  require_relative "rus3/error"

  require_relative "rus3/pair"
  require_relative "rus3/char"
  require_relative "rus3/port"

  require_relative "rus3/procedure/predicate"
  require_relative "rus3/procedure/list"
  require_relative "rus3/procedure/control"
  require_relative "rus3/procedure/write"

  require_relative "rus3/parser"
  require_relative "rus3/evaluator"
  require_relative "rus3/printer"
  require_relative "rus3/repl"
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rus3-0.1.0 lib/rus3.rb