小编Aro*_*Lee的帖子

zsh shell 不显示 git 分支名称

我的文件中有以下代码.zshrc。当我转到我的存储库时,git 分支名称不会显示在控制台的右侧,直到我使用以下命令获取 .zshrc 文件

源~/.zshrc

parse_git_branch() {
     git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}

RPS1=`parse_git_branch`
Run Code Online (Sandbox Code Playgroud)

zshrc

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

如何从 Vim 的 match() 函数中删除颜色突出显示

我想有第二颜色亮点的Vim,简约的方式做的就是使用:match:2match:3match命令:

:match TODO /pattern/
Run Code Online (Sandbox Code Playgroud)

TODO是亮点组;图案将像 一样突出显示':/'

我很难弄清楚如何去除颜色。

vim

4
推荐指数
2
解决办法
382
查看次数

为什么我的Haskell代码与Swift和C相比是如此之慢

这是非常简单的Haskell代码,用于查找满足毕达哥拉斯定理的1到200的所有毕达哥拉斯整数X ^ 2 = Y ^ 2 + Z ^ 2

哈斯克尔:

let l = [1..200]
let pythagoras = [ x | x <- l, y <- l, z <- l, x^2 == y^2 + z^2]
Run Code Online (Sandbox Code Playgroud)

完成它需要24.1秒,

Swift:使用标准循环 0.05秒

C:使用标准循环 0.022秒

在此输入图像描述

haskell

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

做出更好的Haskell功能

我有以下Haskell功能

fun::Vertex3 GLfloat -> Vertex3 GLfloat ->  Vertex3 GLfloat
fun (Vertex3 x0 y0 z0) (Vertex3 x1 y1 z1) = do sth here
        where
            p0 = (Vertex3 x0 y0 z0)
            p1 = (Vertex3 x1 y1 z1)
            p = p0 + p1
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种方法可以不在 (Vertex3 x0 y0 z0) (Vertex3 x1 y1 z1)代码中重复

我正在寻找一些东西:

