标签: notation

bash case语句评估为字符串

我已经发现了函数式编程错误,所以自然对我来说已经不够了.;)

所以,在bash中可以写:

case $status in
  "foo") status="bar" ;;
  "baz") status="buh" ;;
   *) status=$status ;;
esac
Run Code Online (Sandbox Code Playgroud)

但我害怕拼写错误,所以我更愿意写:

status=case $status in
  "foo") "bar" ;;
  "baz") "buh" ;;
  *) $status ;;
esac
Run Code Online (Sandbox Code Playgroud)

第二种形式是无效的,因为案例评估了最后执行的命令的退出代码,这完全不是我正在寻找的.

有没有简单的黑客实现什么,我正在找?

bash functional-programming notation case-statement

11
推荐指数
2
解决办法
4万
查看次数

C中的#define有三个点

#define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "native-activity", __VA_ARGS__))
#define LOGW(...) ((void)__android_log_print(ANDROID_LOG_WARN, "native-activity", __VA_ARGS__))
Run Code Online (Sandbox Code Playgroud)

这是这两个宏的定义; 在后面的代码LOGI,并LOGW使用这种方式

LOGI("accelerometer: x=%f y=%f z=%f",
                                event.acceleration.x, event.acceleration.y,
                                event.acceleration.z);
Run Code Online (Sandbox Code Playgroud)

就这样

LOGW("Unable to eglMakeCurrent");
Run Code Online (Sandbox Code Playgroud)

因为我试图避免复杂的宏,#define一般来说,我无法得到这个宏实际意味着什么.这里的3点符号有什么作用?这#define在代码后面有什么变化?

显然我知道3个点用于表示和无限量的参数,但我不知道如何阅读这种情况.

c label notation c-preprocessor variadic-macros

11
推荐指数
1
解决办法
6847
查看次数

这个xsl表示法是什么意思<xsl:template match ="/ | @*| node()">

我不明白我们的意思..

<xsl:template match="/|@*|node()">
<xsl:apply-templates match="@*|node()"/>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

请帮帮我..

    <xsl:template match="local-name()='status'"/> 
<xsl:template match="/|@*|node()"> 
<xsl:copy> 
<xsl:apply-templates match="@*|node()"/> 
<xsl:copy> 
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

如果我像这样应用它省略了<status>我的xml中的 节点,howz它发生了

xslt notation

11
推荐指数
1
解决办法
2万
查看次数

什么是开发人员控制台中的"功能a/<()"?

在Firefox中使用Developer Console时,我尝试这样做:

var a = b => c => c;
Run Code Online (Sandbox Code Playgroud)

然后这个:

a(1)
Run Code Online (Sandbox Code Playgroud)

我期望结果是function()(对应于c => c),但显示的是:

function a/<()
Run Code Online (Sandbox Code Playgroud)

这个表达的意思是什么?它显然不是合法的Javascript,因为它们既不是函数名的有效字符/也不<是.

对于函数使用常规表示法也是如此var a = function(b) { return function(c) { return c; } }.

这是一个截图:

在此输入图像描述

编辑:我尝试了以下内容

var a = b => c => d => d;
a(1)
Run Code Online (Sandbox Code Playgroud)

结果是

a/</<()
Run Code Online (Sandbox Code Playgroud)

这让我觉得这是一种鲜为人知的简写符号.

javascript notation

11
推荐指数
1
解决办法
238
查看次数

如何删除matplotlib log-log图上的科学记数法

我知道之前已经问过这个问题,但我尝试了所有可能的解决方案,但没有一个能为我工作.

所以,我在matplotlib中有一个log-log图,我想避免x轴上的科学记数法.

这是我的代码:

from numpy import array, log, pi
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
import matplotlib.ticker as mticker

plt.rc('axes.formatter', useoffset=False)

tc = array([7499680.0, 12508380.0, 23858280.0, 34877020.0, 53970660.0, 89248580.0, 161032860.0, 326814160.0, 784460200.0])

theta = array([70, 60, 50, 45, 40, 35, 30, 25, 20])

plt.scatter(theta,tc)

ax=plt.gca()

ax.set_xscale('log')
ax.set_yscale('log')

ax.xaxis.set_major_formatter(mticker.ScalarFormatter())
ax.xaxis.get_major_formatter().set_scientific(False)
ax.xaxis.get_major_formatter().set_useOffset(False)

plt.show()
Run Code Online (Sandbox Code Playgroud)

这是输出: 产量

如您所见,x轴上的数字仍然是科学记数法.我想将它们显示为20,30,40 ......我尝试了所有可能的解决方案而没有结果.

非常感谢所有有帮助的人.

NB.我不能使用plt.loglog()命令,因为我正在对数据进行一些曲线拟合,我需要它.

NB2.我注意到发生了一件非常奇怪的事情:如果我将代码更改为yaxis.get_mayor_formatter()...,它就可以在y轴上运行!它只是在x上,它不起作用.这怎么可能?

