小编kir*_*gin的帖子

在fugitive.vim冲突差异中显示基础

默认情况下,如果你使用fugitive.vim:Gdiff上是与git的冲突文件缓冲区,你会得到一个三路DIFF显示HEAD,工作复印件(冲突标志),和merge.

我喜欢git config merge.conflictstyle diff3设置,包括基础(最近的共同祖先HEADmerge冲突标记.

不幸的是,即使diff3conflictstylein fugitive.vim中,你仍然只能获得3个窗格(没有基础).

有谁知道如何在另一个窗格中显示它?理想情况下是关于工作副本.

Tim Pope的评论似乎提供了一些线索,但我无法弄明白.

git vim git-merge vim-fugitive

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

Python:列表理解中的某个地方出了什么问题?

>>> [l for l in range(2,100) if litheor(l)!=l in sieve(100)]
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
>>> 2 in sieve(100)
True
>>> litheor(2)
True
Run Code Online (Sandbox Code Playgroud)

所以litheor(2)True2 in sieve(100)True,所以if列表理解中的条款是False.但为什么2仍然在列表理解的输出?

python primes list-comprehension

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

构造函数中的F#引用,数组和自标识符

我认为这是F#的一个众所周知的限制,但我找不到任何好的解决方法......

所以,这是代码(我试图让它尽可能简单,所以看起来它似乎没有任何意义):

[<ReflectedDefinition>]
type Human (makeAName: unit -> string) as self =
    let mutable cats : Cat array = [| |]
    do
        // get a cat
        cats <- Array.append cats [| new Cat (self, makeAName ()) |]
    member this.Cats = cats
and
 [<ReflectedDefinition>]
 Cat (owner : Human, name : string) = class end
Run Code Online (Sandbox Code Playgroud)

编译器说:

错误FS0452:引号不能包含内联汇编代码或数组上的模式匹配

实际上它是as self和数组属性getter 的组合打破了一切.

这里的要点是:

  • 我真的想使用数组,因为我希望WebSharper将我的集合转换为JavaSript数组.
  • 我真的需要构造函数中的自我标识符.
  • 我真的需要课程(即功能风格不起作用).
  • 每个方法的自标识符(member this.Foo)工作正常.

我能想到的一个解决方法是将构造函数设为私有,并使用静态方法构造对象.这样我就不需要了as self.但这很愚蠢.

还有更好的选择吗?


更新:

这是一个更简单的例子:

[<ReflectedDefinition>]
type User (uid: int) …
Run Code Online (Sandbox Code Playgroud)

f# websharper

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

矩阵中给定索引的增量

简要地说:存在类似的问题,最佳答案建议使用numpy.bincount。我需要同样的东西,但需要一个矩阵。

我有两个数组:

array([1, 2, 1, 1, 2])
array([2, 1, 1, 1, 1])
Run Code Online (Sandbox Code Playgroud)

它们共同构成应增加的索引:

>>> np.array([a, b]).T
array([[1, 2],
       [2, 1],
       [1, 1],
       [1, 1],
       [2, 1]])
Run Code Online (Sandbox Code Playgroud)

我想得到这个矩阵:

array([[0, 0, 0],
       [0, 2, 1],  # (1,1) twice, (1,2) once
       [0, 2, 0]]) # (2,1) twice
Run Code Online (Sandbox Code Playgroud)

矩阵将很小(例如5×5),索引的数量将很大(大约10 ^ 3或10 ^ 5)。

那么,有什么比for-loop 更好(更快)的东西吗?

python numpy

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

jsonToRepJson坏了吗?

我刚开始做一些Yesod + Haskell的东西.jsonToRepJson被破坏了吗?

我在下面制作了这段代码但是我总是在jsonToRepJson部分出错.它似乎没有得到预期的类型?

任何帮助都会很棒!谢谢:3

{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
import Yesod
import Data.Text

data APP = APP

instance Yesod APP

mkYesod "APP" [parseRoutes|
    / TestR GET
|]

getTestR :: Handler RepJson
getTestR = jsonToRepJson $ object ["test".= ("test"::Text)]
main::IO()
main = warpDebug 3001 APP
Run Code Online (Sandbox Code Playgroud)

这是我使用runhaskell时得到的

api.hs:18:12:
    Couldn't match expected type `RepJson' with actual type `Value'
    Expected type: Handler RepJson
      Actual type: HandlerT APP IO …
Run Code Online (Sandbox Code Playgroud)

haskell yesod

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

链接函数调用vs使用中间变量

我是Rust的新手,我发现很难理解整个所有权/借用概念....甚至在阅读了所有官方指南之后.

为什么以下代码编译没有任何问题?

use std::io;

fn main() {
    let mut input = io::stdin(); 
    let mut lock = input.lock(); 
    let mut lines_iter = lock.lines();

    for line in lines_iter {
        let ok = line.ok();
        let unwrap = ok.unwrap();
        let slice = unwrap.as_slice();

        println!("{}", slice);
    }
}
Run Code Online (Sandbox Code Playgroud)

......但这不是吗?

use std::io;

fn main() {
    let mut lines_iter = io::stdin().lock().lines();

    for line in lines_iter {
        let slice = line.ok().unwrap().as_slice();
        println!("{}", slice);
    }
}
Run Code Online (Sandbox Code Playgroud)

从我天真的角度来看,两个代码示例完全相同.唯一的区别是第一个使用一些中间变量,而第二个是链接函数调用.

在编译第二个时,它会对我大吼大叫

 - error: borrowed value does not live long enough
 - note: …
Run Code Online (Sandbox Code Playgroud)

compiler-errors lifetime rust

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

为什么这个 Hedgehog 生成器没有收缩得更快?

我制作了一个 Hedgehog 生成器,可以通过以下方式生成任意 256 位值:

genWord256 :: Gen Word256
genWord256 = do
  bytes <- Gen.integral (Range.linear 0 31)
  let lo = 2 ^ (8 * bytes)
      hi = 2 ^ (8 * (bytes + 1))
  pred <$> Gen.integral (Range.constant lo hi)
Run Code Online (Sandbox Code Playgroud)

让 size 参数决定数字中的字节数,我认为对我的应用程序很有意义。但是,评估此生成器如何缩小并应用于ceiling . logBase 2此,我的问题是:

为什么刺猬决定强调其初始结果的附近?我是否以某种方式误解了“不受大小参数影响的范围含义?( Range.constant) 我会认为这里的任何收缩都必须具有较少的位数。

?> Gen.print genWord256
=== Outcome ===
68126922926972638
=== Shrinks ===
112                 -- 7 bits
4035711763          -- 32 bits
106639875637011     -- 47 bits
281474976710655 …
Run Code Online (Sandbox Code Playgroud)

haskell haskell-hedgehog

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

403回复还可以吗?

在HTTP中,我知道标准的200响应最后带有“ OK”。但是我似乎找不到其他代码(例如403)是否需要OK。

例如(来自维基百科):

HTTP/1.1 200 OK
Date: Mon, 23 May 2005 22:38:34 GMT
Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux)
Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
Etag: "3f80f-1b6-3e1cb03b"
Content-Type: text/html; charset=UTF-8
Content-Length: 131
Connection: close

<html>
<head>
  <title>An Example Page</title>
</head>
<body>
  Hello World, this is a very simple HTML document.
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

因此,在403响应中它将以:

HTTP/1.1 403 OK
Run Code Online (Sandbox Code Playgroud)

要么:

HTTP/1.1 403 FORBIDDEN
Run Code Online (Sandbox Code Playgroud)

要不就:

HTTP/1.1 403
Run Code Online (Sandbox Code Playgroud)

http response

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

为什么 match 返回 None 而 findall 不返回?

我有这个字符串:

s = "mage('Images/mpins/pin5_Jul1.png', new"
Run Code Online (Sandbox Code Playgroud)

这是我的模式:

patt_img = r'\w+.png'
Run Code Online (Sandbox Code Playgroud)

为什么

re.findall(patt_img,s)
Run Code Online (Sandbox Code Playgroud)

返回

['pin5_Jul1.png']
Run Code Online (Sandbox Code Playgroud)

match返回None

m = re.match(patt_img,s)
>>> type(m)
<type 'NoneType'>`
Run Code Online (Sandbox Code Playgroud)

python regex match

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

如何从mainview中删除UIAlertview

在我正在开发的应用程序中,我展示了一个UIAlertView.使用NSTimer我删除调用该方法的警报removeFromSuperView.警报已删除,但随后任何控件都可以在当前视图上运行.有人可以帮我解决吗?这是我显示警报的代码:

UIAlertView *alert=[UIAlertView alloc]initWithTitle:@"A" message:@"B" delegate:self cancelButtonTitle:nil otherButtonTitles:nil, nil];
        [alert show];
        [alert release];
[NSTimer scheduledTimerWithTimeInterval:4.0 target:self selector:@selector(removeAlert:) userInfo:nil repeats:NO];
Run Code Online (Sandbox Code Playgroud)

而定时器调用的方法:

-(void)removeAlert:(id)sender
{
    [alert_View removeFromSuperview];
}
Run Code Online (Sandbox Code Playgroud)

iphone uialertview ios

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