開発環境
- macOS Sierra - Apple (OS)
- Emacs (Text Editor)
- JavaScript (プログラミング言語)
- Node.js, Safari(JavaScript エンジン)
- Learning JavaScript [邦訳](参考書籍)
行列プログラマー(Philip N. Klein (著)、 松田 晃一 (翻訳)、 弓林 司 (翻訳)、 脇本 佑紀 (翻訳)、 中田 洋 (翻訳)、 齋藤 大吾 (翻訳)、オライリージャパン)の行列プログラマー(Philip N. Klein (著)、 松田 晃一 (翻訳)、 弓林 司 (翻訳)、 脇本 佑紀 (翻訳)、 中田 洋 (翻訳)、 齋藤 大吾 (翻訳)、オライリージャパン)の4章(行列)、4.1(行列とは何か?)、4.1.5(単位行列)、列の辞書表現、クイズ4.1.7、4.1.8を JavaScript で取り組んでみる。
クイズ4.1.7、4.1.8
コード(Emacs)
HTML5
<pre id="output0"></pre> <button id="run0">run</button> <button id="clear0">clear</button> <script src="sample5.js"></script>
JavaScript
let div0 = document.querySelector('#graph0'), pre0 = document.querySelector('#output0'), btn0 = document.querySelector('#run0'), btn1 = document.querySelector('#clear0'), p = (x) => pre0.textContent += x + '\n', pObj = (obj) => Object.keys(obj).forEach((k) => p(`${k}: ${obj[k]}`)); range = (start, end, step=1) => { let result = []; for (let i = start; i < end; i += step) { result.push(i); } return result; }; let Matrix = (labels, fn) => { let that = {}, toString = () => { let [m, n] = labels, s = fn.map((k) => `[[${k[0].join(', ')}], ${k[1]}]`); return `Matrix([[${m.join(', ')}], [${n.join(', ')}]], [${s}])`; }; that.toString = toString; return that; }; let identity = (d) => Matrix([d, d], d.map((x) => [[x, x], 1])); let output = () => { p('4.1.7'); let ary = ['a', 'b', 'c'], labels = [ary, ary], fn = labels[0].map((x) => [[x, x], 1]); let m = Matrix(labels, fn); p(m); p('4.1.8'); let d = ['a', 'b', 'c']; p(identity(d)); }; btn0.onclick = output; btn1.onclick = () => pre0.textContent = ''; output();
0 コメント:
コメントを投稿