2013-11-24 23 views
-1

我想R更Pythonic。改变它的步骤之一是使用'不'而不是'!'。我希望这不需要编写C++和编译等,或者它?使用'不'而不是'!'在R

功能:“!TRUE”应该等于“不是TRUE”。

如果你知道从哪里开始,请指点我。

+2

https://stat.ethz.ch/pipermail/r-devel/2008-March/048680.html –

+0

......基于这样评论跟帖,似乎你的要求是不可能的,而无需修改解析器(即,它是无法定义自定义一元运算符)。 –

+1

如果你想python使用python ...我已经投票结束这个问题太广泛。 – Roland

回答

13

你最好拥抱R的方式。为什么所有的努力都是为了这么一件小事?如果你想Python,请坚持使用Python。此外,!在其他编程语言中充当“不”是非常常见的。

无论如何,这一点是允许使用“不”,但它会涉及括号(的Arrr!路)

not <- function(x) { !x } 

if (not(FALSE)) { print(1) } 
[1] 1 

在我看来,这是远远超过!差。

我可以听到你的想法“但我想有if x is not in y:”,但请,这将是相同的暗示我希望Python的方式不需要缩进。

这个想法是,你学习一种语言,你不会改变一种语言以适应个人的需求。他人使用你的代码会发生什么?

+0

那些使用我的代码的人会拥有像Python一样可读的代码。他们会得到某种类型的库,它定义了“不”以及来自Python的其他一些不错的功能和方法。括号正是我发布这个问题的原因。 – Konsta

+0

抱歉让你们失望,但我觉得@ Dualinity的答案是,你很可能会做,除非你想采取使修改该解析器的基础R代码,自己修改版本的高度不平凡的任务是最好的。 .. –

+0

是的,我不打算修改解析器。阅读答案我意识到,它不仅是'!'但if也有括号。我想我必须学会喜欢“if(!var)...”。 :) – Konsta