小编Ale*_*len的帖子

SBT使用的默认存储库是什么?

我可以提供一个~/.sbt/repositories文件来覆盖SBT用于解析依赖关系的存储库.当文件存在时,不使用默认存储库.

SBT(0.13)中的默认存储库是什么?我想将它们添加到我的存储库文件中,这样我就可以解决网络内外的依赖关系,而无需更改/移动文件.

scala sbt

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

当这些约束成立时,将没有约束的GADT转换为具有约束的另一个GADT

我们可以将没有给定约束的GADT转换为具有上述约束的GADT吗?我想这样做是因为我希望深入嵌入Arrows并使用(现在)似乎需要的表示来做一些有趣的事情Typeable.(一个原因)

data DSL a b where
  Id   :: DSL a a
  Comp :: DSL b c -> DSL a b -> DSL a c
  -- Other constructors for Arrow(Loop,Apply,etc)

data DSL2 a b where
  Id2   :: (Typeable a, Typeable b)             => DSL2 a a
  Comp2 :: (Typeable a, Typeable b, Typeable c) => DSL2 b c -> DSL2 a b -> DSL2 a c
  -- ...
Run Code Online (Sandbox Code Playgroud)

我们可以尝试以下from函数但由于我们没有Typeable递归点的信息而快速中断

from :: (Typeable a, Typeable …
Run Code Online (Sandbox Code Playgroud)

dsl haskell gadt

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

箭头中的可观察递归(或绑定)

我试图找到一种方法来转换正常的递归表示法,如| fib | 函数下面的箭头,保留尽可能多的递归表示法的结构.另外我想检查箭头.为此我创建了一个数据类型,其中包含每个Arrow {..}类的构造函数:

FIB:

fib 0 = 0
fib 1 = 1
fib n = fib (n-2) + fib (n-1)
Run Code Online (Sandbox Code Playgroud)

我的R数据类型,此数据类型的实例包含到相应构造函数的映射:

data R x y where
  -- Category
  Id       :: R a a
  Comp     :: R b c    -> R a b          -> R a c
  -- Arrow
  Arr      :: (a -> b) -> R a b
  Split    :: R b c    -> R b' c'        -> R (b,b') (c,c')
  Cache    :: (a -> a -> Bool) -> …
Run Code Online (Sandbox Code Playgroud)

recursion haskell arrows

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

基于可用约束确定方法的实现

假设我必须执行以下记忆功能.(请忽略它们纯粹的事实.)

memoEq   :: Eq a       => (a -> b) -> a -> b
memoOrd  :: Ord a      => (a -> b) -> a -> b
memoHash :: Hashable a => (a -> b) -> a -> b
Run Code Online (Sandbox Code Playgroud)

现在我想要一个允许我选择上述三个备忘录函数中"最佳"的构造.基本上做以下事情的东西:

memo f = case constraint_of_typevar_a_in f of
  Eq a       -> memoEq
  Ord a      -> memoOrd
  Hashable a -> memoHash
Run Code Online (Sandbox Code Playgroud)

你可以尝试使用类型类,但是你会得到重叠的实例:

class Memo a where
  memo :: (a -> b) -> a -> b

instance Eq a => Memo a where
  memo = …
Run Code Online (Sandbox Code Playgroud)

haskell template-haskell

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

实体框架复杂类型自定义验证,停止验证递归

我们使用复杂类型来管理我们的可翻译字段,如下所示:

[ComplexType]
public class Translated
{
    [Required]
    public string NL { get; set; }

    [Required]
    public string EN { get; set; }

    [ScaffoldColumn(false)]
    public string TranslatedText
    {
        get
        {
           return Util.Translate(NL, EN); 
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我们要求字段存在.但在某些情况下,整个Translated字段是可选的,如:

public class Question
{
    ...

    [Optional(ErrorMessage="Foo")]
    public Translated Description { get; set; }

    ...
}
Run Code Online (Sandbox Code Playgroud)

但是,似乎可以计算Optional属性,当它返回false时,结果不会执行任何操作.

class OptionalAttribute : ValidationAttribute 
{
    public override bool IsValid(object value)
    {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我将可选属性放在非复杂类型上时,它按预期工作,错误消息将始终为Foo.

最终目标是在两种情况下允许描述为空,但是当填充其中一个字段时,错误当然应该传播.

停止验证递归会导致该字段是可选的,但是如果字段填充,它也会阻止字段的验证.

有关如何实现这一目标的任何想法?

entity-framework customvalidator entity-framework-ctp5 entity-framework-4.1

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

使用Delphi客户端连接到ActiveResource/ActiveRecord

我一直在寻找让Delphi程序与RoR服务通信的方法.我可以使用任何SOAP库,例如:ActionWebService提供SOAP服务,然后我可以在Delphi程序中使用它.

但是,这需要一次find又一次地重新实现所有ActiveRecord方法(例如).即使它们只是委托方法,这也很麻烦.

谁知道更简单/更容易/更清洁的方式?

delphi activeresource

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