在Scala中,当我有这个表达时
f1 ( f2 ( f3 (p)))
Run Code Online (Sandbox Code Playgroud)
有没有办法让我可以使用像
F#
p |> f3 |> f2 |> f1
Run Code Online (Sandbox Code Playgroud)
还是Clojure?
(->> p f3 f2 f1)
Run Code Online (Sandbox Code Playgroud) 我有一个带有两个参数的Scala类,另一个参数构造函数.对于一个参数构造函数,我调用一个方法来获取两个元素的元组,并尝试使用元组作为需要两个参数的构造函数的参数.这是一个例子:
def vals(v:Int) = {
// computation
(v,v) // returns two element tuple
}
class A(a:Int, b:Int) {
def this(v:Int) = {
this(vals(v))
}
}
object Main extends App {
val a = new A(10)
}
Run Code Online (Sandbox Code Playgroud)
但是,我得到类型不匹配错误.我在scala tuple解压缩中找到了一个解决方案,该解决方案适用于函数调用,但不适用于构造函数.
def foo(x: Int, y: Int) = x * y
def getParams = {
(1,2) //where a & b are Int
}
object Main extends App {
println((foo _).tupled(getParams))
println(Function.tupled(foo _)(getParams))
}
Run Code Online (Sandbox Code Playgroud)
怎么能解决这个问题?
假设我需要使用Python和C++.我可以使用Python C API从C++调用Python函数,并且可以使用SWIG或等效函数进行反向操作.
.NET怎么样?我知道IronPython和C#最终会生成.NET程序集.在.NET中是否有任何定义良好的语言互操作机制,以便可以使用任何语言的任何函数调用?
我需要用Python模仿C的预处理器功能.
如果我想运行调试版本,我在C中使用如下
#ifdef DEBUG
printf(...)
#endif
Run Code Online (Sandbox Code Playgroud)
我只是使用-DDEBUG或类似的方法来启动或关闭它.
我可以在Python/Ruby中使用什么方法?我的意思是,我应该怎么做才能控制python/ruby脚本的行为,以便我可以更改影响项目中所有脚本文件的变量?
以下Ruby代码
def a(b,c) b+c end
Run Code Online (Sandbox Code Playgroud)
与Python相同如下
def a(b,c): return b+c
Run Code Online (Sandbox Code Playgroud)
看起来ruby具有存储最终评估结果的特殊存储(堆栈或其他东西),并在调用函数时返回值.
我尝试从http://docs.python.org/library/mmap.html运行以下代码
导入mmap
#编写一个简单的示例文件
使用open(“ hello.txt”,“ wb”)为f:
f.write(“ Hello Python!\ n”)
使用open(“ hello.txt”,“ r + b”)为f:
#内存映射文件,大小0表示整个文件
map = mmap.mmap(f.fileno(),0)
#通过标准文件方法读取内容
print map.readline()#打印“ Hello Python!”
#通过切片符号读取内容
打印地图[:5]#打印“你好”
#使用切片符号更新内容;
#注意新内容的大小必须相同
map [6:] =“世界!\ n”
#...,然后使用标准文件方法再次读取
map.seek(0)
print map.readline()#打印“世界你好!”
#关闭地图
map.close()
但是,我遇到了一个错误。
TypeError:“模块”对象不可调用 第9行的mmap.py中的模块主体 map = mmap.mmap(f.fileno(),0)
这怎么了 我在Snow Leopard / Mac上使用python 2.6。
我使用文件在 Python 和 Ruby 脚本之间进行通信。但是,我们有 mmap。这是我的问题。
我需要使用.NET或MONO进行C#/ F#编程.我怎么知道我的C#/ F#代码在哪个平台上运行?
我需要将字符串连接到现有字符串,如下所示.
for k,v in r.iteritems():
tableGenString += "%s %s, " % (k, what_type(v))
Run Code Online (Sandbox Code Playgroud)
问题是,对于最后一项,不应添加逗号(',').
如何检查k,v是否是最后一项?
该示例是如下的实际代码的简化版本.
for k,v in r.iteritems():
filteredKey = m.mapper(k)
(typestring, valuestring) = what_type(v)
tableGenString += "%s %s, " % (k, typestring)
string1 += "%s, " % k
string2 += "%s, " % valuestring
Run Code Online (Sandbox Code Playgroud)
我需要检查这个案例的最后一项.
我想出了一个elisp函数,并试图将一个密钥与文件匹配.
(defun loadtopics () "Load the topics.org file" (interactive) (load "../topics.org")) (global-set-key (kbd "C-c C-a") 'loadtopics)
问题是很难找到未分配的组合键.
python ×3
.net ×2
mmap ×2
mono ×2
ruby ×2
scala ×2
clojure ×1
clr ×1
constructor ×1
dictionary ×1
elisp ×1
emacs ×1
f# ×1
ipc ×1
key ×1
parameters ×1
preprocessor ×1
return-value ×1