小编McB*_*den的帖子

在Vim中,如何找出关键组合的作用

我不小心按了一个shorcut键,我知道vim做了一些事情,但我不知道是什么.

如何找出快捷键的作用?

vim

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

在Haskell中,我们何时使用let?

在下面的代码中,我可以把最后一个词放在in前面.它会改变什么吗?

另一个问题:如果我决定放在in最后一个短语的前面,我是否需要缩进它?

我试着没有缩进和拥抱抱怨

do {...}中的最后一个生成器必须是表达式

import Data.Char
groupsOf _ [] = []
groupsOf n xs = 
    take n xs : groupsOf n ( tail xs )

problem_8 x = maximum . map product . groupsOf 5 $ x
main = do t <- readFile "p8.log" 
          let digits = map digitToInt $concat $ lines t
          print $ problem_8 digits
Run Code Online (Sandbox Code Playgroud)

编辑

好的,所以人们似乎不明白我在说什么.让我重新说一下:鉴于上述背景,以下两个是否相同?

1.

let digits = map digitToInt $concat $ lines t
print $ problem_8 digits
Run Code Online (Sandbox Code Playgroud)

2.

let …
Run Code Online (Sandbox Code Playgroud)

whitespace haskell scope let where-clause

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

如何使用pacman查看发行说明/更改日志

像许多弓箭手一样,我pacman每天都会更新我的软件.通常会有这样的更新:

foo-1.1 ---> foo.1.2
Run Code Online (Sandbox Code Playgroud)

我不知道是否有一种方法,看看有什么已经从更新foo-1.1foo-1.2或发布说明解释错误修复或新功能等喜欢的东西pacman -Log foo.

archlinux

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

如何在IPython中使用管道

在Linux终端中,当一个命令的输出太长而无法在一个页面中读取时,我可以这样做:

cat file | less
Run Code Online (Sandbox Code Playgroud)

这样我就可以读取并向上和向下滚动cat文件的输出.

我怎么能在IPython中做到这一点?

例如,我试过这个并没有用:

whos | less
Run Code Online (Sandbox Code Playgroud)

我最初的问题是,whos通过Shift + Page Up来看,输出太多了,我不想更改滚动缓冲区.

python scroll ipython pager ipython-magic

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

如何从头开始编写JPEG文件解码器

我知道有很多这方面的工具.我的目标是学习.所以我可以用fopen()读取一个JPEG文件,我知道这是一个二进制文件.那又怎样?我知道我可以学习JPEG规范.但它似乎没有说明二进制jpeg文件的结构是什么.

这个文件包含0和1如何转换这个或者我怎么知道哪个比特链意味着什么?

我遇到过这个例子:nano jpeg decoder 但是读取代码非常困难

提前致谢

PS:这个普林斯顿家伙已经做了一个关于此的项目,提供了一个很好的参考

jpeg

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

刷新Vim缓冲区

我正在编辑HTML文件.我使用这个keymap启动firefox来预览页面:

map <F6> :update<CR>:silent !xdg-open %:p<CR>
Run Code Online (Sandbox Code Playgroud)

但是在这个命令之后,Vim窗口变成了全黑.我需要滚动每一行才能再次出现.

所以我想写一个函数来刷新缓冲区.这是我做的:

function! Refresh()                                                                                                                                               
    " code
    set noconfirm
    bufdo e!
    set confirm
endfunction

nmap <F5> :call Refresh()<CR>
Run Code Online (Sandbox Code Playgroud)

我从这篇文章中得到了这个想法.但它不起作用.

vim

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

bash中是否有"set"数据结构?

Python有一个"set"类型,它包含唯一的对象.Bash有同等的东西吗?

我想继续添加元素到这样的bash"set",并且永远不会有重复.

bash set

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

这个明星代码中的明星是什么意思?

我在unm-hip包中找到了这段代码.那么Pixel是一个功能?

class Imageable i where
  type Pixel i :: *
  rows :: i -> Int
  cols :: i -> Int
  ref  :: i -> Int -> Int -> (Pixel i)
  makeImage :: Int -> Int -> PixelOp (Pixel i) -> i
  pixelList :: i -> [Pixel i]
  pixelList i = [ ref i r c | r <- [0..(rows i - 1)], c <- [0..(cols i - 1)]]
Run Code Online (Sandbox Code Playgroud)

haskell

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

这个Haskell代码会占用太多内存吗?

如在此代码中:

import Data.Char
groupsOf _ [] = []
groupsOf n xs = 
    take n xs : groupsOf n ( tail xs )

problem_8 x = maximum . map product . groupsOf 5 $ x
main = do t <- readFile "p8.log" 
      let digits = map digitToInt $concat $ lines t
      print $ problem_8 digits
Run Code Online (Sandbox Code Playgroud)

我意识到在Haskell中许多程序构造并且似乎存储了一些中间结果,例如groupsOf上面代码中的列表.以上代码是来自Haskell网站的 Euler项目问题​​8的参考答案.原始问题要求在一个非常长的数字链中连续5位数的最大乘积,例如45343231635723421312443535767983456.因此代码将计算所有产品并将其存储为列表.在其他语言中,我认为它们只会保留一个临时的最大值,并丢弃任何较小的值.

那么groupsOf真的存储了所有中间结果吗?如果问题扩大怎么办?它会分配太多内存吗?

haskell tailrecursion-modulo-cons

9
推荐指数
2
解决办法
448
查看次数

如何将Int字段限制为一系列值?

在我的数据中

data User = User { uRank :: Int, uProgress :: Int }
Run Code Online (Sandbox Code Playgroud)

我想限制uRank一个值列表[-1,1,3],例如.

我该怎么做呢?

haskell

8
推荐指数
3
解决办法
900
查看次数