小编Ale*_*lov的帖子

elisp:标识符中的斜杠

标识符(例如函数名)中斜杠的确切含义是什么?喜欢这里

我想这是一些命名空间替代品,但我想知道如何实际使用它.指向文档的链接可以; 不知何故,我从未设法自己找到它.

elisp slash identifier

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

过滤使用 fs::read_dir() 发现的文件或目录

我有这个功能:

fn folders(dir: &Path) -> Result<Vec<PathBuf>, io::Error> {
    fs::read_dir(dir)?
        .into_iter()
        .map(|x| x.map(|entry| entry.path()))
        .collect()
}
Run Code Online (Sandbox Code Playgroud)

其实是从这里借来的。功能正常;不幸的是,我不太明白它是如何工作的。

Ok(["/home/ey/dir-src/9", "/home/ey/dir-src/11", "/home/ey/dir-src/03 A Letter of Explanation.mp3", "/home/ey/dir-src/02 Egyptian Avenue.mp3", "/home/ey/dir-src/alfa", "/home/ey/dir-src/10"])
Run Code Online (Sandbox Code Playgroud)

测试输出显示目录和文件,正如它应该的那样。我不知道在哪里放置文件/目录过滤。我不明白为什么映射里面的映射:它不只是一个简单的路径列表吗?这个表达式中到底发生了什么?

更新:

fn folders(dir: &Path) -> Result<Vec<PathBuf>, io::Error> {
    fs::read_dir(dir)?
        .into_iter()
        .map(|x| x.map(|entry| entry.path()))
        .filter(|x| {x.as_ref().map(|entry| entry); true})
        .collect()
}
Run Code Online (Sandbox Code Playgroud)

插入一个简单的过滤器(总是true)。它至少正在编译,但我仍然不知道应该如何使用entry文件/目录检查。对不起 :)

iteration mapping filtering file rust

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

Haskell,堆栈:找到可执行文件

我正在寻找类似的东西

$ stack whereis hasktags
Run Code Online (Sandbox Code Playgroud)

其中whereis行为或多或少像UNIX whereis命令.hasktags是这样运行:

$ stack exec -- hasktags
Run Code Online (Sandbox Code Playgroud)

executable haskell path haskell-stack

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

Clojure,Java interop:如何获取File.separator?

不知怎的,我无法访问路径组件分隔符:File.separator,根据传说.这些是我目前的进口:

(ns pcc.core
  (:require [me.raynes.fs :as fs])
  (:import java.io.File)
  (:require [clojure.java.io :as io])
  (:require [clojure.string :as string])
  (:require [clojure.tools.cli :refer [parse-opts]])
  (:gen-class))
Run Code Online (Sandbox Code Playgroud)

可能无法达到正确的语法.

java interop clojure

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

emacs:组织模式,导出(ox-html,ox-latex,无法打开加载文件)

GTD 设置中有一个片段:


;; 显式加载所需的导出器

(需要'ox-html)

(需要“牛乳胶”)

(需要 'ox-ascii)


无法打开加载文件。

它们应该是组织模式的一部分,不是吗?系统上似乎不存在像 ox-html.el 这样的文件(Linux、Emacs 24.3.1)。谷歌搜索结果稀缺且令人困惑。我必须安装什么东西吗?

emacs export org-mode

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

Haskell:否定类型Ordering的值

有没有办法否定或反转类型订购的价值?像这样的东西:

inv = not compare
Run Code Online (Sandbox Code Playgroud)

haskell

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

Jupyter:找不到行魔术功能

我有一个持续的错误:

%%writefile csvmagic.py
import pandas as pd
from io import StringIO

def csv(line, cell):
    sio = StringIO(cell)
    return pd.read_csv(sio)

def load_ipython_extension(ipython):
    """This function is called when the extension is
    loaded. It accepts an IPython InteractiveShell
    instance. We can register the magic with the
    `register_magic_function` method of the shell
    instance."""
    ipython.register_magic_function(csv, 'cell')

Overwriting csvmagic.py



%reload_ext csvmagic
%%csv
col1,col2,col3
0,1,2
3,4,5
7,8,9

UsageError: Line magic function `%%csv` not found.
Run Code Online (Sandbox Code Playgroud)

线魔法”在我看来不太合适,但我想不通。

来源在这里

python jupyter-notebook

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

Dockerfile 多阶段 Python Poetry - 安装

我正在尝试 dockerize 一个简单的脚本(命令行实用程序)。这是一个有效的Dockerfile:

FROM python:3.9-slim

ARG user=tweaker project=tex-tweak src=tex_tweak

# Non-root user.
RUN useradd -ms /bin/bash "$user"
USER $user
WORKDIR /home/$user
ENV PATH=/home/$user/.local/bin:$PATH

# Source and project files.
RUN mkdir /home/$user/$project
WORKDIR /home/$user/$project
COPY $src ./$src/
COPY pyproject.toml ./
#COPY poetry.lock ./

# Build.
RUN pip install poetry --user && \
    poetry config virtualenvs.create false && \
    poetry install --no-dev && \
    poetry build

CMD ["bash"]
Run Code Online (Sandbox Code Playgroud)

奇怪的是,这已经足够了:目标实用程序以某种方式安装到.local/bin; 我不明白为什么。

python:slim图片大小为115MB;生成的图像为 174MB。不是不可接受,而是比较臃肿。你认为多阶段构建是有序的。不幸的是,我不知道应该如何将要点转移到第二阶段。.local/bin选择性复制和的想法.local/lib看起来并不特别安全或有吸引力。或者也许这就是方法?

或者是否有可能/建议 …

python dockerfile python-poetry

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

Flutter:检查“确保您正在使用 Package xyz+”要求

有没有一种简单的方法来检查特定已安装的软件包?我尝试了pub和的帮助flutter,然后是 Google;依然没有。

当然,我可以查找pubspec.yaml,但这是一个要求,而不是实际安装的包。一定有办法的。

package-managers dart flutter

0
推荐指数
1
解决办法
797
查看次数

Elixir:惯用地克隆列表

我总是可以做这样的事情:

new_list = Enum.map(old_list, fn x -> x end)
Run Code Online (Sandbox Code Playgroud)

当然,还有更多的平等或略微丑陋的方法。不知何故,我找不到复制列表的惯用方式。当然一定有办法。

copy list elixir

0
推荐指数
1
解决办法
96
查看次数

如何构建一个迭代器来递归地遍历文件树?

我想在对每个级别上的兄弟节点进行排序时,一个接一个地懒惰地消耗文件树的节点。

在 Python 中,我会使用同步生成器:

def traverse_dst(src_dir, dst_root, dst_step):
    """
    Recursively traverses the source directory and yields a sequence of (src, dst) pairs;

    """
    dirs, files = list_dir_groom(src_dir) # Getting immediate offspring.

    for d in dirs:
        step = list(dst_step)
        step.append(d.name)
        yield from traverse_dst(d, dst_root, step)

    for f in files:
        dst_path = dst_root.joinpath(step)
        yield f, dst_path
Run Code Online (Sandbox Code Playgroud)

在 Elixir 中,一个(惰性)流:

def traverse_flat_dst(src_dir, dst_root, dst_step \\ []) do
  {dirs, files} = list_dir_groom(src_dir) # Getting immediate offspring.

  traverse = fn d ->
    step = dst_step …
Run Code Online (Sandbox Code Playgroud)

tree recursion iterator rust

0
推荐指数
1
解决办法
2156
查看次数