All Projects → kimtg → Arcpp

kimtg / Arcpp

Licence: other
An implementation of the Arc programming language

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Arcpp

cactusref
🌵 Cycle-Aware Reference Counting in Rust
Stars: ✭ 129 (+760%)
Mutual labels:  reference-counting
Duck
Duck-Typed Programming in C
Stars: ✭ 14 (-6.67%)
Mutual labels:  reference-counting
archery
Abstract over the atomicity of reference-counting pointers in rust
Stars: ✭ 107 (+613.33%)
Mutual labels:  reference-counting

Arc++: An implementation of the Arc programming language

Arc is a dialect of Lisp.

Build

make

With readline support,

make readline

With MinGW,

mingw32-make mingw

For Visual C++, use .sln file. For Code::Blocks, use .cbp file.

Run

Usage: arc++ [OPTIONS...] [FILES...]

OPTIONS:
    -h    print this screen.
    -v    print version.

Special form

assign do fn if mac quote

Built-in

* + - / < > apply bound car ccc cdr close coerce cons cos dir disp err expt eval flushout infile int is len log macex maptable mod mvfile newstring outfile pipe-from quit rand read readline rmfile scar scdr sin sqrt sread stderr stdin stdout string sym system t table tan trunc type write writeb

Library

++ -- <= = >= aand abs accum acons adjoin afn aif alist all alref and andf assoc atend atom avg before best bestn caar cadr carif caris case caselet catch cddr check commonest compare complement compose consif conswhen copy copylist count counts cut dedup def do1 dotted drain each empty even fill-table find firstn flat for forlen get idfn iflet in insert-sorted insort insortnew intersperse isa isnt iso join keep keys last len< len> let list listtab loop map map1 mappend max med median mem memtable merge mergesort min mismatch most multiple n-of nearest no noisy-each nor nthcdr number obj odd on only ontable or orf pair point pop pos positive pr prn pull push pushnew quasiquote rand-choice rand-elt range reclist recstring reduce reinsert-sorted rem repeat retrieve rev rfn rotate round roundup rreduce set single some sort split sref sum summing swap tablist testify tuples trues union uniq unless until vals w/table w/uniq when whenlet while whiler whilet wipe with withs zap

Features

  • Reference counting garbage collection (shared_ptr)
  • Tail call optimization
  • Implicit indexing
  • Syntax sugar ([], ~, ., !, :)

See also

License

Copyright 2016-2020 Kim, Taegyoon

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].