Language.

This commit is contained in:
Erik Svedäng 2019-06-14 09:36:04 +02:00
parent fb1aecd348
commit aa03aaefbf

View File

@ -18,7 +18,9 @@ A *borrowing* function is a function that does not take ownership over the value
What is a good name for a function that is both owning and internally mutating, like `endo-map`? These functions are common in Carp and allow for a functional programming style without the need to copy or allocate memory.
### Unsafe function
Unsafe functions (most often) start with the prefix `unsafe-` and *can* crash the program if certain preconditions are not met. A good example is `Array.unsafe-first` which gets the first value in an array - calling this if the array is empty this will crash the program. The `unsafe-` prefix is an optional naming convention, there *are* a few functions that are not safe which does not use this naming scheme. A notable example is `Array.nth` which crashes if given an invalid index. Any other unsafe functions should be thoroughly documented as such, and using the `unsafe-` prefix is very much encouraged in library code!
Unsafe functions (most often) start with the prefix `unsafe-` and *can* crash the program if certain preconditions are not met. A good example is `Array.unsafe-first` which gets the first value in an array. Calling this if the array is empty this will crash the program.
The `unsafe-` prefix is an optional naming convention; there *are* a few functions that are not safe which does not use this naming scheme. A notable example is `Array.nth` which crashes if given an invalid index. Any other unsafe functions should be thoroughly documented as such, and using the `unsafe-` prefix is very much encouraged in library code!
### REPL
*REPL* stands for "Read Eval Print Loop" and is a common feature of Lisp system. It allows expressions to be entered and executed at a command prompt. In Carp it is spelled with uppercase letters.