小编sdc*_*vvc的帖子

unboxed类型和严格性之间的关系是什么?

未装箱的类型,比如Int#,和严格的功能,f (!x) = ...是不同的,但我看到概念上的相似性 - 他们在某种程度上不允许暴力/懒惰.如果Haskell是像Ocaml这样的严格语言,那么每个函数都是严格的,并且每个类型都是未装箱的.unboxed类型与强制执行之间的关系是什么?

evaluation haskell lazy-evaluation strictness

29
推荐指数
3
解决办法
3598
查看次数

令人惊讶的软件漏洞或漏洞?

您见过的最奇怪/最复杂/最令人惊讶/深度隐藏的软件漏洞或攻击是什么?在代码中你认为没有隐藏的危险,但错了?

[澄清:每个人都知道SQL注入,XSS或缓冲区溢出 - 通常由粗心编码引起的错误.但事情像肯·汤普森隐藏的木马(反思信任信托:http://cm.bell-labs.com/who/ken/trust.html),最近在Linux内核(NULL解除引用漏洞HTTP://isc.sans. org/diary.html?storyid = 6820),或使用拒绝服务对RNG进行复杂攻击(http://news.ycombinator.com/item?id=639976)让我非常不安.

更新:感谢大家的回答,他们很棒.我很难做出选择.最终,我决定将赏金奖励给侧通道/电源监控攻击.然而,你所有的答案结合起来表明我必须更多地了解安全性,因为它是一个非常深刻的主题:).

security

28
推荐指数
13
解决办法
3969
查看次数

Ocaml中的高阶类型构造函数和函子

可以具有以下多态函数

let id x = x;;
let compose f g x = f (g x);;
let rec fix f = f (fix f);;     (*laziness aside*)
Run Code Online (Sandbox Code Playgroud)

是为类型/类型构造函数或模块/仿函数编写的?我试过了

type 'x id = Id of 'x;;
type 'f 'g 'x compose = Compose of ('f ('g 'x));;
type 'f fix = Fix of ('f (Fix 'f));;
Run Code Online (Sandbox Code Playgroud)

对于类型但它不起作用.

这是类型的Haskell版本:

data Id x = Id x
data Compose f g x = Compose (f (g x))
data Fix f = Fix (f (Fix f))

-- …
Run Code Online (Sandbox Code Playgroud)

ocaml functional-programming

28
推荐指数
2
解决办法
4976
查看次数

多态种有什么用?

多态种类是Haskell类型系统的扩展,由UHC 支持,允许

data A x y = A (y x)
Run Code Online (Sandbox Code Playgroud)

被打字(kinded?)as a -> (a -> *) -> *.它们对什么有用?

polymorphism haskell higher-kinded-types

17
推荐指数
2
解决办法
1664
查看次数

monads和ZipList以外的应用函子?

两个着名的应用实例是单子和拉链.还有其他例子吗?

haskell functional-programming

14
推荐指数
3
解决办法
1707
查看次数

Functor类中(<$)的目的是什么?

Functor类包含一个隐藏的第二构件:

class Functor f where
  fmap :: (a -> b) -> f a -> f b
  (GHC.Base.<$) :: a -> f b -> f a
Run Code Online (Sandbox Code Playgroud)

文档:

用相同的值替换输入中的所有位置.默认定义是fmap . const,但可以使用更高效的版本覆盖它.

我想知道更多.为什么这个fmap . const成语是一个单独的成员?替代实施如何更有效?这个组合器的应用是什么?

haskell functor

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

延续monad"界面"

州monad"界面"

class MonadState s m where
    get :: m s
    put :: s -> m ()
Run Code Online (Sandbox Code Playgroud)

(+ return和bind)允许使用State monad构造任何可能的计算而不使用State构造函数.例如,State $ \s -> (s+1, s-1)可以写成

 do s <- get
    put (s-1)
    return (s+1)
Run Code Online (Sandbox Code Playgroud)

相若方式,我从来没有使用Reader构造函数,因为我可以通过创建一个计算ask,return(>>=).准确地说:Reader f == ask >>= return . f.

对于continuation来说是否同样如此 - 是否可以编写所有Cont r a使用的实例callCC(唯一的函数MonadCont),返回和绑定,并且永远不要输入类似的东西Cont (\c -> ...)

monads continuations haskell state-monad

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

Haskell - 在数据声明中指定种类

在这个宣言中

data Const a = Const Integer
Run Code Online (Sandbox Code Playgroud)

Haskell推断出的Const* -> *.是否可以改为Const采用类型构造函数,所以它会是(* -> *) -> *?理想情况下,它应该是a -> *,但没有多态类型.此线程显示一个解决方案 - 添加未使用的构造函数 自2002年以来情况发生了变化吗?

haskell types functional-programming higher-kinded-types

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

分布式计算与线程

分布式计算和线程有多相似?我发现有两篇论文得出了相反的结论:

"多线程比网络更容易.线程如何简单,类似于网络代码"

http://software.intel.com/file/14723

(这给我的印象是它们非常相似,在封装后这两种方法可以使用相同的代码完成 - 但也许我错了)

"关于分布式计算的说明"

http://research.sun.com/techrep/1994/abstract-29.html

(这有很大的区别)

我确信事实介于两者之间.什么是中庸之道?有没有技术可以统一这两种范式?或者由于网络和并发之间的根本区别,这些尝试失败了吗?

language-agnostic theory networking multithreading

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

使用System.DirectoryServices.AccountManagement时的DirectoryServicesCOMException

我正在尝试使用System.DirectoryServices.AccountManagment确定用户是否是给定组的成员.

  • 我在64位系统上的SharePoint 2007中的SharePoint WebPart中执行此操作.
  • 项目目标是.NET 3.5
  • 在web.config中启用了模拟.
  • 有问题的IIS站点使用IIS应用程序池,并将域用户配置为标识.

我可以实例化PrincipalContext如下:

PrincipalContext pc = new PrincipalContext(ContextType.Domain)

接下来,我试着抓住一个校长:

using (PrincipalContext pc = new PrincipalContext(ContextType.Domain))
{
   GroupPrincipal group = GroupPrincipal.FindByIdentity(pc, "MYDOMAIN\somegroup");
   // snip: exception thrown by line above.
}
Run Code Online (Sandbox Code Playgroud)

以上和UserPrincipal.FindByIdentity用户SAM都抛出DirectoryServicesCOMException:"登录失败:未知用户名或密码错误"

我已经尝试将完整的SAMAccountName传递给FindByIdentity(以MYDOMAIN \用户名的形式)或只是用户名而行为没有变化.我已尝试使用其他凭据HostingEnvironment.ImpersonateSPSecurity.RunWithElevatedPrivileges方法执行代码,并且也会遇到相同的结果.

我还尝试使用域名实例化我的上下文:

Principal Context pc = new PrincipalContext(ContextType.Domain, "MYDOMAIN");

这引发了PrincipalServerDownException:"无法联系到服务器."

我正在研究一台相当硬化的服务器.我没有锁定系统,所以我不确定它到底做了什么.如果我需要为我的池标识用户或域安全策略分配凭据以使这些凭据有效,我可以相应地配置域.是否有任何设置会阻止我的代码运行?我在代码本身中遗漏了什么吗?这在SharePoint网站中是不可能的吗?

编辑:经过进一步测试,我的代码在面向.NET 4.0的控制台应用程序中测试时正常运行.我针对不同的框架,因为在针对.NET 3.5出于某种原因我没有在控制台应用程序中使用AccountManagement.

using (PrincipalContext pc = new PrincipalContext(ContextType.Domain))
using (UserPrincipal adUser = UserPrincipal.FindByIdentity(pc, "MYDOMAIN\joe.user"))
using (GroupPrincipal adGroup …
Run Code Online (Sandbox Code Playgroud)

c# sharepoint-2007 account-management c#-3.0

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