<commit_before>schemerald
=======================

An implementation of the Scheme R5RS interpreter I wrote in Ruby

Features
=======================

Currently implemented R5RS features include:

* Boolean literals: #t and #f
* Numeric literals for integers, reals, rationals and complexes
* string literals
* Proper and improper lists
* Definition and assignment: <tt>define</tt>, <tt>set!</tt>
* Lambdas
* Conditionals: <tt>if</tt>, <tt>cond</tt>
* Binding constructs: <tt>let</tt>
* Quoting
* Delayed evaluation: <tt>delay</tt> and <tt>force</tt>
* Equivalance predicates: <tt>eqv?</tt>, <tt>eq?</tt>, <tt>equal?</tt>
* Numeric library: <tt>number?</tt>, <tt>complex?</tt>, <tt>real?</tt>,
  <tt>rational?</tt>, <tt>integer?</tt>, <tt>=</tt>, <tt><</tt>, <tt>></tt>, <tt><=</tt>, <tt>>=</tt>,   <tt>zero?</tt>,
  <tt>positive?</tt>, <tt>negative?</tt>, <tt>odd?</tt>, <tt>even?</tt>,
  <tt>max</tt>, <tt>min</tt>, <tt>+</tt>, <tt>*</tt>, <tt>-</tt>, <tt>/</tt>,
  <tt>abs</tt>, <tt>quotient</tt>, <tt>remainder</tt>, <tt>modulo</tt>, <tt>lcm</tt>,
  <tt>floor</tt>, <tt>ceiling</tt>, <tt>sqrt</tt>
* Boolean library: <tt>and</tt>, <tt>or</tt>, <tt>not</tt>, <tt>boolean?</tt>
* List library: <tt>pair?</tt>, <tt>cons</tt>, <tt>car</tt>, <tt>cdr</tt>,
  <tt>set-car!</tt>, <tt>set-cdr!</tt>, <tt>null?</tt>, <tt>list?</tt>, <tt>list</tt>
* Symbol library: <tt>symbol?</tt>, <tt>symbol->string</tt>, <tt>string->symbol</tt>
* String library: <tt>string?</tt>, <tt>string-length</tt>, <tt>string-ref</tt>, <tt>string=?</tt>, <tt>string-ci=?</tt>, <tt>string<?</tt>, <tt>string>?</tt>, <tt>string<=?</tt>, <tt>string>=?</tt>, <tt>string-ci<?</tt>, <tt>string-ci>?</tt>, <tt>string-ci<=?</tt>, <tt>string-ci>=?</tt>, <tt>substring</tt>, <tt>string-append</tt>, <tt>string-copy</tt>
* Control features: <tt>procedure?</tt>, <tt>apply</tt>, <tt>eval</tt>

Installation
=======================

<tt>  gem install schemerald  </tt>

To start a REPL session:

<tt> Interpreter.new.repl  </tt>

Licence
=======================

(The MIT License)

Copyright (C) 2014 <NAME> ( <EMAIL> )

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in<commit_msg>add exit repl info<commit_after>schemerald
=======================

Schemerald is a Scheme R5RS interpreter written in Ruby.

Features
=======================

Currently implemented R5RS features include:

* Boolean literals: #t and #f
* Numeric literals for integers, reals, rationals and complexes
* string literals
* Proper and improper lists
* Definition and assignment: <tt>define</tt>, <tt>set!</tt>
* Lambdas
* Conditionals: <tt>if</tt>, <tt>cond</tt>
* Binding constructs: <tt>let</tt>
* Quoting
* Delayed evaluation: <tt>delay</tt> and <tt>force</tt>
* Equivalance predicates: <tt>eqv?</tt>, <tt>eq?</tt>, <tt>equal?</tt>
* Numeric library: <tt>number?</tt>, <tt>complex?</tt>, <tt>real?</tt>,
  <tt>rational?</tt>, <tt>integer?</tt>, <tt>=</tt>, <tt><</tt>, <tt>></tt>, <tt><=</tt>, <tt>>=</tt>,   <tt>zero?</tt>,
  <tt>positive?</tt>, <tt>negative?</tt>, <tt>odd?</tt>, <tt>even?</tt>,
  <tt>max</tt>, <tt>min</tt>, <tt>+</tt>, <tt>*</tt>, <tt>-</tt>, <tt>/</tt>,
  <tt>abs</tt>, <tt>quotient</tt>, <tt>remainder</tt>, <tt>modulo</tt>, <tt>lcm</tt>,
  <tt>floor</tt>, <tt>ceiling</tt>, <tt>sqrt</tt>
* Boolean library: <tt>and</tt>, <tt>or</tt>, <tt>not</tt>, <tt>boolean?</tt>
* List library: <tt>pair?</tt>, <tt>cons</tt>, <tt>car</tt>, <tt>cdr</tt>,
  <tt>set-car!</tt>, <tt>set-cdr!</tt>, <tt>null?</tt>, <tt>list?</tt>, <tt>list</tt>
* Symbol library: <tt>symbol?</tt>, <tt>symbol->string</tt>, <tt>string->symbol</tt>
* String library: <tt>string?</tt>, <tt>string-length</tt>, <tt>string-ref</tt>, <tt>string=?</tt>, <tt>string-ci=?</tt>, <tt>string<?</tt>, <tt>string>?</tt>, <tt>string<=?</tt>, <tt>string>=?</tt>, <tt>string-ci<?</tt>, <tt>string-ci>?</tt>, <tt>string-ci<=?</tt>, <tt>string-ci>=?</tt>, <tt>substring</tt>, <tt>string-append</tt>, <tt>string-copy</tt>
* Control features: <tt>procedure?</tt>, <tt>apply</tt>, <tt>eval</tt>

Installation
=======================

<tt>  gem install schemerald  </tt>

To start a REPL session:

<tt> Interpreter.new.repl  </tt>

To exit a REPL session:

<tt> exit  </tt>

Licence
=======================

(The MIT License)

Copyright (C) 2014 <NAME> ( <EMAIL> )

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
{'fraction_non_alphanumeric': 0.2943121693121693, 'fraction_numerical': 0.0026455026455026454, 'mean_word_length': 5.761549925484352, 'pattern_counts': {'":': 0, '<': 325, '<?xml version=': 0, '>': 329, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1807711', 'n_tokens_mistral': 1804, 'n_tokens_neox': 1751, 'n_words': 376}