GithubHelp home page GithubHelp logo

idm's Introduction

idm

idm (it doesn't matter) is a toy implementation of an APL interpreter.

I want to build a toy implementation on an APL-like interpreter. I got this idea after watching this video from Rob Pike.

can do:

numbers

./idm
    1
1
      -1
-1
    - 1
SYNTAX ERROR
    1 + 1
2
      -1 + 1
0
    1 - 1
0
    1 + 2 + 3 - 10
-4
	  1 + -1
0
  	7 ** 3
343
  	7 max 3
3
  	7 min 3
3

variables

    a = 2
2
    a
2
    a + 1
3
      1 + a
3
      a + a + a + a
8
    b = 1
1
    a + b
3
    a = b
1
    a + b + 10
12

vectors

    1 2 3 4
1 2 3 4
  	1 2 3 4 + 1 2 3 4
2 4 6 8
  	1 2 3 4 - 1 2 3 4
0 0 0 0
      1 -1
1 -1
      -1 -1 -1 + 1 1 1
0 0 0
  	1 2 3 4 * 1 2 3 4
1 4 9 16
    1 2 3 4 ** 2 2 2 2
1 4 9 16
      1 2 3 4 max 3 4 1 5
3 4 3 5
      1 2 3 4 min 3 4 1 5
1 2 1 4
    +/ 1 2 3
6
    +\ 1 2 3
1 3 6
    */ 1 2 3
6
    *\ 1 2 3
1 2 6

##todo:

./idm
    2 ** -1
0.25
a = 1 2 3 4
1 2 3 4
1 1 0 1 and 1 0 1 1
1 0 0 1
  	1 1 0 1 or 1 0 1 1
1 1 1 1
  	iota 5
1 2 3 4 5
  	y = 2 x iota 5
2 4 6 8 10
  	or/ 1 0 1 1
1
and/ 1 0 0 0
0
max/ 1 2 4 2
4
min/ 1 2 4 3
0
y[2]
6
dim y
5
y[:2]
2 4
y[2:]
6 8 10
  	y[-1]
10
y[-2:]
2 4 6
  	3 shape 1
1 1 1
  	m = 5 5 shape 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
  	m + m
2 2 2 2 2
2 2 2 2 2
2 2 2 2 2
2 2 2 2 2
2 2 2 2 2
  	dim m
5 5
functions...
...
...

Ressources

idm's People

Contributors

santiaago avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.