小编pro*_*eek的帖子

Scala与F#中的|>或Clojure中的 - >>等价

在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)

f# scala clojure operator-keyword

3
推荐指数
2
解决办法
491
查看次数

Scala元组为构造函数解包

我有一个带有两个参数的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)

怎么能解决这个问题?

parameters constructor scala

3
推荐指数
1
解决办法
1339
查看次数

.NET(CLR)和Mono中的语言互操作性

假设我需要使用Python和C++.我可以使用Python C API从C++调用Python函数,并且可以使用SWIG或等效函数进行反向操作.

.NET怎么样?我知道IronPython和C#最终会生成.NET程序集.在.NET中是否有任何定义良好的语言互操作机制,以便可以使用任何语言的任何函数调用?

  • 如果是这样,那么机制是什么?
  • 如果没有,可以做什么来将函数从一种语言调用到另一种语言?
  • 在语言互操作性方面,.NET机制与MONO相同吗?

.net clr mono

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

用Python/Ruby模仿C预处理器?

我需要用Python模仿C的预处理器功能.

如果我想运行调试版本,我在C中使用如下

#ifdef DEBUG
printf(...)
#endif
Run Code Online (Sandbox Code Playgroud)

我只是使用-DDEBUG或类似的方法来启动或关闭它.

我可以在Python/Ruby中使用什么方法?我的意思是,我应该怎么做才能控制python/ruby​​脚本的行为,以便我可以更改影响项目中所有脚本文件的变量?

ruby python user-controls preprocessor

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

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具有存储最终评估结果的特殊存储(堆栈或其他东西),并在调用函数时返回值.

  • 如果是这样,堆栈的名称是什么,以及如何获得该堆栈?
  • 如果没有,Ruby代码如何在不返回内容的情况下工作?

ruby return-value

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

在python 2.6中运行mmap相关函数时出错

我尝试从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 mmap

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

mmap 是进程间通信的最佳方式吗?

我使用文件在 Python 和 Ruby 脚本之间进行通信。但是,我们有 mmap。这是我的问题。

  • 我可以使用 mmap 做同样的事情(进程之间通信)吗?
  • 与物理文件相比,mmap 能给我们带来什么优势?加速?
  • 两个进程之间通信的最简单方法是什么?
  • 两个进程之间通信最快的方式是什么?

ipc mmap

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

如何检测我的C#/ F#代码在单声道或.NET上运行的平台?

我需要使用.NET或MONO进行C#/ F#编程.我怎么知道我的C#/ F#代码在哪个平台上运行?

.net mono

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

如何通过使用Python识别最后一项来连接字典中的字符串?

我需要将字符串连接到现有字符串,如下所示.

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)

我需要检查这个案例的最后一项.

python dictionary

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

使用emacs查找未分配的密钥

我想出了一个elisp函数,并试图将一个密钥与文件匹配.

(defun loadtopics ()
  "Load the topics.org file"
  (interactive)
  (load "../topics.org"))
(global-set-key (kbd "C-c C-a") 'loadtopics)

问题是很难找到未分配的组合键.

  • 有没有简单的方法来查找未分配的组合键?
  • 您使用什么方法将密钥分配给您制作的elisp代码?
  • 是否可以分配多个控制键,即'Cc Ca Cb Cx'或类似的?

emacs elisp key

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