小编qre*_*est的帖子

Haskell守护lambda函数?

是否有可能在lambda函数上有守卫?

例如:

\k
    | k < 0     -> "negative"
    | k == 0    -> "zero"
    | otherwise -> "positive"
Run Code Online (Sandbox Code Playgroud)

syntax haskell

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

如何在另一个使用sudo的用户的bash子shell中执行一系列命令?

我正在编写一个需要sudo多个命令的bash脚本.我可以做这个:

( whoami ; whoami )
Run Code Online (Sandbox Code Playgroud)

但我不能这样做:

sudo ( whoami ; whoami )
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

unix linux bash scripting

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

对于像vims的NERDtree这样的emacs是否有类似的东西

对于vim,有一个名为NERDtree的文件系统资源管理器:https://github.com/scrooloose/nerdtree

当然,Emacs还有替代或优质套餐吗?

emacs explorer file project

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

用于生成Haskell函数依赖(控制流)图的工具?

注意不是"功能依赖".是否有可用的工具允许我从源代码构建静态函数依赖图?向我指示哪些功能以图形方式依赖于哪些功能的东西.

haskell code-analysis static-analysis

30
推荐指数
1
解决办法
3743
查看次数

Haskell地图/邮编Vs. 列表理解

您最有可能写下以下哪项?

r = zip xs $ map sqrt xs
Run Code Online (Sandbox Code Playgroud)

要么

r = [(x, sqrt x) | x <- xs]
Run Code Online (Sandbox Code Playgroud)

互联网上的示例代码似乎表明前者更为丰富且是首选方式.

zip haskell list-comprehension combinators pointfree

19
推荐指数
7
解决办法
6584
查看次数

Haskell的mapM不是懒惰吗?

更新:好的,这个问题可能非常简单.

q <- mapM return [1..]
Run Code Online (Sandbox Code Playgroud)

为什么这永远不会回来?


mapM是不是懒得处理无限列表?

下面的代码挂起.但是,如果我用线B替换A线,它就不会再挂起了.或者,如果我在A行之前加上"splitRandom $",它也不会挂起.

Q1是:mapM不是懒惰的吗?否则,为什么用线B替换A行"修复此"代码?

Q2是:为什么前面的A行与splitRandom"解决"了这个问题?

import Control.Monad.Random
import Control.Applicative

f :: (RandomGen g) => Rand g (Double, [Double])
f = do
    b <- splitRandom $ sequence $ repeat $ getRandom
    c <- mapM return b -- A
    -- let c = map id b -- B
    a <- getRandom
    return (a, c)

splitRandom :: (RandomGen g) => Rand g a -> Rand g a
splitRandom code = evalRand code <$> getSplit

t0 …
Run Code Online (Sandbox Code Playgroud)

monads haskell lazy-evaluation

18
推荐指数
3
解决办法
2961
查看次数

为什么有些OCaml函数将()作为参数?

Unix模块中的示例:

val environment : unit -> string array
Run Code Online (Sandbox Code Playgroud)

为什么不呢:

val environment : string array
Run Code Online (Sandbox Code Playgroud)

ocaml

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

Haskell使用代理订单排序不可共享的列表

假设我有x :: [(n, a)]n是数字,a是不可订购的项目(不是Ord类).

我想用n对这个列表进行排序.

我做不到sort x因为a不可订购.我可以用a索引替换然后使用组装新列表,!!但这似乎是一个糟糕的解决方案.

备择方案?

sorting haskell

8
推荐指数
2
解决办法
230
查看次数

在GHC中,有没有办法打印模块的出口?

例如,如果我想查看来自Test.QuickCheck的输出,是否有一个命令我可以向GHCI发出这样的命令?

haskell

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

Haskell配对和非配对功能

我写了以下两个函数.

pair :: [a] -> [(a, a)]
pair [] = []
pair [x] = []
pair (x1:x2:xs) = (x1, x2) : pair xs

unpair :: [(a, a)] -> [a]
unpair [] = []
unpair ((x1, x2):xs) = x1 : x2 : unpair xs
Run Code Online (Sandbox Code Playgroud)

对将采用成对元素并制作它们的2元组.如果列表具有奇数个元素,则丢弃最后一个元素.Unpair是对的反面.

这些工作,但想知道是否有更简洁的方式来写这些.

haskell coding-style tuples

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