Hacker News new | past | comments | ask | show | jobs | submit login

Given the audience here, it would be super cool to add Arc in the fifth column for comparison.



I'll get it started here:

  =============arc (2008)=============
  version used        Arc 3.1
  version             
  repl                mzscheme -f as.scm
                      arc.sh
                      M-x run-arc
  shebang
  cell types          
  case sensitive      yes
  argument            whitespace
    separator
  falsehoods          nil ()
  true, is true       t, yes
    symbol?
  nil, is () null?,   nil
    is () symbol?
  type-of             type
  type predicates     (is (type x) 'int)
                      (is (type x) 'sym)
                      etc.
  set property        none
  get property        none
  remove              none
    property
  comment             (+ 1 1) ; adding
  ============ten primitives==========
  atom (or list?)     atom
  quote               quote
  eq                  is
  car                 car
  cdr                 cdr
  cons                cons
  cond                (if (> x 0)  1
                          (is x 0) 0
                                  -1)  
  lambda              (fn (x) (* x x))
                      [* _ _]
  label               =
  apply               ((fn (x) (* x x) 2)
                      ([* _ _] 2)
  =============arithmetic=============
  ==============strings===============
  ==========execution control=========
  =========functions and scope========
  ==============lists=================
  list literal        '(1 2 3)
  pair literal        '(1 2)
  (car '())           nil
  (cdr '())           nil
  (eval '())          nil
  list functions      list alist len append rev
  nth                 ('(0 1 2 3) 3)
  last butlast        (last l)
                      (firstn (- (length l) 1) l)
  sort                (sort < '(3 2 1 0))
  assoc               (assoc 3 '((1 2) (3 4)))
  getf                none
  map                 (map [* _ _] '(1 2 3))
  filter              (keep [* _ _] '(1 2 3))
  reduce              (reduce + '(1 2 3))
  push and pop        (= x '(1 2 3))
                      (push 4 x)
                      (pop x) 
  ============sequences===============
  predicate           alist
  ===========other containers=========
  =========i/o and environment========
  format string       (pr "Spain" 7 ": " 13.7)
    to stdout
  external            (system "ls /etc")
    command
  open file           (= in (infile "/etc/passwd"))
  read line           (readline in)
  close file          (close in)
  =======libraries and namespaces=====
  loading a file      (load "a.arc")
  ============compilation=============
  ==============macros================
  backquote and       (def op +)
    comma             (eval `(,op 1 1))

  defmacro            (mac rpn (arg1 arg2 op)
                        (list op arg1 arg2))

  defmacro w/         (mac rpn (arg1 arg2 op)
    backquote           `(,op arg1 arg2))

  recursive           (macex '(rpn 1 2 +))
    macroexpand
  single              (macex1 '(rpn 1 2 +))
    macroexpand
  splice quote        (mac add (args)
                        `(+ ,@args))
  hygenic?            no
  local values        using gensym
  ==============classes===============
  =============concurrency============
  create thread       (thread)
  ==========java interoperation=======
  version used        jarc
    on jvm




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: