小编Mat*_*len的帖子

是否有一种懒惰的方式来编写减号函数(从列表中删除项目)?

我的功能看起来像这样:

minus :: (Eq a) => [a] -> [a] -> [a]
minus [] xs                      = []
minus (y:ys) xs | y `notElem` xs = y : (minus ys xs)
                | otherwise      = minus ys xs
Run Code Online (Sandbox Code Playgroud)

它可以像这样使用:

[99,44,55,22,23423] `minus` [55,22]
Run Code Online (Sandbox Code Playgroud)

输出: [99,44,23423]

我之所以写这篇文章是因为我正在关注Project Euler问题7,并且Eratosthenes的Sieve似乎是正确的工具,而且它是,但我一直在阅读维基百科页面并得到关于Euler筛子的部分.

我试图复制/粘贴代码并在GHCi中运行它,但我的GHCi版本没有名为Data.OrdList的模块,我找不到minusHoogle中调用的函数.

这是维基百科的代码:

 import Data.OrdList (minus)

 primes = euler [2..]
 euler (p : xs) = p : euler (xs `minus` map (*p) (p : xs))
Run Code Online (Sandbox Code Playgroud)

如果我在那里替换我的减号函数,我会得到一个内存不足的错误,因为我的函数不是懒惰的.

有没有办法做一个懒惰的减号功能?

我的减函数是否与维基百科文章中的减函数相同?

haskell list lazy-evaluation

6
推荐指数
2
解决办法
2703
查看次数

INSERT查询中的西里尔符号

$dblocation = "localhost";
$dbname = "xx";
$dbuser = "xx";
$dbpasswd = "xx";
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
mysql_select_db($dbname, $dbcnx);
mysql_query("SET NAMES utf8");
mysql_query("SET COLLATION_CONNECTION=utf8_bin"); 
$name = mysql_real_escape_string($name);
$about = mysql_real_escape_string($about);
mysql_query("INSERT INTO votes 
(name, about, active) VALUES('".$name."', '".$about."', 1 ) ") 
or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)

当$ name和$ about不是西里尔字母时,它工作得非常好.但是当它是西里尔语时 - 脚本只会添加一行空白名称和字段.做什么?
DB是UTF-8,用phpMyAdmin手动添加行与西里尔符号完美,PHP脚本是UTF-8,一切都是UTF-8.

php mysql collation character-encoding

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

读取画布像素的RGB值

我在画布上放了一个图像,当用户将鼠标移到图像上时,我希望获得该图像像素的RGB值.这是我写的代码:

<canvas id="myCanvas" width="200" height="200" style="border: red;border-style: dotted">
Your browser does not support the canvas element.
</canvas>
<script>
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");

var destX = 0;
var destY = 0;

var imageObj = new Image();
imageObj.onload = function()
{
context.drawImage(imageObj, destX, destY);
};
imageObj.src = "zain.jpg";

canvas.onclick = function(e) {
    var x = e.pageX;
    var y = e.pageY;
    var canvasColor = context.getImageData(x, y, 1,1); // rgba e [0,255]
    var pixels = canvasColor.data;
    var r = pixels[0]; …
Run Code Online (Sandbox Code Playgroud)

javascript html5 canvas html5-canvas

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

获取脚本等待文件对话返回

我有一个网页,我想提示用户上传文件,但我不想显示该<input type="file"/>元素.

我有一个按钮触发文件对话框显示,但代码不等待对话返回.

当文件对话框返回时,是否有一个我可以挂钩的事件?还有其他一些我没想过的事吗?

这就是我目前所拥有的,它使用警报来阻止代码.我想要一些不那么hacky的东西.

function importValues(e)
{
    var f = document.getElementById('file');
    f.click();
    alert('loading'); //hack to make the code wait for the user to choose a file before making the ajax call
    var formdata = new FormData(jQuery('#frmImport')[0]);
    jQuery.ajax({
        url: 'importFile',
        type: 'POST',
        data: formdata,
        chache: false,
        contentType: false,
        processData: false,
    });
}
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

OpenXML Spreadsheet:Excel给出了一个错误,然后修补它并且它有效.(C#)

我把它缩小到:

       //aantal auto's
        Row aantalAutosRow = new Row();
        aantalAutosRow.RowIndex = Convert.ToUInt32((tblXML.Rows.Count) + 2);

        Cell aantalAutosCell = new Cell();
        aantalAutosCell.CellReference = getColumnName(1);
        aantalAutosCell.CellValue = new CellValue("Hoi");

        aantalAutosRow.Append(aantalAutosCell);
        sheetData.Append(aantalAutosRow);
Run Code Online (Sandbox Code Playgroud)

当Excel提示修复文件(sheet.xml)时,单击"是"后生成单元格

完整课程:

            using System;
            using System.Collections.Generic;
            using System.Linq;
            using System.Text;
            using DocumentFormat.OpenXml;
            using DocumentFormat.OpenXml.Packaging;
            using DocumentFormat.OpenXml.Spreadsheet;
            using System.IO;
            using System.Xml;
            using System.Data;

            namespace XML_naar_Excel
            {
                class Excel
                {
                    public void convertToExcel(string padXml)
                    {
                        //maak dataset en vul met ingevoerde xml
                        DataSet dsXML = new DataSet();
                        dsXML.ReadXml(padXml);
                        DataTable tblXML = dsXML.Tables[2];

                        //opslaan
                        string padXlsx …
Run Code Online (Sandbox Code Playgroud)

c# excel openxml

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

"在Haskell中编程"在sat函数中出错

我在Graham Hutton的Haskell编程的第8章中,我正在复制代码并在GHC中对其进行测试.

请参阅此处的幻灯片:http://www.cis.syr.edu/~sueo/cis352/chapter8.pdf,特别是幻灯片15

到目前为止我复制的相关代码是:

type Parser a = String -> [(a, String)]
pih_return :: a -> Parser a
pih_return v = \inp -> [(v, inp)]
failure :: Parser a
failure = \inp -> []
item :: Parser Char
item = \inp -> case inp of
                    [] -> []
        (x:xs) -> [(x,xs)]
parse :: Parser a -> String -> [(a, String)]
parse p inp = p inp
sat :: (Char -> Bool) -> Parser Char
sat p …
Run Code Online (Sandbox Code Playgroud)

haskell

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

OpenOffice pyuno"全选"

有谁知道如何使用OO uno bridge api在Calc表中"全选"?

或者,找到最大使用的行和列号将起作用.

我想要做的是将格式应用于电子表格中的所有单元格.

(原因是我将工作表保存为csv,因此除非格式提供足够的小数位,否则数字不会准确保存.)

python openoffice.org uno pyuno openoffice-calc

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

C + Ctrl KeyBinding不会导致复制发生

我已经设置了ListBox这样的:

<ListBox ItemsSource="{Binding Logs, Mode=OneWay}" x:Name="logListView">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Path=.}">
                <TextBlock.InputBindings>
                    <KeyBinding Key="C"
                                Modifiers="Ctrl"
                                Command="Copy"/>
                </TextBlock.InputBindings>
                <TextBlock.CommandBindings>
                    <CommandBinding Command="Copy"
                                    Executed="KeyCopyLog_Executed"
                                    CanExecute="CopyLog_CanExecute"/>
                </TextBlock.CommandBindings>
                <TextBlock.ContextMenu>
                    <ContextMenu>
                        <MenuItem Command="Copy">
                            <MenuItem.CommandBindings>
                                <CommandBinding Command="Copy"
                                                Executed="MenuCopyLog_Executed"
                                                CanExecute="CopyLog_CanExecute"/>
                            </MenuItem.CommandBindings>
                        </MenuItem>
                    </ContextMenu>
                </TextBlock.ContextMenu>
            </TextBlock>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)

如您所见,在模板中,每个模板TextBlock都有一个允许用户复制文本的上下文菜单.这有效.

还有TextBlock一个KeyBindingto ctrl+c和a CommandBinding复制.当我按下ctrl+c方法时KeyCopyLog_Executed没有执行.我已经检查过调试器.

我应该如何绑定密钥TextBlock

wpf xaml .net-3.5

5
推荐指数
2
解决办法
6739
查看次数

关闭 Internet Explorer 浏览器后退按钮上的表单字段自动完成功能

有一些问题解释了如何关闭表单字段的自动完成功能,但是我在这里有一个具体问题:

我已将 设为autocomplete="off"<form>所有表单字段。当用户使用浏览器后退按钮从表单目标页面返回到原始页面(包含表单)时,我想防止浏览器预填充字段。表单字段使用一些不支持预填充值的 jQuery UI 小部件。用户在提交表单之前必须与表单进行交互。

这在 Firefox、Chrome、Safari 中按预期工作。但是它在 Internet Explorer 中不起作用(我测试了版本 8 和 9)。当通过浏览器的后退按钮返回页面时,IE 仍然会填写字段。

这是一个静态 HTML 页面,因此我无法执行一些后端操作,例如设置随机表单字段名称/ID。

我能做些什么?

html forms internet-explorer autocomplete

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

OpenXML - 如何将电子表格文档保存到流中?

我从流中获取一个 .xlsx 文档(使用SpreadsheetDocument.Open(stream, false)然后将其存储到 Spreadsheetdocument 字段中,以便我稍后可以维护相同的对象。

我有一个保存方法,理想情况下我应该能够将 SpreadsheetDocument 保存到流中。有,document..WorkbookPart.Workbook.Save(stream);但这只是给了我一个空文件,当我只保存第一张表时(使用document.WorkbookPart.WorksheetParts.First().Worksheet.Save(stream);该文件很混乱并且不包含相关信息。如何将电子表格文档保存到流中?

c# excel openxml

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