From 2ce2dc40702431ef3d3ffece9e2f6f8b883ac6c5 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Wed, 6 Oct 2021 11:34:10 -0400 Subject: =?UTF-8?q?Support=20list=20=F0=9D=95=A8=20(arbitrary=20shape)=20f?= =?UTF-8?q?or=20=E2=80=A2rand.Range?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/bqn.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'docs/bqn.js') diff --git a/docs/bqn.js b/docs/bqn.js index fbbea582..aa630539 100644 --- a/docs/bqn.js +++ b/docs/bqn.js @@ -587,7 +587,14 @@ let rand = (() => { let range = (x,w) => { reqnat("Range: 𝕩", x); let r = x ? (()=>randnat(x)) : Math.random; - return has(w) ? list(Array(w).fill().map(r)) : r(); + if (!has(w)) return r(); + let n = 1; + if (!w.sh) reqnat("Range: 𝕨", n=w); + else { + if (w.sh.length!==1) throw Error("Range: array 𝕨 must have rank 1"); + w.map(m => {reqnat("Range: 𝕨 element", m); n*=m;}); + } + return arr(Array(n).fill().map(r), w.sh?w:[m], 0); }; let iota = x => Array(x).fill().map((_,i)=>i); let deal_err = e => (x,w) => { -- cgit v1.2.3