今天我正在阅读关于纯函数,与它的使用混淆:
如果函数为同一组输入返回相同的值集并且没有任何可观察的副作用,则称该函数是纯的.
例如strlen(),纯粹的功能,而不纯的功能rand().
__attribute__ ((pure)) int fun(int i)
{
return i*i;
}
int main()
{
int i=10;
printf("%d",fun(i));//outputs 100
return 0;
}
Run Code Online (Sandbox Code Playgroud)
上述程序的行为方式与没有pure声明时相同.
将函数声明为pure[如果输出没有变化]有什么好处?
w3fools声称URL可以包含空格:http://w3fools.com/#html_urlencode
这是真的?URL如何包含未编码的空间?
我的印象是HTTP请求的请求行使用空格作为分隔符,格式为{the method}{space}{the path}{space}{the protocol}:
GET /index.html http/1.1
Run Code Online (Sandbox Code Playgroud)
因此URL如何包含空格?如果可以的话,替换空间的做法+来自哪里?
这些术语似乎有 不同的定义,但我总是想到一个暗示另一个; 当表达式是引用透明但不纯粹时,我无法想到任何情况,反之亦然.
维基百科为这些概念维护单独的文章并说:
从参考透明度:
如果表达式中涉及的所有函数都是纯函数,则表达式是引用透明的.此外,如果丢弃它们的值并且它们的副作用无关紧要,则表达式中可以包含一些不纯的函数.
来自纯粹的表达:
构造纯表达式需要纯函数.[...]纯表达通常被称为引用透明.
我发现这些陈述令人困惑.如果副作用所谓的"非纯函数"是微不足道的,足以让不执行他们(即替换其这种函数的调用值没有实质性改变程序),它是一样的,如果它的是纯粹的第一名,不是吗?
有没有更简单的方法来理解纯表达式和引用透明的表达式之间的差异(如果有的话)?如果存在差异,则可以理解清楚地表明它的示例表达.
language-agnostic functional-programming side-effects referential-transparency purely-functional
我读了维基百科对幂等性的解释.我知道这意味着函数的输出是由它的输入决定的.但我记得我听过一个非常相似的概念:纯粹的功能.我谷歌他们但找不到他们的区别......
它们是等价的吗?
目前,我正在努力用jquery对话框替换"alert"/"confirm".
但是大多数遗留代码都是以某种异步方式编写的,这使得它很难改变.有没有办法让jquery对话框以同步方式工作?(不要使用循环或回调函数)
For example:
function run()
{
var result = confirm("yes or no");
alert( result );
\\more codes here
}
Run Code Online (Sandbox Code Playgroud)
在此示例中,警报和其他代码将在用户选择后执行.
如果我们使用jquery对话框var result = $ dialog.open()它将继续执行异步警报.
目前,我的解决方案是在OK | Cancel功能中使用回调函数.例如:
OK: function ()
{
$dialog.close();
alert("yes");
//more codes here
}
Run Code Online (Sandbox Code Playgroud)
此方法有效,但很难使所有同步代码变为异步,这需要进行大量更改(请参阅以下示例).所以我正在寻找同步jQuery Dialog,它可能吗?
例如:(实际代码比下面的例子复杂得多)
function f1()
{
if ( confirm("hello") ) f2();
alert("no");
}
function f2()
{
if( confirm("world") ) f3();
alert("no");
}
function f3()
{
return confirm("!") ;
}
Run Code Online (Sandbox Code Playgroud)
另一个例子:
vendorObject.on('some-event', function() {
if(confirm("Do you really want to do that?")) …Run Code Online (Sandbox Code Playgroud) 我想使用htaccess文件将我的所有旧域请求重定向到我的新域.以下是我正在使用的内容,但如果页面不在新网站上则无法使用.例如,旧网站上的谷歌索引about.htm,但在新网站上它不存在.我想在所有情况下都去根.我知道这不适合seo,但我不想要任何404.有什么建议?
Redirect 301 / http://www.thenewdomain.com/
Run Code Online (Sandbox Code Playgroud) 假设您正在开发一个网站,盲人用户将是您目标市场的重要组成部分.如果网站包含文档编辑功能,那么什么是适当的WYSIWYM工具?Markdown,Textile和Wiki Formatting等语言是否真的可以访问,还是对盲人用户不方便?
有没有人知道它是否可以在HTML中发送自定义http REQUEST标头而不必使用javascript(没有xhr包装器).
是否可以将它们定义为头部中的元标记?或者他们可能在某个地方定义?
<meta http-equip="x-something-custom" name="custom value" />
Run Code Online (Sandbox Code Playgroud)
但是,这是一个RESPONSE标头.我需要设置一个REQUEST标头.
我不是在寻找在表单中设置隐藏字段,而是使用html标签进行实际原始http标头操作.
这可能吗?
show create table命令显示以下内容:
'columnA' varchar(6) NOT NULL DEFAULT '';
Run Code Online (Sandbox Code Playgroud)
如何修改该列以删除not null?我需要它:
'columnA' varchar(6) DEFAULT NULL;
Run Code Online (Sandbox Code Playgroud)
我认为以下内容可行,但它没有效果:
ALTER TABLE tbl_name MODIFY columnA varchar(6) DEFAULT NULL;
Run Code Online (Sandbox Code Playgroud) 我在一个HTML文档中使用SVG.出于某些原因,在Chrome中,任何<foreignObject>元素中的任何内容都会显示在<svg>元素的父元素的左上角; 好像<foreignObject>元素绝对定位或什么的.我在Firefox中没有这个问题.
可能是什么导致了这个?我该如何解决?
这是我的测试用例:( 示例也在JsFiddle上)
<!DOCTYPE html>
<html>
<head>
<title>SVG bug in Chrome?</title>
<style type="text/css">
code {
background: #FFFAEE;
}
pre code {
display:block;
}
.widget-body {
background:yellow;
position: relative; /* This is the problem! */
}
</style>
<body>
<h1>SVG bug in Chrome?</h1>
<div>
<p>
The elemts in the <foreignObject> are not positioned properly unless the <code>.widget-body</code> rule is changed to:
<pre><code>.widget-body {
background:yellow;
/* position: relative; /* This is the problem! */ …Run Code Online (Sandbox Code Playgroud) html ×2
http ×2
.htaccess ×1
alter-table ×1
apache ×1
asynchronous ×1
c ×1
css ×1
dialog ×1
dns ×1
forms ×1
function ×1
header ×1
idempotent ×1
javascript ×1
jquery ×1
markup ×1
mysql ×1
pure-virtual ×1
redirect ×1
side-effects ×1
standards ×1
svg ×1
synchronous ×1
url ×1
webkit ×1
wysiwym ×1