小编And*_*man的帖子

apply&funcall - 不同的结果

ANSI Common Lisp.为什么我在最后一个案例中得到了另一个答案?

(list 1 2 3 nil) ; (1 2 3 nil)
(funcall (function list) 1 2 3 nil) ; (1 2 3 nil)
(apply (function list) '(1 2 3 nil)) ; (1 2 3 nil)
(apply (function list) 1 2 3 nil) ; (1 2 3)
Run Code Online (Sandbox Code Playgroud)

lisp clisp common-lisp ansi-common-lisp

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

为什么Functor不公开fmap的默认实现?

Functor类类型定义中:

class Functor f where
    fmap :: (a -> b) -> f a -> f b
Run Code Online (Sandbox Code Playgroud)

为什么没有fmap默认实现?像这样的东西:

class Functor f where
    fmap :: (a -> b) -> f a -> f b
    fmap fn (f a) = (f $ (fn) a)
Run Code Online (Sandbox Code Playgroud)

当我编写实例时Functor,我手动为每个实例编写相同的代码.有没有办法指定默认实现?

haskell functor

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

仅使用UTF-8 BOM写入一个空文件

作业系统:Windows 7 SP1

我在cmd.exe使用以下命令创建了一个空文本文件:

echo 2> .gitignore
Run Code Online (Sandbox Code Playgroud)

该命令将重定向std::cerr(在这种情况下为空输出)到.gitignore文件中。结果文件具有ANSI编码,但是我需要UTF-8。我可以UTF-8>操作指定必要的编码()吗?

windows shell powershell cmd batch-file

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

Haskell:模式匹配是多余的

Haskell,Stack构建工具.

我有代码:

quote :: Char
quote = '\''

doubleQuote :: Char
doubleQuote = '\"'

isBorder :: Char -> Bool
isBorder quote = True
isBorder doubleQuote = True
isBorder _ = False
Run Code Online (Sandbox Code Playgroud)

它将在没有错误的情况下编译,但我在编译期间看到了消息:

D:\ haskell\real\app\Main.hs:34:1:警告:[-Woverlapping-patterns]
模式匹配是多余的
在`isBorder'的等式中:isBorder doubleQuote = ...

D:\ haskell\real\app\Main.hs:35:1:警告:[-Woverlapping-patterns]
模式匹配是多余的
在`isBorder'的等式中:isBorder _ = ...

这是什么意思?我没有看到冗余......

haskell pattern-matching

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

EF Core:如何将关系添加到shadow属性?

我有两节课:

public class DbLibrary
{
    public Guid Id { get; set; }
    public string Name { get; set; }
    public List<DbDepartment> Departments { get; set; } = new List<DbDepartment>();
}

public class DbDepartment
{
    public Guid Id { get; set; }
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在这个模型中我需要DbDepartment没有包含链接的属性DbLibrary.但是我需要在数据库端进行级联删除.为此我将shadow属性添加到DbDepartment.这是外键.如何将主键DbLibrary类与shadow属性相关联?

这是我的尝试:

protected override void OnModelCreating(ModelBuilder builder)
{
    // Create the shadow property
    var id = builder.Entity<DbDepartment>().Property<Guid>("LibraryId");

    // Create the relationship …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework entity-framework-core

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

我可以替换`ghci`窗口标题中的文本(即PowerShell.exe或cmd.exe窗口标题)吗?

我可以替换ghci窗口标题中的文本(即PowerShell.execmd.exe窗口标题)吗?

在此输入图像描述

haskell ghci

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

<=和>运算符作为函数参数

快速排序:

-- First variant:
qsort :: (Ord a) => [a] -> [a]
qsort [] = []
qsort (x:xs) = left x ++ [x] ++ right x 
  where left  n = qsort [m | m <- xs, m <= n]
        right n = qsort [m | m <- xs, m  > n]

-- ?: qsort [10,2,5,3,1,6,7,4,2,3,4,8,9]
-- [1,2,2,3,3,4,4,5,6,7,8,9,10]
Run Code Online (Sandbox Code Playgroud)

我看到leftright功能几乎相同.因此我想把它重写得更短......这样的事情:

-- Second variant:
qsort' :: (Ord a) => [a] -> [a]
qsort' [] = []
qsort' …
Run Code Online (Sandbox Code Playgroud)

haskell

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

为什么我不能使用(cnt < - hGetContents h)表达式而不是cnt?

我学习Haskell.它工作正常:

import System.IO

main = do
  h <- openFile "text.txt" ReadMode
  cnt <- hGetContents h
  mapM_ putStrLn $ lines cnt
  hClose h
Run Code Online (Sandbox Code Playgroud)

但这不起作用:

import System.IO

main = do
  h <- openFile "text.txt" ReadMode  
  mapM_ putStrLn $ lines (cnt <- hGetContents h)
  hClose h
Run Code Online (Sandbox Code Playgroud)

为什么我的第二个变种不起作用?我预计两个变体都是相同的,因为它(cnt <- hGetContents h)是一个表达式并返回值.

haskell

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

Git:为什么\; 在我的配置文件中不起作用?

Git for Windows.
我正在学习Git.引用git help config:

定义值的行可以通过以\结尾来继续到下一行.反引号和行尾被剥离.

我试过这个:

[user]
    name = Andrey\;
  Bushman
Run Code Online (Sandbox Code Playgroud)

还有这个:

[user]
    name = 'Andrey\;
  Bushman'
Run Code Online (Sandbox Code Playgroud)

还有这个:

[user]
    name = 'Andrey '\;
  'Bushman'
Run Code Online (Sandbox Code Playgroud)

还有这个:

[user]
    name = 'Andrey \;'
  'Bushman'
Run Code Online (Sandbox Code Playgroud)

而不是这个(工作变体):

[user]
    name = Andrey Bushman
Run Code Online (Sandbox Code Playgroud)

但是我得到一个错误:( fatal: error in 6 line.这是该行的索引\;)for command:

git config --global user.name
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

git

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

Sort-Object cmdlet的-InputObject参数如何工作?

PowerShell 4.0

在这里阅读了有关Sort-Objectcmdlet的信息(TechNet页面).我不明白如何使用-InputObject参数.该页面没有示例.我也没有在互联网上找到这个信息.我将非常感谢它的使用示例,或者用于链接到具有该信息的Internet页面.

我试图用它来了解我的目的(根据文件):

$items = ('a','b','c','d')
$result = sort -InputObject $items -Descending
Run Code Online (Sandbox Code Playgroud)

但是result变量具有与其相同的值items而不是其下降版本.

谢谢.

powershell powershell-4.0

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