mirror of
https://github.com/renbaoshuo/S2OJ.git
synced 2024-11-27 00:16:21 +00:00
96d4a3ecf7
Due to historical reasons, the code is in subfolder "1". With SVN removal, we place the code back and remove the annoying "1" folder.
73 lines
2.1 KiB
HTML
73 lines
2.1 KiB
HTML
<!doctype html>
|
||
|
||
<title>CodeMirror: APL mode</title>
|
||
<meta charset="utf-8"/>
|
||
<link rel=stylesheet href="../../doc/docs.css">
|
||
|
||
<link rel="stylesheet" href="../../lib/codemirror.css">
|
||
<script src="../../lib/codemirror.js"></script>
|
||
<script src="../../addon/edit/matchbrackets.js"></script>
|
||
<script src="./apl.js"></script>
|
||
<style>
|
||
.CodeMirror { border: 2px inset #dee; }
|
||
</style>
|
||
<div id=nav>
|
||
<a href="http://codemirror.net"><img id=logo src="../../doc/logo.png"></a>
|
||
|
||
<ul>
|
||
<li><a href="../../index.html">Home</a>
|
||
<li><a href="../../doc/manual.html">Manual</a>
|
||
<li><a href="https://github.com/marijnh/codemirror">Code</a>
|
||
</ul>
|
||
<ul>
|
||
<li><a href="../index.html">Language modes</a>
|
||
<li><a class=active href="#">APL</a>
|
||
</ul>
|
||
</div>
|
||
|
||
<article>
|
||
<h2>APL mode</h2>
|
||
<form><textarea id="code" name="code">
|
||
⍝ Conway's game of life
|
||
|
||
⍝ This example was inspired by the impressive demo at
|
||
⍝ http://www.youtube.com/watch?v=a9xAKttWgP4
|
||
|
||
⍝ Create a matrix:
|
||
⍝ 0 1 1
|
||
⍝ 1 1 0
|
||
⍝ 0 1 0
|
||
creature ← (3 3 ⍴ ⍳ 9) ∈ 1 2 3 4 7 ⍝ Original creature from demo
|
||
creature ← (3 3 ⍴ ⍳ 9) ∈ 1 3 6 7 8 ⍝ Glider
|
||
|
||
⍝ Place the creature on a larger board, near the centre
|
||
board ← ¯1 ⊖ ¯2 ⌽ 5 7 ↑ creature
|
||
|
||
⍝ A function to move from one generation to the next
|
||
life ← {∨/ 1 ⍵ ∧ 3 4 = ⊂+/ +⌿ 1 0 ¯1 ∘.⊖ 1 0 ¯1 ⌽¨ ⊂⍵}
|
||
|
||
⍝ Compute n-th generation and format it as a
|
||
⍝ character matrix
|
||
gen ← {' #'[(life ⍣ ⍵) board]}
|
||
|
||
⍝ Show first three generations
|
||
(gen 1) (gen 2) (gen 3)
|
||
</textarea></form>
|
||
|
||
<script>
|
||
var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
|
||
lineNumbers: true,
|
||
matchBrackets: true,
|
||
mode: "text/apl"
|
||
});
|
||
</script>
|
||
|
||
<p>Simple mode that tries to handle APL as well as it can.</p>
|
||
<p>It attempts to label functions/operators based upon
|
||
monadic/dyadic usage (but this is far from fully fleshed out).
|
||
This means there are meaningful classnames so hover states can
|
||
have popups etc.</p>
|
||
|
||
<p><strong>MIME types defined:</strong> <code>text/apl</code> (APL code)</p>
|
||
</article>
|