小编Dar*_*ren的帖子

F#计量单位能否在OCaml中实施?

F#具有度量单位能力(本研究报告中有更多细节).

[<Measure>] type unit-name [ = measure ]
Run Code Online (Sandbox Code Playgroud)

这允许定义单位,例如:

type [<Measure>] USD
type [<Measure>] EUR
Run Code Online (Sandbox Code Playgroud)

代码写成:

let dollars = 25.0<USD>
let euros = 25.0<EUR>

// Results in an error as the units differ
if dollars > euros then printfn "Greater!"
Run Code Online (Sandbox Code Playgroud)

它还处理转换(我猜这意味着Measure定义了一些函数,让Measures成倍增加,分割和取幂):

// Mass, grams.
[<Measure>] type g
// Mass, kilograms.
[<Measure>] type kg

let gramsPerKilogram : float<g kg^-1> = 1000.0<g/kg>

let convertGramsToKilograms (x : float<g>) = x / gramsPerKilogram
Run Code Online (Sandbox Code Playgroud)

这个功能可以在OCaml中实现吗?有人建议我看一下幻像类型,但它们看起来并不像单位那样构成.

(披露:几个月前我问过关于Haskell的这个问题,得到了一个有趣的讨论,但没有超出'可能不是'的确定答案).

f# ocaml units-of-measurement

42
推荐指数
2
解决办法
1162
查看次数

我如何使用与leiningen签到的罐子

我们在我们的项目中签了一些第三方罐子.我们想将它们添加到类路径中.而已.我们不想建立一个本地的maven回购(因为这会破坏我们的'检查和运行'理念).每个开发人员都必须设置自己的maven仓库,与项目不同.

有办法做到这一点还是这样?我见过的大多数答案都说要设置一个我们不想要或只需要在类路径中添加jar的本地maven.

clojure leiningen

16
推荐指数
2
解决办法
1250
查看次数

是否有一个Haskell等价的F#度量单位?

F#具有度量单位功能,如http://msdn.microsoft.com/en-us/library/dd233243.aspx所述,如下所示:

[<Measure>] type unit-name [ = measure ]
Run Code Online (Sandbox Code Playgroud)

这允许定义单位,例如:

type [<Measure>] USD
type [<Measure>] EUR
Run Code Online (Sandbox Code Playgroud)

代码写成:

let dollars = 25.0<USD>
let euros   = 25.0<EUR>

// Results in an error as the units differ
if dollars > euros then printfn "Greater!"
Run Code Online (Sandbox Code Playgroud)

它还处理转换(我猜这意味着Measure定义了一些函数,让Measures成倍增加,分割和取幂):

// Mass, grams.
[<Measure>] type g
// Mass, kilograms.
[<Measure>] type kg

let gramsPerKilogram: float<g kg^-1> = 1000.0<g/kg>

let convertGramsToKilograms (x: float<g>) = x / gramsPerKilogram
Run Code Online (Sandbox Code Playgroud)

我的直觉告诉我应该可以在Haskell中实现类似的功能,但是我找不到任何如何做的例子.

编辑:哦,我的话,这是一个巨大的蠕虫!http://research.microsoft.com/en-us/um/people/akenn/units/CEFP09TypesForUnitsOfMeasure.pdf上有一篇研究论文.我猜测实现整个过程不仅仅是几行代码.夏天项目有人吗?:)

f# haskell

15
推荐指数
2
解决办法
1486
查看次数

为iOS和XCode 4.3交叉编译开源c库

我想在iOS应用程序中使用优秀的stringencoders库.它是一个相当典型的c库,由autoconf和makefile生成配置脚本.

我想做的是在Mac OSX上编译arm7和i386版本,然后使用lipo制作一个胖二进制文件.

我无法弄清楚如何说服构建工具来创建特定于平台的二进制文件.有一些文章,甚至一些脚本,但大多数都是针对XCode 4.2,不适用于4.3.

看起来应该可以创建一个相当通用的构建脚本,它可以很好地配合configure和make,但是我甚至不知道从哪里开始.

你成功完成了这样的事吗?我喜欢一些指针!

BTW:'将所有源代码导入您的项目'不是一个可行的解决方案.那种方式就是疯狂.

谢谢.

c iphone gcc makefile ios

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

在编写重载字符串时如何删除样板?

给出以下代码:

