小编Sar*_*ard的帖子

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

Emacs相当于Vim的yy10p?

如何在Emacs中轻松复制10行?我找不到复制线快捷方式或功能.我可以使用C-aC-spcC-eM-w来费力地复制该行,但是如何将其粘贴多次呢?

在我去写自己的功能之前的任何想法.

emacs shortcuts editor

22
推荐指数
4
解决办法
8849
查看次数

在Go中解析日期

我正在尝试解析由焦油生成的时间戳,如'2011-01-19 22:15',但无法解决time.Parse的时髦API.

以下产生'解析时间'2011-01-19 22:15":月份超出范围'

package main
import (
    "fmt"
    "time"
    )

func main () {
    var time , error = time.Parse("2011-01-19 22:15","2011-01-19 22:15")
    if error != nil {
        fmt.Println(error.String())
        return
        }
    fmt.Println(time)
    }
Run Code Online (Sandbox Code Playgroud)

date go

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

Common Lisp中的高效收集功能

我正在学习Lisp并编写了以下函数来收集结果列表.

(defun collect (func args num)
  (if (= 0 num)
      ()
      (cons (apply func args)
        (collect func args (- num 1)))))
Run Code Online (Sandbox Code Playgroud)

它产生了与内置循环函数类似的输出.

CL-USER> (collect #'random '(5) 10)
(4 0 3 0 1 4 2 1 0 0)
CL-USER> (loop repeat 10 collect (random 5))
(3 3 4 0 3 2 4 0 0 0)
Run Code Online (Sandbox Code Playgroud)

但是当我尝试生成一个100,000个元素的列表时,我的collect函数会打击堆栈

CL-USER> (length (collect #'random '(5) 100000))
Control stack guard page temporarily disabled: proceed with caution
Run Code Online (Sandbox Code Playgroud)

而循环版本没有

CL-USER> (length (loop repeat 100000 collect (random 5)))
100000 …
Run Code Online (Sandbox Code Playgroud)

lisp optimization recursion common-lisp

5
推荐指数
2
解决办法
2410
查看次数

将转换构造函数与运算符重载相结合

为什么不为i2隐式调用转换构造函数?

class NumString
{
    public:
        NumString(const char*  s)
        {
        }

        int operator*( int i)
        {
            return 42;
        }
};


int main(void)
{
    int i1 = (NumString) "string" * 2;  //OK
    int i2 =  "string" * 2;             //ERROR
}
Run Code Online (Sandbox Code Playgroud)

c++

0
推荐指数
2
解决办法
80
查看次数

标签 统计

c ×1

c++ ×1

common-lisp ×1

compiler-errors ×1

date ×1

editor ×1

emacs ×1

gcc ×1

go ×1

lisp ×1

optimization ×1

recursion ×1

shortcuts ×1