首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么运行`f <- function(x){x} %>% f`没有抛错?

运行f <- function(x){x} %>% f没有抛错的原因是因为在这个表达式中,%>%是管道操作符,它将左侧的结果作为参数传递给右侧的函数。在这个表达式中,函数f被定义为一个简单的恒等函数,即返回其输入参数。因此,这个表达式实际上等同于f(f(x)),即将参数x传递给函数f两次。由于函数f是一个恒等函数,它会返回其输入参数,因此这个表达式的结果就是x本身。

在这个过程中,并没有涉及到任何需要抛出错误的情况。函数f的定义是合法的,并且可以正常执行。管道操作符%>%也是一个合法的操作符,它将左侧的结果传递给右侧的函数,并返回右侧函数的结果。因此,整个表达式可以顺利执行,没有抛出错误。

需要注意的是,这个表达式的结果取决于参数x的值。如果x是一个有效的R对象,那么整个表达式将返回x本身。但如果x是一个未定义的变量或者是一个无效的R对象,那么整个表达式可能会抛出错误。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

几道硬币问题

,如果猜就是全部输掉,如果赢了就得到下注的两倍,玩家会一直玩一直玩直到钱输光;而赌场老板会看,如果有人赢到 2^n 元,就下令关闭赌场。...考虑 “恰好” N 次硬币,到底有多少种情况可以得出最后两次是连续出现了正面,而之前没有出现过连续正面。...假设 f(x) 表示第一次出现连续正面的时候,已经x 次,并且整个过程的第一次抛出的结果是反面; 假设 g(x) 表示第一次出现连续正面的时候,已经x 次,并且整个过程的第一次抛出的结果是正面...,必须要保证第二次不能为正,所以 g(x+1)=f(x) 于是得到: f(x+2)=f(x+1)+g(x+1)=f(x+1)+f(x) g(x+1)=f(x) 其中,求 f(x) 的递推式可以看出...f(x) 是斐波那契数列,根据它的通项公式: 得到 f(N),也就得到了 g(N),而总的可能性共有 2^N 次方,因此,概率为: (f(N)+g(N))/2^N 4、硬币 N 次,出现连续

1.6K10
  • 60秒问答:多态和函数重载的关系?

    名词隐藏机制和重载 new 函数 例子(liunx api返回值设计 1返回错误 2 异常3 信号) 隐藏可以避免吗,在c++11中呢?...、、、、、、、、、 实现多态的方式【为什么3个情况,不是一个情况】 函数重载; 运算符重载; 虚函数 、、、、、、、、、 多态性指相同对象收到不同消息或不同对象收到相同消息时产生不同的实现动作。...2.运行时的多态:通过类继承和虚函数实现的 C++运行时多态性是通过虚函数来实现的, 虚函数允许子类重新定义成员函数, 而子类重新定义父类的做法称为覆盖(Override),或者称为重写。...float x){ cout << "Base::f(float) " << x << endl; } void g(float x){ cout << "Base::g(float) " <<...Base { public: virtual void f(float x){ cout << "Derived::f(float) " << x << endl; } void g(

    1.3K10

    Global eval. What are the options?

    var x = 'outer'; (function() { var x = 'inner'; eval('x'); // "inner" })();    上述例子的结果就是...Older Opera (~9.27)遇到间接eval调用时会,这是ES3规范准许的。         种种行为提醒我们,间接eval调用的兼容性并不理想,不适合作为全局代码执行的一种方式。...webkit中的eval上下文         值得一提的是webkit系列中的一些浏览器的实现—Safari 5和Chrome 9--当设定确切的上下文时(比如this),eval会。...function globalEval(expression) { return Function(expression)(); } var x = 'outer'; (function...间接eval调用是否可行,并没有做特性检测   非标准属性execScript在标准属性eval之前       之前提到有些浏览器并不支持间接eval,可能会,也可能没有效果,因此宽泛的使用间接eval

    83360

    17track全球物流查询,js混淆暴力破解!!

    为什么删掉呢??? 因为根据调试,这些代码并没有什么卵用!! 这里我们简单的封装一下!! 然后开始我们的调试工作!!...这里会出现_0x2ec18e未定义,那就扣_0x2ec18e 然后出现_0x4f3f未定义,那就扣_0x4f3f 然后_0x50c7未定义,那就扣_0x50c7 然后运行,就会发现代码彻底卡死,,电脑都能卡崩溃...然后就发现,_0x2ec18e[_0x4f3f(...)] is not a function 明明我们已经定义了啊,代码里也有,,,到底什么意思啊。。。。 你就说掉头发不掉。。。...都是的。 我们回到vsc调试。...方法如下: cc = hex(int(time.time() * 1000)) radix16 = cc.replace('0x','') js的这个16进制,,,实在是运行不出来,exejs,js2py

    1.8K20

    关于C++异常,你必须知道的

    例如下面的代码: void leak(int x) // don't: may leak { auto p = new int{7}; if (x < 0) throw Get_me_out_of_here...在更大规模的,存在更多的抛出异常的可能性的代码中,显式释放资源会更加繁复和易。解决这个问题的方法是RAII(“资源请求即初始化”),它是防止泄露最简单,更加系统化的方式。...如果没有适当的时间评价工具,异常处理机制很难满足这个要求。这样的系统(例如飞行控制系统)通常也会禁止使用动态(堆)内存。 不要使用异常声明 异常声明本来的目的是明确表明某个函数可能抛出的异常。...int use(int arg) throw(X, Y) { // ......auto x = f(arg); // ... } 但是异常声明让错误处理更脆弱,并强制产生运行时成本,已经从C++标准中被移除了。

    58341
    领券