小编rtp*_*tpg的帖子

是同时读取可变线程安全?

假设变量在读取期间没有被修改的任何风险,那么变量是否同时被2个或更多个线程读取?

multithreading

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

haskell如何解决重叠实例?

如果我使用错误的术语,请原谅我,我是haskell类型操作的初学者...我试图使用具有功能依赖性的重叠实例来对HLists进行一些类型级编程.

这里我的目标是尝试编写类型类HNoNils l l',这HNoNils l l'意味着,l作为列表类型(例如:) Int : String : EmptyNil : Int : HNil,l'是没有特定空类型的相应列表类型EmptyNil(示例的结果:) Int:String:Int:HNil:

{-# LANGUAGE ExistentialQuantification,
  FunctionalDependencies,
  FlexibleInstances,
  UndecidableInstances,
  OverlappingInstances,
  TypeFamilies #-}

import Data.HList 
import Data.TypeLevel.Bool

--Type Equality operators
--usedto check if a type is equal to another
class TtEq a b eq | a b -> eq
instance     TtEq a a True
instance eq~False => TtEq a b eq 


data EmptyNil = EmptyNil deriving …
Run Code Online (Sandbox Code Playgroud)

haskell functional-dependencies type-level-computation

16
推荐指数
1
解决办法
2096
查看次数

haskell - 为除一个特定类型之外的所有类生成实例

是否有可能做类似的事情

class T a
class U a
instance U ()
instance ( NOT U a ) => T a
Run Code Online (Sandbox Code Playgroud)

上下文:我正在尝试编写一个函数,它接受HLists并删除某种类型的元素(这里是单元类型).

我觉得开放世界的假设可能存在一些问题,但即使能够以硬编码方式(而不是NOT U a,类似NOT~())这样做也应该是可能的.

编辑:正如CA McMann的评论所指出的,这个问题几乎与我的完全相同.如果主持人想要关闭这个,请随意.

haskell type-level-computation

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

使用派生类的C#foreach行为?

现在我有一个相对简单的类设置:

class A{
//stuff
}
class B:A{
//more stuff
}
public List<A> ListOfObjects;
Run Code Online (Sandbox Code Playgroud)

如果我这样做会发生什么

foreach(B i in ListOfObjects)
Run Code Online (Sandbox Code Playgroud)

我只能得到B型物品吗?它会应用一些OO魔法并将所有As转换为Bs吗?这甚至会起作用吗?

c#

12
推荐指数
2
解决办法
3813
查看次数

haskell - 我如何从值到类型?

想象一下,我有以下数据类型和类型类(具有适当的语言扩展):

data Zero=Zero
data Succ n = Succ n
class Countable t where
      count :: t -> Int
instance Countable Zero where
      count Zero = 0

instance (Countable n) => Countable (Succ n) where
      count (Succ n) = 1 + count n
Run Code Online (Sandbox Code Playgroud)

是否有可能编写一个函数,从Integer中提供一个正确的类型类实例的实例?基本上,一个功能f,使得count (f n) = n

我的尝试是以下变体,这在编译时给了我一些类型错误:

f::(Countable k)=> Int -> k
f 0 = Zero
f n = Succ $ f (n-1)
Run Code Online (Sandbox Code Playgroud)

我在寻找解决方案的过程中经常讨论依赖类型,但我还没有能够将这些讨论映射到我的用例.


背景:因为我意识到这将会得到很多"你为什么要这样做"这类问题......

我目前正在使用该Data.HList包来处理异构列表.在这个库中,我想构建一个函数shuffle,当给定一个整数时n,它会将n列表的th元素移到最后.

例如,如果我有l=1:"Hello":32:500 …

haskell dependent-type type-level-computation

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

如何在django查询集中获取表的计算元素?

我正在尝试使用django的queryset API来模拟以下查询:

SELECT EXTRACT(year FROM chosen_date) AS year, 
EXTRACT(month FROM chosen_date) AS month,
 date_paid IS NOT NULL as is_paid FROM 
    (SELECT (CASE WHEN date_due IS NULL THEN date_due ELSE date END) AS chosen_date,* FROM invoice_invoice) as t1;
Run Code Online (Sandbox Code Playgroud)

这个想法主要是在某些情况下,我宁愿在某些情况下使用date_due列而不是date列,但是,因为date_due是可选的,我有时必须使用date作为后备,并创建一个计算列chosen_date,而不必更改其余查询.

这是我在模仿这个时做的第一次尝试,我无法真正看到如何正确地使用基础api进行null测试,所以我选择了extra:

if(use_date_due):
    sum_qs = sum_qs.extra(select={'chosen_date': 'CASE WHEN date_due IS NULL THEN date ELSE date_due END'})
else: 
    sum_qs = sum_qs.extra(select={'chosen_date':'date'})
sum_qs = sum_qs.extra(select={'year': 'EXTRACT(year FROM chosen_date)',
                              'month': 'EXTRACT(month FROM chosen_date)',
                              'is_paid':'date_paid …
Run Code Online (Sandbox Code Playgroud)

django postgresql django-queryset

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

scala是否有"test-if-match"运算符?

可能重复:
Scala:返回布尔值的简短模式匹配形式

在我的scala代码中,我发现自己经常编写如下内容:

x match{
   case Type(params) => doStuffWith(params)
   case _ => /* do nothing*/
}
Run Code Online (Sandbox Code Playgroud)

是否已有一些预定义的运算符来执行此操作?我想如果我能写下这样的东西会更清楚:

if( x match Type(params)) {
    doStuffWith(params)
}
Run Code Online (Sandbox Code Playgroud)

基本上避免了奇怪的情况.我还有其他情况可以验证某些东西是否与内联方式相匹配,这样可以省去额外的一对括号.

我知道在编写更多迭代代码时这种事情可能更有用,但Scala似乎有很多隐藏的功能,我想知道是否有人有一个简单的解决方案.

scala pattern-matching

7
推荐指数
1
解决办法
723
查看次数

我可以在运行时区分类型类实例吗?

是否可以按如下方式实现类型类:

class SomeClass e where
    isEq :: (SomeClass e') => e -> e' -> Bool
Run Code Online (Sandbox Code Playgroud)

isEq x yxy这两个类型的同一个实例时,哪里会返回true ?

上下文:这是获得运行时类型测试的一种薄薄的尝试.虽然起初我读过Haskell有类型擦除,但我也读过最近对GHC的扩展,那里有一些运行时信息.

编辑:对于那些想知道我的用例的人......我一直在使用类型级编程来确保某些ADT的某些属性,即涉及资源使用.这些资源由不同类型表示(因此资源锁在类型级别实现).

我正在尝试编写一个需要识别资源写入/读取的优化过程.但由于我的所有资源都由不同的单例表示,其唯一的共同因素(除了所有值都是底部)是将它们组合在一起的类型类.

简而言之,我想在运行时,值级别使用我的类型级编程的结果.

haskell type-level-computation

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

我应该使用哪个JSObject?

我正在尝试使Java applet在其封闭环境中通过javascript进行交互.

到目前为止,我一直在使用netscape.javascript.JSObjectJS作为处理Java函数调用的类型,但我刚刚发现它还有一个sun.plugin.javascript.JSObject,甚至一个sun.plugin.javascript.navig.JSObject!

我已经尝试了解更多关于这两个其他版本无济于事.我应该坚持下去netscape.javascript.JSObject吗?

javascript java applet jsobject

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