小编Eri*_*lun的帖子

如何在不安装Oracle客户端和cx_Oracle的情况下访问Oracle数据库?

我有两台RHEL服务器分别运行Python 2.4和2.6.我需要访问的其他服务器上有一个Oracle数据库.

我试图在我的RHEL服务器上安装cx_oracle,但发现必须首先安装Oracle客户端.

问题是,我没有权限在两台RHEL服务器上安装Oracle客户端.在相同的服务器上,Perl程序可以使用以下命令连接到Oracle数据库:

DBI->connect("dbi:Oracle:host=myhost.prod.com;sid=prddb",'username','password')
Run Code Online (Sandbox Code Playgroud)

没有安装cx_oracle和Oracle客户端,Python可以做同样的事吗?或者有没有关于如何自己编写模块来做同样事情的建议?

提前致谢!

python oracle cx-oracle python-2.6

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

将命令转换为功能代码

我需要编写一个程序,将命令式代码转换为纯函数式.我并不担心I/O--我有一些解决方案 - 但我确实需要处理堆对象和局部变量.

我想这可以通过传递一个TheWorld带有每个函数调用的对象并返回,然后从那里进行优化,尝试从不使用它的函数中删除该参数等来完成.但是有没有一种已知的更好的方法呢?

compiler-construction functional-programming code-translation

13
推荐指数
2
解决办法
1881
查看次数

Cygwin Python 2.7包

我在Windows上试图运行Python脚本.我面临的问题是这个脚本需要Python 2.7.Cygwin目前安装了Python 2.6软件包.我尝试在安装向导中搜索2.7软件包但找不到任何软件包.所以我有点卡住了.有人有解决方案吗?

python cygwin

13
推荐指数
3
解决办法
3万
查看次数

使用Scala无形证明自然数加法的相关性

以下代码是Idris:

natAssociative : (a : Nat) -> (b : Nat) -> (c : Nat) -> (a + b) + c = a + (b + c)
natAssociative Z b c = the (b + c = b + c) refl
natAssociative (S k) b c = replace {P=\x => S (k + b) + c = S x} (natAssociative k b c) refl
Run Code Online (Sandbox Code Playgroud)

我正在艰难地将其转化为无形.我尝试了一些不同的编码,但我认为这是最有希望的开始:

import scalaz.Leibniz._
import shapeless.{ HNil, Nat, Succ, Poly3 }
import shapeless.Nat._
import shapeless.ops.nat._

object natAssociative extends …
Run Code Online (Sandbox Code Playgroud)

scala proof dependent-type shapeless

13
推荐指数
1
解决办法
412
查看次数

为什么`[1,"a"] :: [forall a.显示a => a]`是不允许的?

在我(可能不正确)的理解中,以下两个列表应该是等效的:

[1, "a"] :: [forall a. Show a => a]

data V = forall a. Show a => V a
[V 1, V "a"] :: [V]
Run Code Online (Sandbox Code Playgroud)

但是,第一个不被接受,但第二个工作正常(有ExistentialQuantification).

如果第一个列表不存在,那么空白中的类型是map V :: ??? -> [V]什么?什么类型的机制强制存在包装器?

polymorphism haskell existential-type typeclass higher-rank-types

13
推荐指数
1
解决办法
150
查看次数

Haskell中的垃圾收集和并行计算

大多数语言,使用垃圾收集器(可能都是这些),有一个与并行计算相关的主要问题:垃圾收集器必须停止所有正在运行的线程才能删除未使用的对象.Haskell也有垃圾收集器.但是,由于纯度,Haskell保证没有计算改变原始数据,而是生成副本,然后进行更改.我想,通过这种方式,GC不必停止所有线程来完成它的工作.我只是好奇:Haskell是否与垃圾收集有相同的问题?

parallel-processing garbage-collection haskell immutability

12
推荐指数
1
解决办法
1710
查看次数

如何使用Data.Time.Clock在Haskell中获取系统时间?

我需要一些Ints作为随机数生成的种子,所以我想使用系统时间作为种子的旧技巧.

所以我尝试使用Data.Time包,我设法做了以下事情:

import Data.Time.Clock

time = getCurrentTime >>= return . utctDayTime
Run Code Online (Sandbox Code Playgroud)

当我运行时,我会得到以下内容:

Prelude Data.Time.Clock> time
55712.00536s
Run Code Online (Sandbox Code Playgroud)

类型timeIO DiffTime.我希望看到一个IO Something类型,因为这取决于程序外部的东西.所以我有两个问题:

a)是否有可能以某种方式解包IO并获取基础DiffTime值?

b)如何将DiffTime转换为整数值,以秒为单位?有一个功能,secondsToDiffTime但我找不到它的逆.

haskell systemtime

11
推荐指数
3
解决办法
8941
查看次数

使用重载字符串

OverloadedStrings扩展非常有用,但它有一些缺点.请考虑以下函数定义:

someFunction :: ToJSSTring a => a -> IO ()
someFunction = js_function . toJSSTring
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如果我想传递一个文字值,我必须在OverloadedStrings启用时显式添加一个类型签名:

someFunction ("This is plain string" :: String)
someFunction ("And this one is Text" :: Data.Text.Text)
Run Code Online (Sandbox Code Playgroud)

这种必要性的原因是非常明显的,我想这OverloadedStrings是为了简化文字值传递给具有严格类型签名的函数,使开发人员无需在pack任何Text需要值的地方编写代码.

问题是,有没有办法,默认所有没有类型签名的字符串文字Text,或String?或者我应该将我的代码拆分为一般函数(使用ToJSString类型约束)和任意函数,它们的参数具有严格的类型签名?

haskell language-extension overloaded-strings ghcjs

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

scala路径依赖类型和类型级别证明

我目前正在尝试在scala中定义时钟数据流语言的模型.

流程实际上代表某种类型T的无限序列值,由某个时钟C调节(时钟表示流量实际可用的时刻).

通过根据从另一个(布尔)流F'导出的时钟C本身对其进行采样,可以从流F导出采样流SF:SF包含当布尔流F'为真时采样的F的值.

"基本时钟"是从名为"T"的始终为真的流派生的时钟.

在下面的示例中,F和F'位于基准时钟上(并且 - 用于表示流在某个时刻没有值)

T              : 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... (always 1)
F              : 0 0 0 1 1 1 0 1 0 1 0 0 0 1 1 1 1 ...
F'             : 0 1 0 0 0 1 0 1 1 1 0 0 0 1 0 0 1 ...
F sampled on F': - 0 - - - 1 - …
Run Code Online (Sandbox Code Playgroud)

scala path-dependent-type dependent-type type-level-computation shapeless

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

如何在doctest中使用QuickCheck的多行输入?

Doctest的自述文件中,可以使用带有QuickCheck的 doctest,如下所示:

-- |
-- prop> sort xs == (sort . sort) (xs :: [Int])
Run Code Online (Sandbox Code Playgroud)

我想用多行描述这个属性,可能就像

-- |
-- prop> sort xs ==
--            (sort . sort) (xs :: [Int])
Run Code Online (Sandbox Code Playgroud)

Doctest本身支持多行输入(同样来自自述文件)

-- |
-- >>> :{
--  let
--    x = 1
--    y = 2
--  in x + y + multiline
-- :}
-- 6
Run Code Online (Sandbox Code Playgroud)

我尝试了几种类似的语法,比如

-- |
-- prop> :{ sort xs ==
--           (sort . sort) (xs :: [Int])
-- }:
Run Code Online (Sandbox Code Playgroud)

没有任何成功.(在上面的示例中,错误消息是 parse …

doctest haskell quickcheck

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