小编rub*_*bik的帖子

Git 签出提交并附加到现有分支

我有一个本地存储库,我想将其快进到特定提交(可能不是远程存储库的 HEAD)。

所以我这样做:

git fetch master
git checkout sha
Run Code Online (Sandbox Code Playgroud)

然而,这使我处于分离的 HEAD 状态,这是我不想要的。是否有相当于git checkout -b branch_name sha, 当branch_name 已经存在时起作用?

简而言之,我必须将本地存储库的 HEAD 更新为远程提交。我已经尝试过git pull origin sha但没有成功。我无法使用git pull origin master,因为它将快进到远程的 HEAD,而我想快进到特定的提交。

git commit head

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

否定 fnmatch 模式

考虑这一模式:*.py。它匹配所有以py扩展名结尾的路径。现在,是否有可能找到与其他所有内容相匹配的模式?

我认为这会做到:*[!.][!p][!y],但显然fnmatch.fnmatch总是False带着这个返回。

我想避免使用正则表达式。我知道我可以使用它们,但在这种情况下这是不可能的。

python glob fnmatch

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

交错功能

我发现这段代码构建了一个与Thue-Morse序列相对应的列表:

thueMorse :: [Int]
thueMorse = 0 : interleave (map (1-) thueMorse) (tail thueMorse)
    where interleave (x:xs) ys = x : interleave ys xs
Run Code Online (Sandbox Code Playgroud)

它是完美的,可以创造奇迹,但我无法绕过它.一个例子:

> take 8 thueMorse 
[0,1,1,0,1,0,0,1]
Run Code Online (Sandbox Code Playgroud)

如果我interleave全局定义函数并使用它,我得到了,并且正确地说,这是一个例外:

