问题列表 - 第44421页

Ocaml模式一次匹配列表中的多个元素

假设我有一个整数类型列表[1; 2; 3; 4; 5; 6; 7; 我希望一次匹配前三个元素.没有嵌套的匹配语句有没有办法做到这一点?

例如,它可以这样做吗?

let rec f (x: int list) : (int list) = 
begin match x with
| [] -> []
| [a; b; c]::rest -> (blah blah blah rest of the code here)
end
Run Code Online (Sandbox Code Playgroud)

我可以使用long嵌套方法,它将是:

let rec f (x: int list) : (int list) =
begin match x with
| [] -> []
| h1::t1 ->
  begin match t1 with
  | [] -> []
  | h2::t2 ->
     begin match t2 with
     | [] …
Run Code Online (Sandbox Code Playgroud)

ocaml design-patterns elements matching

8
推荐指数
1
解决办法
6983
查看次数

18
推荐指数
2
解决办法
5499
查看次数

printstream&printwriter

为什么来自System.out.println()方法在屏幕上打印字符时out是用于显示字节的打印流类型

java printstream

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

是否可以仅使用HTML(5)和JavaScript构建torrent客户端?

还有更多要补充的内容.是否可以仅使用HTML和JavaScript构建torrent客户端.你不能使用像Java,ActiveX,NaCl这样的东西......如果是的话,请给出高级描述.

我对前端dev没有太多了解,但我认为websockets能够进行网络连接(是否可以将一个客户端连接到另一个客户端,而不需要通过服务器获取所有数据?).我知道您无法使用JavaScript编写文件,所以我认为要下载的文件必须完全保存在内存中,否则客户端必须使用HTML5中的一个新API来存储内容.

html javascript html5 bittorrent websocket

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

这些g ++"多重定义"错误是什么?

我正处于项目的早期阶段(阅读:刚刚开始),我正在设置我的初始makefile.这非常简单.这是文件的完整内容:

all: main.o resource.o
    g++ -o output.exe main.o resource.o

main.o: main.cpp main.h resource.h
    g++ -mwindows -o main.o main.cpp

resource.o: resource.rc
    windres resource.rc resource.o

clean:
    rm *.o 
Run Code Online (Sandbox Code Playgroud)

在这一点上,我认为重要的是要提到我正在使用Windows,所以我在Powershell中使用MinGW g ++ 4.5.2或者使用Cygwin和g ++ 3.4.4(我已经尝试过两者;同样的错误).

如果不打印上面列出的所有文件的内容,就可以说main.h包含对windows.h和resource.h的引用,main.cpp包含对main.h的引用和一些函数,最重要的是int WINAPI WinMain(...)函数和LRESULT CALLBACK WndProc(...)函数,resource.rc包含带有文件菜单和虚拟第二个菜单的简单菜单栏的资源定义语句以及对resource.h的引用和resource.h只包含resource.rc中使用的ID的#define语句.

现在,我可以分别编译resource.rc和main.h,并获得这两个不错的.o文件.但是,当我尝试链接它们并生成output.exe时,我得到以下可怕的错误列表,其中没有一个我真正理解:

main.o:main.cpp:(.text+0x0): multiple definition of `mainCRTStartup'
c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../crt2.o:crt1.c:(.text+0x160): first defined here
main.o:main.cpp:(.text+0x0): multiple definition of `WinMainCRTStartup'
c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../crt2.o:crt1.c:(.text+0x140): first defined here
collect2: ld returned 1 exit status
make: *** [all] Error 1
Run Code Online (Sandbox Code Playgroud)

以上内容在Powershell中生成.Cygwin提供了一个非常相似的错误列表,仍然以"多重定义"语句为中心.多个定义似乎源于C:/mingw/lib/crt2.o,可能还有另一个名为crt1.c的文件,这似乎更有用,因为很明显C比.o文件更易于人类阅读,但是我无法在C:\ MinGW文件夹中的任何位置找到任何带有该标题的内容.

任何方向都会有所帮助,因为此刻我很丢失.

编辑:main.cpp中唯一的#include语句:

#include "main.h"
Run Code Online (Sandbox Code Playgroud)

main.h的内容:

#ifndef _MAIN_H_
    #define _MAIN_H_

    #include <windows.h> …
Run Code Online (Sandbox Code Playgroud)

c++ winapi mingw makefile g++

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

在C#中使用带有自定义事件的类接口时遇到的大问题

我需要这样做(使用自定义滑块或标准控件):

        ISlider ISlider;
        ISlider = slider as ISlider;
        if (ISlider != null)
        {
            ISlider.CustomEvent += new CustomEventDelegate(MyCustomEventHandler);
        }
        else
        {
            // standard control
            this.slider.ValueChanged += new RoutedPropertyChangedEventHandler<double>(this.slider_ValueChange);
        } 
Run Code Online (Sandbox Code Playgroud)

但是C#拒绝了,因为它说接口不能包含字段(CustomEvent),如果我没有在接口中声明CustomEvent,我上面的代码也无法编译,那么我该怎么办?

在ISlider界面中,我只是试图声明:

CustomEventDelegate CustomEvent ;
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net wpf

0
推荐指数
1
解决办法
670
查看次数

在WordPress表中查找所有图像

是否有一个mysql查询可以从表中提取所有图像?没有任何运气找到解决方案.谢谢

即 来自wordpress网站

图像都在wp_posts表中

在我的wp_posts表中,所有图像都与其他数据混合在一起.我想把这张桌子上的所有图像存储在我的硬盘上

mysql sql wordpress

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

为什么这个anon子例程声明在Perl中被解析为间接对象方法?

在下面的匿名子例程声明中,Perl似乎将其解析为间接方法调用,而不是作为子例程:

use 5.010;
use strict;
use warnings;

sub proxy {
    my $new = shift;
    say "creating proxy: $new";
    sub :lvalue {
        say "running proxy: $new";
        tie my $ret, 'Some::Package', shift, $new;
        $ret
    }
}

say "before";
my $p1 = proxy '_value';
say "p1 declared: $p1";
my $p2 = proxy 'value';
say "p2 declared: $p2";
Run Code Online (Sandbox Code Playgroud)

打印:

before
creating proxy: _value
running proxy: _value
Can't locate object method "TIESCALAR" via package "Some::Package" ...

如果a return或者my $sub =之前添加sub :lvalue …

syntax perl anonymous-function

9
推荐指数
1
解决办法
193
查看次数

在嵌入式Linux上安全地写入紧凑型闪存

我正在开发一个从紧凑型闪存和tmpfs运行的嵌入式Linux系统.闪存以只读方式安装,通常应保持这种状态,但偶尔我需要向闪存写入内容.

写入闪存(通过PATA接口)时应该采取哪些预防措施?由于我无法回想起的原因,我正在使用ext4安装的文件系统barrier=1,data=ordered,nodelalloc,noatime,ro是否是一个可怕的想法?系统需要在零干预的情况下快速启动.我很想做tune2fs -c 0 -i 0.这是一个更糟糕的想法吗?

另外,当我写东西时,我显然需要重新安装flash读写,执行写操作,然后重新安装只读.问题是有几个不同的进程(c ++二进制和shell脚本)可能需要这样做.很明显,每个进程不加选择地重新安装文件系统只读它是一个坏主意.

协调这个的最佳方法是什么?flock看起来很有希 这是最好的方式,我需要担心什么?我不希望过时的锁阻止写入或使文件系统无限期写入.

澄清:通过"偶尔"写作,我的意思是系统可以使用多年而不需要写任何东西.什么东西写,它可能是几百字节.与此同时,系统需要承受不可预测的电源循环而无需任何干预.

linux filesystems embedded locking embedded-linux

8
推荐指数
1
解决办法
5958
查看次数

C++ vector <vector <double >>>加倍**

我正在尝试将类型的变量传递vector<vector<double> >给函数F(double ** mat, int m, int n).F函数来自另一个lib,所以我无法更改它.有人可以给我一些暗示吗?谢谢.

c++ pointers vector

9
推荐指数
1
解决办法
5942
查看次数