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) 在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,我手动为每个实例编写相同的代码.有没有办法指定默认实现?
作业系统:Windows 7 SP1
我在cmd.exe使用以下命令创建了一个空文本文件:
echo 2> .gitignore
Run Code Online (Sandbox Code Playgroud)
该命令将重定向std::cerr(在这种情况下为空输出)到.gitignore文件中。结果文件具有ANSI编码,但是我需要UTF-8。我可以UTF-8为>操作指定必要的编码()吗?
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 _ = ...
这是什么意思?我没有看到冗余......
我有两节课:
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) 我可以替换ghci窗口标题中的文本(即PowerShell.exe或cmd.exe窗口标题)吗?

快速排序:
-- 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)
我看到left和right功能几乎相同.因此我想把它重写得更短......这样的事情:
-- Second variant:
qsort' :: (Ord a) => [a] -> [a]
qsort' [] = []
qsort' …Run Code Online (Sandbox Code Playgroud) 我学习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)是一个表达式并返回值.
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)
为什么会这样?
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而不是其下降版本.
谢谢.
haskell ×5
powershell ×2
batch-file ×1
c# ×1
clisp ×1
cmd ×1
common-lisp ×1
functor ×1
ghci ×1
git ×1
lisp ×1
shell ×1
windows ×1