!Matrix

From Esolang
Jump to navigation Jump to search

!Matrix only uses matrices to store data, it was made by User:A().

Programs

Truth machine

1 MAKE NEW MATRIX WITH DIMENSIONS (1,1) CALLED ‘INPUT’
2 ACCEPT INPUT FROM USER AND FILL CELL AT (1,1) FROM MATRIX ‘INPUT’
3 GOTO LINE 5 IF < (<GET CELL FROM MATRIX ‘INPUT’ AT (1,1)>) IS (<1>) > IS TRUE
4 GOTO LINE 7 IF < NOT(< (<GET CELL FROM MATRIX ‘INPUT’ AT (1,1)>) IS 
  (<1>) >) > IS TRUE
5 PRINT MATRIX ‘INPUT’
6 GOTO LINE 3 IF <TRUE> IS TRUE 
7 PRINT MATRIX ‘INPUT’
8 END

Addition

1 MAKE NEW MATRIX WITH DIMENSIONS (2,1) CALLED 'INPUT'
2 ACCEPT INPUT FROM USER AND FILL CELL AT (1,1) FROM MATRIX ‘INPUT’ 
3 ACCEPT INPUT FROM USER AND FILL CELL AT (2,1) FROM MATRIX `INPUT’
4 MULTIPLY ROW 1 BY 1 FROM MATRIX 'INPUT' AND ADD IT TO ROW 2
5 PRINT GET CELL FROM MATRIX ‘INPUT’ AT (2,1)
6 END

Subtraction

1 MAKE NEW MATRIX WITH DIMENSIONS (2,1) CALLED 'INPUT'
2 ACCEPT INPUT FROM USER AND FILL CELL AT (1,1) FROM MATRIX ‘INPUT’ 
3 ACCEPT INPUT FROM USER AND FILL CELL AT (2,1) FROM MATRIX ‘INPUT’
4 MAKE NEW MATRIX WITH DIMENSIONS (2,1) CALLED 'NEG'
5 SUBTRACT 1 FROM CELL AT (1,1) FROM MATRIX 'INPUT'
6 ADD 1 FROM CELL AT (1,2) FROM MATRIX 'INPUT'
7 MAKE NEW MATRIX WITH DIMENSIONS (2,1) CALLED 'RESULT'
8 MULTIPLY MATRIX 'INPUT' BY MATRIX 'NEG' AND STORE RESULT USING 'RESULT'
9 MULTIPLY ROW 1 BY 1 FROM MATRIX 'RESULT' AND ADD IT TO ROW 2
10 PRINT GET CELL AT (2,1) FROM MATRIX 'RESULT'
11 END