我正在学习Haskell.我的兴趣是将它用于个人计算机实验.现在,我正试图看看Haskell有多快.许多人声称与C(++)相同,如果这是真的,我会非常高兴(我应该注意到我将使用Haskell,无论它是否快,但快速仍然是一件好事).
我的测试程序用一个非常简单的算法实现π(x):Primes数字为结果加1.素数在1和√x之间没有整数除数.这不是算法之争,这纯粹是为了编译器性能.
Haskell似乎在我的计算机上慢了大约6倍,这很好(仍然比纯Python快100倍),但这可能只是因为我是一个Haskell新手.
现在,我的问题是:如何在不改变算法的情况下优化Haskell实现?Haskell真的与C的性能平价吗?
这是我的Haskell代码:
import System.Environment
-- a simple integer square root
isqrt :: Int -> Int
isqrt = floor . sqrt . fromIntegral
-- primality test
prime :: Int -> Bool
prime x = null [x | q <- [3, 5..isqrt x], rem x q == 0]
main = do
n <- fmap (read . head) getArgs
print $ length $ filter prime (2:[3, 5..n])
Run Code Online (Sandbox Code Playgroud)
这是我的C++代码:
#include <iostream>
#include <cmath>
#include <cstdlib>
using …Run Code Online (Sandbox Code Playgroud) 例如,Haskell具有id功能,Julia具有该identity功能,并且SO上的许多问题处理身份功能.(我想在Python中你可以这样做lambda x:x)
我一直在试图想到这个功能的用例; 我失败了
身份功能的目的是什么,它的常见用例是什么?
我有一个灰度图像.我想过滤它,white -> color1以及black -> color2.两种颜色都是十六进制CSS语法.为了达到这个效果,我需要做什么数学运算?
我正在使用这种语法:
<!-- just an example -->
<filter id="colorMeMatrix">
<feColorMatrix in="SourceGraphic"
type="matrix"
values="0 0 0 0 0
1 1 1 1 0
0 0 0 0 0
0 0 0 1 0" />
Run Code Online (Sandbox Code Playgroud)
我真的很喜欢idoemacs中的模糊匹配.我想拥有自动完成功能.最好随着auto-complete,因为我有ac-python和其他事情设置auto-complete.我知道auto-complete如果找不到正常匹配,则提供模糊匹配,但我通常需要这样.
我有一个大的10,000,000长度数组,包含行.我需要单独洗牌那些行.例如:
[[1,2,3]
[1,2,3]
[1,2,3]
...
[1,2,3]]
Run Code Online (Sandbox Code Playgroud)
至
[[3,1,2]
[2,1,3]
[1,3,2]
...
[1,2,3]]
Run Code Online (Sandbox Code Playgroud)
我正在使用
map(numpy.random.shuffle, array)
Run Code Online (Sandbox Code Playgroud)
但它是一个python(而不是NumPy)循环,它占用了99%的执行时间.可悲的是,PyPy JIT没有实现numpypy.random,所以我运气不好.有没有更快的方法?我愿意用任何库(pandas,scikit-learn,scipy,theano,等,只要它使用一个numpy的ndarray或衍生物.)
如果没有,我想我会使用Cython或C++.
*.zsh文件在默认模式下打开(对我来说是文本模式).但是,sh-mode实际上是多种模式,包括zsh,bash等的行为.如何告诉emacs *.zsh专门在sh-mode的zsh风格中打开文件?
如何改变一些外边界或内边界的颜色?每当我更换border-color框架时,我都看不到任何变化,也不允许我改变边框宽度.
到目前为止,工作是什么
(set-frame-parameter (selected-frame) 'internal-border-width 15)
Run Code Online (Sandbox Code Playgroud)
这会在缓冲区周围添加一些框架.
但我不知道如何改变内在的颜色.有谁知道如何在工作空间周围有一个漂亮的边框/框架?
任何方法都可以.
编辑:添加了sds完成的:
我希望它周围的区域有不同的颜色,所以在红色之外.

我找到了一个我想要完成的框架的例子(读:这就是我一直以来所做的).

小牛很生气我的应用程序有太多"空闲唤醒".我知道这与计时器和OS X尝试使我的应用程序更节能的方式有关.如何调试这些空闲唤醒?或者可能的原因是什么?
大多数情况下,Vimperator状态行只占用空间.有没有办法自动隐藏它所以它只显示我何时使用它?
特定
zsh 5+setopt chase_linksPWD 没有设置异常 是
[[ "$PWD" == "${${:-.}:A}" ]]
Run Code Online (Sandbox Code Playgroud)
总是如此吗?
emacs ×3
haskell ×2
zsh ×2
autocomplete ×1
border ×1
c++ ×1
cocoa ×1
css ×1
css3 ×1
firefox ×1
frame ×1
fuzzy ×1
ido ×1
julia ×1
linux ×1
macos ×1
numpy ×1
objective-c ×1
performance ×1
python ×1
random ×1
shell ×1
svg ×1
svg-filters ×1
vimperator ×1