我很好奇,并且无法在Haskell中找到类似这样的建议.考虑一下是否sort写过但没有sortBy.
sortBy :: forall a. (a -> a -> Ordering) -> [a] -> [a]
sortBy f = map getX . sort . map X
where
newtype X = X { getX :: a }
instance Ord X where
compare (X a) (X b) = f a b
Run Code Online (Sandbox Code Playgroud)
有没有人见过这个提案?
可能重复:
本地计算机上的PHP服务器?
是否可以在我的本地计算机上运行.php文件?我知道如果我打开一个Web浏览器并将文件位置输入到HTML文件的URL中,html文件将运行并显示.有没有办法对.php文件做同样的事情?
我发现有些人在编写 bash 脚本时会在 if else 语句中定义局部变量,如示例 1
示例1:
#!/bin/bash
function ok() {
local animal
if [ ${A} ]; then
animal="zebra"
fi
echo "$animal"
}
A=true
ok
Run Code Online (Sandbox Code Playgroud)
再举个例子,这是一样的:
示例2:
#!/bin/bash
function ok() {
if [ ${A} ]; then
local animal
animal="zebra"
fi
echo "$animal"
}
A=true
ok
Run Code Online (Sandbox Code Playgroud)
因此,上面的示例打印了相同的结果,但哪一个是应该遵循的最佳实践。我更喜欢示例 2,但我看到很多人在函数内声明局部变量,如示例 1。最好在顶部声明所有局部变量,如下所示:
function ok() {
# all local variable declaration must be here
# Next statement
}
Run Code Online (Sandbox Code Playgroud) 像我这样的大多数C++程序员在某些方面犯了以下错误:
class C { /*...*/ };
int main() {
C c(); // declares a function c taking no arguments returning a C,
// not, as intended by most, an object c of type C initialized
// using the default constructor.
c.foo(); // compiler complains here.
//...
}
Run Code Online (Sandbox Code Playgroud)
现在虽然错误很明显,一旦你知道它我想知道这种本地函数声明是否有任何明智的用途,除了你可以这样做 - 特别是因为没有办法在同一个函数中定义这样的本地函数块; 你必须在其他地方定义它.
我认为Java风格的本地类是一个非常好的功能,我倾向于经常使用,特别是匿名排序.甚至本地C++类(可以具有内联定义的成员函数)也有一些用处.但是这个没有定义的本地函数声明对我来说似乎很尴尬.它只是一个C-legacy还是有一些我不知道的更深层次的用例?
编辑对于非信徒:C c()是不是一个函数指针声明.
这个计划
int main()
{
void g();
cout << "Hello ";
g();
return 0;
}
void g()
{
cout << …Run Code Online (Sandbox Code Playgroud) 我必须将现有的html文件加载到WebView位于文件系统中此路径的文件中:
/data/data/com.example.example/files/file.html
Run Code Online (Sandbox Code Playgroud)
但是,当WebView加载它时,我什么都看不到.谁能帮我?
WebView 代码(假设路径是我上面写的路径):
WebView webView = (WebView)findViewById(R.id.webView1);
File htmlFile = new File(path);
if(htmlFile.exists())
{
webView.loadUrl(htmlFile.getAbsolutePath());
}
Run Code Online (Sandbox Code Playgroud) 我想从JavaScript控制台访问Chrome存储的Cookie.这可能吗?
IBM AIX xlc编译器提供了一个标志,用于生成初始化本地变量存储的代码:
initauto=<hh>
Initialialize automatic storage to <hh>. <hh> is a
hexadecimal value. This generates extra code and
should only be used for error determination.
Run Code Online (Sandbox Code Playgroud)
我认为MSVC编译器对调试版本做了类似的事情,但在这一点上我的内存可能很模糊.
海湾合作委员会是否有同等选择权?
我想在本地安装软件包,但是npm总是将软件包安装到全局位置.我正在运行以下命令:
npm install serialport
Run Code Online (Sandbox Code Playgroud)
我没有.npmrc命令,我没有使用-g标志,所以我不知道它为什么不在本地安装.这是来自配置转储的片段,显示全局为false:$ npm config ls -l | grep global global = false globalconfig ="/ usr/local/etc/npmrc"globalignorefile ="/ usr/local/etc/npmignore"
而且这些包仍然是这样安装的
serialport@0.7.3 ../../../../node_modules/serialport
Run Code Online (Sandbox Code Playgroud)
因此,除非我对"本地"的含义完全错误,否则这似乎是错误的.我的印象是当前工作目录中的"本地"意味着我可以在主代码文件中执行"require".请参阅:http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/,如前一个与npm相关的问题所述.
有人可以给我一些提示吗?非常感谢你.
PS它不是特定于serialport模块的.它发生在所有人身上.
如何在bash中创建两个local和declare -r(只读)变量?
如果我做:
function x {
declare -r var=val
}
Run Code Online (Sandbox Code Playgroud)
然后我只是得到一个var只读的全局
如果我做:
function x {
local var=val
}
Run Code Online (Sandbox Code Playgroud)
如果我做:
function x {
local var=val
declare -r var
}
Run Code Online (Sandbox Code Playgroud)
然后我再次获得全局(我可以var从其他函数访问).
如何在bash中结合本地和只读?