背景
受到Octave(以及扩展为MATL)对真/伪矩阵的非常方便的解释的启发,Jelly得到了Ȧ(所有八度音阶)原子。
Ȧ将数组作为输入,如果数组为非空并且在树结构中的任何位置都不包含数字0(整数,浮点数或复数),则返回1;否则,返回0。
例如,数组[[]]是真实的,因为它是非空的并且不包含零。而[[0]]是虚假的,因为它在最内层包含0。
任务
用您选择的编程语言编写一个完整的程序或函数,该函数或函数将可能为空的,可能是锯齿状的整数数组作为输入,并打印或返回一个真值或伪值,该值指示a 分别返回1还是0。
您的提交必须遵守以下规则。
真值和伪值对于所有输入必须一致,即,Ȧ返回1的所有数组必须映射到相同的真值,而Ȧ返回0的所有数组必须映射到相同的伪值。
由于完整程序只能将数组的字符串表示形式作为输入,因此允许这样做。但是,您必须使用语言的规范表示形式,由
repr
或类似形式返回。特别是,您不能假定数组的第一个元素前面将带有空格。
如果(且仅当)您的语言不能本地表示锯齿状数组,则可以使用任何现有编程语言的规范语法对输入进行字符串表示。
如果您的语言有几种表示锯齿数组的方式(例如,列表和元组),则只需支持其中一种。
如果您的语言具有内置语言,并且本身就是对此挑战的有效提交,那么您可以不在答案中使用它。允许所有其他内置插件。
鼓励您使用数组和字符串操作发布答案,即使其中一个比另一个短得多。
所有标准代码高尔夫球规则均适用。
可能以字节为单位的最短代码获胜!
真实的测试案例
[1]
[10]
[[]]
[[[[1]]]]
[[], [1], [1, 2]]
[[1], [1, [2]], [1, [2, [3]]]]
[[8], [8, [9]], [8, [9, [10]]]]
虚假的测试用例
[]
[0]
[0, -1]
[-1, 0]
[[[[0]]]]
[[0], [1, 2], [3, 4, 5]]
[[8], [8, [9]], [8, [9, [1, 0]]]]
[-1, 0, 0, 0]
Object
……我最喜欢的是Haskell,而实际上不是。在C语言中也是如此,至少不能以允许您安全地混合数组和整数的方式。这两种语言都完全能够处理锯齿状的数组,但是仍然不能将它们用于此问题。