APL中构造函数向量(数组)的正确语法是什么?
正确构造函数向量的写法
你之前的写法会被解析为函数复合的train操作符,无法生成目标函数向量,可采用list()显式包裹每个函数元素实现需求,该写法支持任意复杂的自定义函数、已命名函数:
基础示例(对应你给出的简化场景)
# 正确写法,不会被解析为train操作符 func_vec <- list({1}, {2}) # 匿名函数写法适配 func_vec_anon <- list(\(x) x + 1, \(x) x * 2)
复杂场景适配示例
支持放入已命名的自定义函数、第三方包函数:
# 自定义命名函数 my_func <- function(x) { out <- x^2 + 3 * x return(out / sum(x)) } # 混合类型函数向量 mixed_func_vec <- list( my_func, \(df) dplyr::filter(df, score > 60), mean, sum )
错误原因说明
- 写法
{1},{2}会被解析为逗号分隔的两个复合表达式,搭配前缀~使用时会被识别为3元素函数复合操作(即你遇到的3-train) - 写法
{1} {2}会被解析为空格分隔的两个复合表达式,搭配前缀~使用时会被识别为2元素函数复合操作(即你遇到的2-train)
内容的提问来源于stack exchange,提问作者P Varga
相关产品推荐
相关产品推荐