{-# LANGUAGE OverloadedStrings #-}

newtype Firstname = Firstname String deriving (Eq, Show)
instance IsString Firstname where fromString = Firstname

newtype Lastname = Lastname String deriving (Eq, Show)
instance IsString Lastname where fromString = Lastname

data Person = Person { firstname :: Firstname, lastname :: Lastname, age :: Int } deriving Show
Run Code Online (Sandbox Code Playgroud)

我想删除围绕创建强类型字符串的样板.有可能使用Template Haskell(或其他一些方法)来实现这一目标吗?

例如:

{-# LANGUAGE OverloadedStrings, TemplateHaskell #-}

$(strongString ''Firstname)
$(strongString ''Lastname)

data Person = Person { firstname :: Firstname, lastname :: Lastname, age :: Int } deriving …
Run Code Online (Sandbox Code Playgroud)

haskell template-haskell

8
推荐指数
1
解决办法
624
查看次数

什么是Java的Dynamic Proxies的.Net等价物?

在java中,可以使用动态代理动态实现接口,如下所示:

public static <T> T createProxy(InvocationHandler invocationHandler, Class<T> anInterface) {
    if (!anInterface.isInterface()) {
        throw new IllegalArgumentException("Supplied interface must be an interface!");
    }
    return (T) Proxy.newProxyInstance(anInterface.getClassLoader(), new Class[]{anInterface}, invocationHandler);
}
Run Code Online (Sandbox Code Playgroud)

.Net中有等价物吗?

.net java proxy dynamic

6
推荐指数
2
解决办法
2564
查看次数

显示地图时,iOS 6应用程序在EAGLContext中崩溃

我们有一个使用OpenGL和的应用程序MKMapView.当我们切换到iOS 6时[EAGLContext setCurrentContext:],每当我们尝试在设置我们自己的地图后显示地图时,它就开始与EXC_BAD_ACCESS 崩溃EAGLContext.

opengl-es objective-c ios ios6

6
推荐指数
1
解决办法
3174
查看次数

为什么我从亚马逊弹性负载均衡器后面发送重定向时会得到502坏网关?

我正在尝试将任何HTTP请求重定向到我的服务器到HTTPS.

ELB正在侦听端口80并将所有请求转发到我的应用程序上的端口8088.然后,应用程序发送301 Moved Permanently响应重定向到同一个URL,但任何端口都被剥离,并且"https://"前置.这会导致客户端通过HTTPS重新请求URL.

当我在本地测试它时工作正常,但是当我将它部署到Elastic Load Balancer后面的EC2时,我会收到502 Bad Gateway.服务器正在接收请求并且似乎正在正确发送重定向(正如我所说,当我直接命中服务器时,它不起作用,而不是通过负载均衡器).

https http amazon-ec2 amazon-elb

5
推荐指数
1
解决办法
7612
查看次数

如何将 PKCS12 证书导入 Java 密钥库?

我有一个 PKCS12 格式的证书。如何将其导入到 Java 密钥库文件中?

java ssl keystore keytool

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

进行子选择的django方法是什么?

我有一个版本化的模型(简化)看起来有点像:

Project(id, ref, version)

unique_together(ref, version)
Run Code Online (Sandbox Code Playgroud)

其中id是自动生成的主键,ref是随机UUID,version是由我的应用程序递增的整数.每次保存项目时,我都会创建一个新实例,将1添加到版本并将ref复制到新对象.

以下SQL将通过执行subselect返回每个Project的最新版本.

SELECT * FROM myapp_project WHERE (ref, version) IN
(SELECT ref, max(version) FROM myapp_project GROUP BY ref)
Run Code Online (Sandbox Code Playgroud)

或者(也许稍微简单):

SELECT * from myapp_project p
WHERE p.version =
(SELECT max(version) FROM myapp_project p1 WHERE p1.ref = p.ref)
Run Code Online (Sandbox Code Playgroud)

如何使用Django的ORM实现相同的查询?

编辑:我已经到了这个 -

foo = Project.objects.values('ref').annotate(version=Max('version'))
Run Code Online (Sandbox Code Playgroud)

如果我检查它,这给了我一些正确的东西.一旦我尝试获取id:

foo.values('id')
Run Code Online (Sandbox Code Playgroud)

它似乎丢弃了原始结果并返回所有行.

编辑更多:

现在使用.extra()处理它:

maxids = """id in (SELECT id from myapp_project p WHERE p.version = 
(SELECT max(version) FROM myapp_project p1 WHERE p1.ref = p.ref))"""

Project.objects.all().extra(where=[maxids])
Run Code Online (Sandbox Code Playgroud)

python django django-models

5
推荐指数
1
解决办法
157
查看次数

在node.js中使用固定延迟进行轮询

我正在寻找一种定期执行后台活动的方法,其中活动的执行时间可能超过轮询间隔.

在java术语中,我使用Executor.scheduleWithFixedDelay.这确保了后续调用仅在运行任务完成后才被调用,因此在任何给定时间只有一个任务实例正在运行,并且它将始终等待所需的时间间隔再次轮询.

目前,我需要记住在完成后让每个活动重新安排.是否有一个node.js/javascript库实现了同样的功能?

javascript asynchronous node.js

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

如何为NSDictionary实现自定义键

我正在尝试实现一个类用作NSDictionary中的键.文档说,为了用作密钥,对象需要实现NSCopying协议,我已经完成了.

我看到了一些非常奇怪的行为,即使我可以看到对象在字典中正确存储,但它似乎神秘地变为零.

我已经实现了copyWithZone:和isEqual:正如我所看到的那样,但它仍然无效.

collections objective-c

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