julia - Julia:在 Map 函数中调用先前的值
问题描述
我一直在使自己适应高阶函数,如 map、filter 和 reduce。老实说,我觉得我在作弊,因为代码太干净了!反正...
假设我正在对数组执行映射函数,并且匿名函数的输出取决于前面的值。我将如何调用以前的值?
例如:
检查每个值是否具有 3 的因数的语句
julia> A
4-element Array{Int64,1}:
3
6
9
36
julia> reduce(&, map(x-> x%3 == 0, A))
true
我如何调用以前的值来检查它是否是当前值的一个因素?
julia> reduce(&, map( x -> x==A[1] ? true : x % 3 == 0, A))
true
#I want to change the 3 to the previous value like..
psuedo code> reduce(&, map( x -> x==A[1] ? true : x % x[i-1] == 0, A))
有任何想法吗?或者,我是在突破这个限制吗?
解决方案
就像在 for 循环中一样,您可以将元素视为 A 中的 x 或通过索引获取元素,如 1:length(A) 中的 i:
reduce(&, map(i -> A[i]==A[1] ? true : A[i] % A[i-1] == 0, 1:length(A)))
或者,因为它可能会在错误时缩短评估:
all(i -> A[i]==A[1] ? true : A[i] % A[i-1] == 0, 1:length(A))
推荐阅读
- python - 重塑数据框并计算卡方检验的行和列的总和
- html - 如何创建带有方形之字形的水平规则?
- r - 对数据框的每一行运行 wilcoxon 秩和检验
- swift - 当点击 FCM 推送通知时,如何在选项卡栏中打开特定的视图控制器?
- kotlin - 使用 Jackson JsonDeserializer 解码自定义对象
- arduino - 如何在使用 wifimanager 库暂时断开连接并且不停止后将 esp32 重新连接到 wifi
- java - log4j Socket Appender 在哪里写入
- firebase - Firebase 云消息发送与接收
- linux - 内核安装错误:写入失败(设备上没有剩余空间)
- javascript - 遍历基于对象的属性路径数组