编辑:也许它是不明确的,但如果你看一下代码,有3种方法应该影响X蜱的显示:plt.rc('axes.formatter', useoffset=False),ax.xaxis.set_major_formatter(mticker.ScalarFormatter())ax.xaxis.get_major_formatter().set_scientific(False).根据我发现的情况,它们是3种方法,应该都可以单独使用,但它们没有.当然,我也一个接一个地尝试过,而不是一起尝试.

python plot matplotlib notation

11
推荐指数
2
解决办法
4580
查看次数

Scala - 前缀一元运算符

我最近给了Scala第二次机会,并从我总是实现的项目开始(在函数或伪函数语言中):命题逻辑(以及后来的谓词逻辑)的自动推理器.

现在,我试图尽可能地在语言本身中获得命题逻辑的符号,并且我已经实现了这一点 - 使用隐式转换(String - > Atom):

("A" and "B") implies "C"
Run Code Online (Sandbox Code Playgroud)

函数"和"和"暗示"(以及"或"和"等价")是调用相关案例类构造函数的简单方法.但是,在实现"not"时,我会遇到以下两种符号中的任何一种:

("A" and "B").not
Not("A" and "B")
Run Code Online (Sandbox Code Playgroud)

有没有办法欺骗Scala接受所需的:

not("A" and "B")
Run Code Online (Sandbox Code Playgroud)

最好不要将"Not"类重命名为"not",因为我可能希望将来称之为"¬"或其他东西.

logic scala notation unary-operator

10
推荐指数
4
解决办法
1万
查看次数

自定义后缀表示法,应用/功能

我想在Mathematica 7中设置以下自定义表示法.

这种表示法本身并不特别有用,所以请不要提出现有的替代方案,或者指出这只能节省一些按键.

我想知道是否以及如何做到这一点.


目前,人们可以进入

f = #2 + #^2 / #3 & @@ # & ;

f[ {a, b, c} ]

Out[]= b + a^2 / c
Run Code Online (Sandbox Code Playgroud)

其中内部函数#^2 / #3 + #2 &Apply第一个参数.


我想实现语法

f = #2 + #^2 / #3 @@& ;
Run Code Online (Sandbox Code Playgroud)

并使它的行为完全相同.也就是说,@@&表示一个Function自动应用于其第一个参数的.

它需要与 符号具有相同的绑定& .


优选的是,尽管使用更难以通过文本进行通信,但是为了便于设置类似的符号,Notations这可以在尽可能的程度上而不是手动MakeBoxes的情况下完成Notations.

customization wolfram-mathematica notation

10
推荐指数
1
解决办法
811
查看次数

python语法错误与dict(1 = ...),但{1:...}有效

Python似乎与dicts接受的密钥类型不一致.或者,换句话说,它允许某种类型的键以一种方式定义dicts,但不允许在其他方面:

>>> d = {1:"one",2:2}
>>> d[1]
'one'
>>> e = dict(1="one",2=2)
  File "<stdin>", line 1
  SyntaxError: keyword can't be an expression
Run Code Online (Sandbox Code Playgroud)

{...}符号更根本,dict(...)只是语法糖吗?是因为Python根本没办法parse dict(1="one")吗?

我很好奇...

python dictionary notation

10
推荐指数
2
解决办法
8288
查看次数

在Java中,{a,b,c,...}数组的简写何时不合适,为什么?

如果您正在定义变量,则声明/定义变量似乎完全有效,如下所示:

    double[][] output = {{0,0},{1,0}};
Run Code Online (Sandbox Code Playgroud)

但是,如果您返回一个值,则编写以下内容似乎无效:

    public double[] foo(){
      return {0,1,2}
    }
Run Code Online (Sandbox Code Playgroud)

我本以为在内部,这两个都会执行相同的操作.Eclipse至少不同意.有谁知道差异是什么,在哪里可以看到,或者为什么接受前一个例子并拒绝后者是有益的?

编辑:好的,所以它适合你初始化时,但我没有看到任何歧义...... JVM不能解释变量名称中的变量类型(在重新定义已经初始化的变量的情况下)或者在返回时(JVM只能查看函数的返回类型)?什么使初始化成为禁止隐式类型的规则的特例?是什么使一般规则需要显式类型?

java arrays notation

10
推荐指数
2
解决办法
1万
查看次数

为什么Big-O表示法使用O(1)而不是O(k)?

如果我正确理解Big-O表示法,k应该是算法效率的恒定时间.考虑到需要一个可变的时间,为什么要考虑一个恒定的时间O(1)而不是O(k)?线性增长( O(n + k) )使用此变量将时间向右移动一段特定的时间,那么为什么不等同于常数复杂度?

algorithm complexity-theory big-o notation

9
推荐指数
1
解决办法
3966
查看次数