> let interleave (x:xs) ys = x : interleave ys xs
> interleave [1,2,3] [4,5,6]
[1,4,2,5,3,6*** Exception: <interactive>:29:5-47: Non-exhaustive patterns in function interleave
Run Code Online (Sandbox Code Playgroud)

那么,上面的工作如何?是因为它是一个无限的列表所以永远交错是安全的吗?

recursion haskell

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

Vim在启动时没有设置`tex`文件类型

我注意到如果我用Vim打开一个不存在的HTML文件,文件类型会自动设置为html:

$ vim foobar.html
:set filetype # --> filetype=html
Run Code Online (Sandbox Code Playgroud)

另一方面,TeX也不会发生同样的情况.如果我创建一个不存在的文件,文件类型是plaintext,我必须保存文件并重新打开它以正确设置:

$ vim blabla.tex
:set filetype # --> filetype=plaintext
Run Code Online (Sandbox Code Playgroud)

我也试过Python,C,VimL,Javascript文件,文件类型总是立即设置.我不知道为什么TeX文件不会发生这种情况.

我能想到的唯一可能会干扰的是vim-latex.这有可能吗?如果是这样,我该如何解决这个问题呢?

如果它可能有帮助,是我不太长的.vimrc文件.

vim tex

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

为什么clang ++不能推断出lambda地图的类型?

我有以下代码:

enum RelationalOperator { LT, LTE, EQ, GTE, GT };
std::map<RelationalOperator, bool (*)(const Point&, const Point&)> ops = {
    { GTE, [](const Point& a, const Point& b) { return a >= b; } },
    { LTE, [](const Point& a, const Point& b) { return a <= b; } },
    { EQ, [](const Point& a, const Point& b) { return a == b; } },
    { GT, [](const Point& a, const Point& b) { return a > b; } },
    { …
Run Code Online (Sandbox Code Playgroud)

c++ lambda auto c++14

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

如何加速HTTP请求

我需要获取json数据,我正在使用urllib2:

request = urllib2.Request(url)
request.add_header('Accept-Encoding', 'gzip')
opener = urllib2.build_opener()
connection = opener.open(request)
data = connection.read()
Run Code Online (Sandbox Code Playgroud)

但是虽然数据不是那么大,但它太慢了.
有没有办法加快速度?我也可以使用第三方库.

python http urllib2

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

分部归还NaN

我必须划分两个非常大的整数(7000+位是常态).第一个总是小于第二个:

> let a = prod fp'
> let b = prod fq'
> a / b
NaN
> length . show $ a
7309
> length . show $ b
7309
> logBase 10 a  -- Ehm what? Whatever...
Infinity
Run Code Online (Sandbox Code Playgroud)

我确信有一种方法来划分这些整数.实际代码有点长:

module Main
    where

import Data.List (transpose, sort, groupBy)
import Math.Sieve.Factor (factor, sieve)


thueMorse :: [Int]
thueMorse = 0 : interleave (map (1-) thueMorse) (tail thueMorse)
    where interleave (x:xs) ys = x : interleave ys xs


cc :: [[Integer]] …
Run Code Online (Sandbox Code Playgroud)

floating-point haskell division

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

Haskell列表理解编译错误

我想创建一个函数,给出两个列表(浮点数,但可以是任何东西)给出一个列表,其中包含从第一个列表中获取两个元素并将其放在最后一个中的所有组合以及前者的所有组合最后一个元素(现在有更多元素)并将它放回第一个元素.

对于每一个动作,它也会给出最大的移动值(在第二个动作中只有一个移动,即值).它应该在第一个列表为空时结束(没有第二个移动).

我不能指望任何人理解这一点,例如:

next [1,2,3,4] [] -> [(([1,2], [3,4], 4), ([1,2,3],[4],3)), (([1,2], [3,4], 4), ([1,2,4],[3],4)), (([1,3], [2,4], 4), ([1,2,3],[4],2)), (([1,3], [2,4], 4), ([1,3,4],[2],4)).....
next [1,2] [3,4]  -> [(([], [1,2,3,4],2),)], ())
Run Code Online (Sandbox Code Playgroud)

到目前为止我所拥有的:

module Test where 

next :: [Float] -> [Float] -> [(([Float],[Float], Float),([Float],[Float], Float))]
next [] _               = []
next (a:b:[]) s     
    |a>b                = [([],a:b:s, a)]
    |otherwise          = [([],a:b:s, b)]
next d s                = [([x,z], i:j:s, j), b | i <- d, j <- d, i < j, x <- d, …
Run Code Online (Sandbox Code Playgroud)

haskell list-comprehension list

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

Phoenix Framework:未定义的函数LetsPlan.Event.fetch/2.但是fetch函数没有在任何地方记录

这是有问题的控制器操作(没有相应的视图,只是默认的视图):

  def show(conn, %{"id" => id}) do
    event = Repo.get_by!(Event, slug: id)
    render conn, "show.html", event
  end
Run Code Online (Sandbox Code Playgroud)

凤凰城失败了:

[error] #PID<0.633.0> running LetsPlan.Endpoint terminated
Server: localhost:4000 (http)
Request: GET /events/Evv_YCX71c
** (exit) an exception was raised:
    ** (UndefinedFunctionError) undefined function LetsPlan.Event.fetch/2
        (lets_plan) LetsPlan.Event.fetch(%{__meta__: #Ecto.Schema.Metadata<:loaded>, __struct__: LetsPlan.Event, conn: [...snip...] :conn)
        (phoenix_html) lib/phoenix_html/engine.ex:92: Phoenix.HTML.Engine.fetch_assign/2
        (lets_plan) web/templates/layout/app.html.eex:11: LetsPlan.LayoutView."app.html"/1
        (phoenix) lib/phoenix/view.ex:344: Phoenix.View.render_to_iodata/3
        (phoenix) lib/phoenix/controller.ex:633: Phoenix.Controller.do_render/4
        (lets_plan) web/controllers/event_controller.ex:1: LetsPlan.EventController.action/2
        (lets_plan) web/controllers/event_controller.ex:1: LetsPlan.EventController.phoenix_controller_pipeline/2
        (lets_plan) lib/phoenix/router.ex:261: LetsPlan.Router.dispatch/2
        (lets_plan) web/router.ex:1: LetsPlan.Router.do_call/2
        (lets_plan) lib/lets_plan/endpoint.ex:1: LetsPlan.Endpoint.phoenix_pipeline/1
        (lets_plan) lib/plug/debugger.ex:93: LetsPlan.Endpoint."call (overridable 3)"/2 …
Run Code Online (Sandbox Code Playgroud)

elixir phoenix-framework

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

预期类型`&amp;Vec&lt;u8&gt;`,找到`&amp;Vec&lt;&amp;u8&gt;`

我有这个小片段,但它不能编译,所有错误都源于combinations_n返回&Vec<&u8>而不是&Vec<u8>.

extern crate itertools;

use std::io;
use std::collections::BTreeMap;
use std::iter::Enumerate;
use itertools::Itertools;

const RANKS: [u8; 13] = [12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];

fn is_straight(hand: &Vec<u8>) -> bool {
    for (i, h) in hand[1..].iter().enumerate() {
        if h - hand[i] != 1 {
            return false;
        }
    }
    true
}

fn hand_value(hand: &Vec<u8>) -> u8 {
    hand.iter().fold(0_u8, |a, &b| a + 2u8.pow(b as u32));
}

fn generate_flush_table() ->  BTreeMap<u8,u8> …
Run Code Online (Sandbox Code Playgroud)

types rust

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