fun::Vertex3 GLfloat -> Vertex3 GLfloat ->  Vertex3 GLfloat
fun p0 p1 = do sth here
    where 
        p0 = (Vertex3 x0 y0 z0)
        p1 = (Vertex3 x1 y1 …
Run Code Online (Sandbox Code Playgroud)

haskell

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

Haskell覆盖函数

我尝试编写一个函数来检查两个向量是否相等:

Compare Vec1 [1, 2, 3]   Vec1 [1, 2, 4]
Compare VecS ["a","b", "c"] VecS ["a", "b", "d"]
Run Code Online (Sandbox Code Playgroud)

但是,在我的功能上,我对两种情况都有"几乎"相同的实现,

有没有办法简化我的代码,以便它只有一个Integer和String实现

data MyVector = Vec1 [Integer] | VecS[String]  

eqAssert::MyVector->MyVector->Bool
eqAssert (Vec1 []) (Vec1 []) = True
eqAssert (Vec1  _) (Vec1 []) = False 
eqAssert (Vec1 (x:cx)) (Vec1 (y:cy)) =
  if length (x:cx) /= length (y:cy)
    then False
    else (if x /= y then False else eqAssert (Vec1 cx) (Vec1 cy))

eqAssert (VecS []) (VecS []) = True
eqAssert (VecS …
Run Code Online (Sandbox Code Playgroud)

haskell

2
推荐指数
1
解决办法
394
查看次数

加入Haskell的不同monad

我知道我可以使用join来删除第一级列表

join [["dog"]] "输出 ["dog"]

但为什么以下不起作用

join $ (Just ["dog"]) 

got error:
Couldn't match type ‘[]’ with ‘Maybe’
Run Code Online (Sandbox Code Playgroud)

我们知道Maybe并且[]都是Haskell的Monad,

join(Monad m)=> m(m a) -> m a
Run Code Online (Sandbox Code Playgroud)

Maybe 是Monad

[] 是Monad

这有什么问题?

在我看来,只为同一类型的Monad加入,如果我错了,请纠正我.

是否有任何类似于连接的函数,如上面给出的例子?

我知道我可以这样做

fromJust (Just ["dog"]) 

"output:  ["dog"]
Run Code Online (Sandbox Code Playgroud)

但我需要提前知道.

monads haskell

2
推荐指数
1
解决办法
174
查看次数

需要帮助Haskell正则表达式

给出一些字符串:"\begin","\end""\section"等.

我想用以下函数和正则表达式匹配它们:

matchTest (mkRegex '\\[:alnum:]+')  "\begin"
Run Code Online (Sandbox Code Playgroud)

当我在GHCi中测试时,我总是得到False,

有没有人知道如何匹配模式"\begin"或类似"\end"等.

regex haskell

2
推荐指数
1
解决办法
82
查看次数

空列表问题的头函数

我想在地图中使用'head'功能.问题是'head'函数只接受非空列表.我有清单列表:

let ll =[["dog", "cat"], ["pig", "cow"], []]
Run Code Online (Sandbox Code Playgroud)

我需要两次迭代列表列表

let listOne = filter(\x -> if length x > 0) ll
map(\x -> head x) listOne
Run Code Online (Sandbox Code Playgroud)

我想知道我是否可以迭代列表列表一次或在地图中放入"if condition"而不使用'filter'

任何建议将不胜感激.

haskell list filter

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

如何像常规 shell 命令一样在命令行中运行 GHCi

有什么办法可以像 shell 中的常规命令一样在命令行上运行 GHCi 吗?

例如: :browse in GHCi - 列出特定模块的所有功能。

但我想在 shell 上运行它,例如: ghci --browse "MyModule" 它列出了模块的所有功能

我知道 hoogle 可以在 shell 上运行它,例如:hoogle Monad

haskell

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

在Haskell函数之外的地方使用

我想知道我们是否可以函数外使用?例如

fun::Int->Int
fun n = n + 1

main = do
     fun x where x = 30
Run Code Online (Sandbox Code Playgroud)

显然它在编译时不起作用,

我想将x声明为局部变量,仅 用于娱乐

haskell

-1
推荐指数
1
解决办法
83
查看次数

尝试理解Haskell中的Applicative

class Functor f where
    fmap :: (a -> b) -> f a -> f b

class (Functor f) => Applicative f where
    pure a = f a
    <*> :: f (a -> b) -> f a -> f b
Run Code Online (Sandbox Code Playgroud)

我试着理解Haskell中的ApplicativeApplicative的定义来看,它看起来像Functor的子类

我假设fmap就像Functor的接口(在Java世界中)如果来自Functor的Applicative子类那么它需要从Functor实现fmap,但是FunctorApplicative中的fmap 在签名上是不同的

(a -> b) -> f a -> f b
f (a -> b) -> f a -> f b
Run Code Online (Sandbox Code Playgroud)

有谁能解释为什么?

haskell

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

从Num实施复杂

我是Haskell的新手,想学习如何从Num类实现我的复数.

data Complex = Complex{x::Float, y::Float} deriving (Show)

instance Num Complex where
        (Complex x1 y1) + (Complex x2 y2) = Complex(x1 + x2) (y1 + y2)
        (Complex x1 y1) - (Complex x2 y2) = Complex(x1 - x2) (y1 - y2)
        (Complex x1 y1) * (Complex x2 y2) = Complex(x1*x2 - y1*y2) (x1*y2 + x2*y2)
        fromInteger n                     = Complex(fromInteger n) (fromInteger n) 
        signum (Complex x y)              = Complex(signum x) (signum y) 
        abs (Complex x y)                 = Complex(abs x) (abs y) 
Run Code Online (Sandbox Code Playgroud)

我的问题是如何使用 …

haskell

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

标签 统计

haskell ×10

filter ×1

list ×1

monads ×1

regex ×1

vim ×1

zshrc ×1