<commit_before># lsp: Lisp Sans Parens. and postfix. and awesome.

# Guiding principles:
# - all values are immutable
# - a function takes as input and produces as output a list of values
#   - with referential transparency
# - a function declaration takes as input and produces as output a lexical
#   context, environment or namespace
#   - if a namespace is a value, we can use functions in place of function
#     declarations
# - a function definition takes as input a set of evaluation semantics and
#   produces a function

# How can we do I/O?
# - consider a function that
#   - given
#     - a black-box with
#       - labled levers
#       - an input tray
#       - an output tray
#     - an queryable state
#   - produce
#     - a choice of
#       - setting a value in the input tray
#       - reading a value from the output tray
#       - pulling a labled lever
#     - a new queryable state
#   - by querying the given state
# - if the black-box's labels are syscalls that take parameters from the input
#   tray and write results to the ouptut tray...

# Hash marks start single line comments.

# Postfix b/c the code should eval in the order I read.
1 2 +        # Yields 3
# Builtin operators typed as 'f(_, A) -> A' do not auto-fold over variadic
# arguments...
1 2 3 +      # Arity error: can't apply binary '+' over three arguments
# ... that's what fold is for
1 2 3 + fold # Yields 6

# $ means 'eval whatever is to the left and pretend it was just a single
# argument to whatever follows'<commit_msg>Dropping needless note from spec.txt<commit_after># lsp: Lisp Sans Parens. and postfix. and awesome.

# Guiding principles:
# - all values are immutable
# - a function takes as input and produces as output a list of values
#   - with referential transparency
# - a function declaration takes as input and produces as output a lexical
#   context, environment or namespace
#   - if a namespace is a value, we can use functions in place of function
#     declarations
# - a function definition takes as input a set of evaluation semantics and
#   produces a function

# Hash marks start single line comments.

# Postfix b/c the code should eval in the order I read.
1 2 +        # Yields 3
# Builtin operators typed as 'f(_, A) -> A' do not auto-fold over variadic
# arguments...
1 2 3 +      # Arity error: can't apply binary '+' over three arguments
# ... that's what fold is for
1 2 3 + fold # Yields 6

# $ means 'eval whatever is to the left and pretend it was just a single
# argument to whatever follows'
{'fraction_non_alphanumeric': 0.0682984603237268, 'fraction_numerical': 0.007895775759968417, 'mean_word_length': 2.8569254185692543, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, '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': '4948770', 'n_tokens_mistral': 731, 'n_tokens_neox': 701, 'n_words': 380}