小编Dan*_*her的帖子

Haskell - 从句法糖翻译

任务是翻译这个

f = do
    c <- [1 .. 200]
    b <- [1 .. 200]
    guard (c >= b)
    a <- [1 .. 200]
    guard (a >= b && (c^2 - a^2 == b^2))
    return (a,b, c)
Run Code Online (Sandbox Code Playgroud)

成为一个非糖的版本.

我想我已经弄清楚了大部分问题,但是我在中间遇到了一个我需要修复的问题才能继续.到目前为止,我有:

f = [1 .. 200] >>= \c ->
    [1 .. 200] >>= \b ->
    if (c >= b) 
        then [1 .. 200] >>= \a -> if (a >= b && (c^2 - a^2 == b^2)) 
                                      then return(a,b,c)
                                      else return ()
        else return …
Run Code Online (Sandbox Code Playgroud)

haskell syntactic-sugar

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

这个循环在C中有什么问题?

int i;
i=0;
for (i=0;i>2;i++)
    {
     repeat((3),"|",var);
     printf("\n");          
    }
Run Code Online (Sandbox Code Playgroud)

出于某种原因,它会进入"for"并跳过它.我试图将int ifor 的外部放在for之外,甚至在for之外初始化它,在调试中它是零.我需要它做的就是遍历这段代码两次.

c loops

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

将变量的结果附加到列表中

我试图将变量的结果添加f到列表的末尾list_name.但是,当我尝试这样做时,我收到以下错误:

list_name.append[f]  
Run Code Online (Sandbox Code Playgroud)

TypeError:'builtin_function_or_method'对象不可订阅

我究竟做错了什么?

python variables list append python-3.x

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

Data.Bits中的Haskell按位运算符

我是Haskell的新手,我正在尝试使用Data.Bits中的按位操作.每次我尝试时都会收到错误消息

Prelude Data.Bits> 1 `shiftL` 16

<interactive>:1:0:
    Ambiguous type variable `t' in the constraint:
      `Bits t' arising from a use of `shiftL' at <interactive>:1:0-12
    Probable fix: add a type signature that fixes these type variable(s)
Run Code Online (Sandbox Code Playgroud)

对于许多操作都会发生这种情况,我也试过了.和.&.

我必须错过一些非常简单的事情,如果你能发现问题,请告诉我

haskell bit-manipulation

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

C错误中的套接字

我是第一次做C套接字,我的代码遇到了一个小错误.当我编译它正常工作并编译好它只是抛出一些错误,我想知道如何解决它们.

这是代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>

#define PORTNUM 2343

int main(int argc, char *argv[])
{
    char msg[] = "Hello World !\n";

    struct sockaddr_in dest; /* socket info about the machine connecting to us */
    struct sockaddr_in serv; /* socket info about our server */
    int mysocket;            /* socket used to listen for incoming connections */
    int socksize = sizeof(struct sockaddr_in);

    memset(&serv, 0, sizeof(serv));    /* zero the struct before …
Run Code Online (Sandbox Code Playgroud)

c sockets networking

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

在C中简单检查char数组中的字符

我是C的新手.这个代码在Flyport模块上运行并在他们自己的IDE上编译,但我认为我的错误很容易被任何熟悉C的人发现.

尽管几乎改变了一切,我仍然无法编译这些代码,我做错了什么?

char string_serial[50]="starting Value";    

if (string_serial[0] = "*")
        {   

            UARTWrite(2,"First Char OK");
            UARTWrite(2,"\r\n");

            else 

            UARTWrite(2,"First Char NOT OK");
            UARTWrite(2,"\r\n");

        }
Run Code Online (Sandbox Code Playgroud)

如果不明显我试图检查数组中的字符0是否为*.

谢谢

c

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

串行 CPU 与 GPU 代码

我正在写一篇关于异构计算可能性的理论作业。我需要比较在 CPU 或 GPU 上以串行方式执行的单线程(不可并行)的有效性。

我知道这是一个奇怪的问题,因为在 GPU 上执行单个线程没有意义,但我确实可以为我正在开发的启发式方法使用指导线比率。

我知道它可以很容易地进行测试,但我对 CUDA 和 OpenCL 都没有任何实践经验,而且我很着急。

cuda gpgpu opencl heterogeneous

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

重新定义功能

我有一个example1.cpp带有该main功能的文件.这个文件必须有#include mylib.h#include lib.h.文件mylib.h也有#include lib.h.当我尝试编译此程序时,错误redefinition xyz function发生.

example1.cpp

#include mylib.h
#include lib.h

int main(){
//code
}
Run Code Online (Sandbox Code Playgroud)

mylib.h

#include lib.h

//rest code
Run Code Online (Sandbox Code Playgroud)

c c++

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

为什么这个程序通过引用传递参数

我正在为我正在研究的linux程序编写一些代码,需要libssh.我正在查看他们的教程页面,我看到它通过ssh_options_set()引用传递所有参数.这是为什么?

#include <libssh/libssh.h> 
#include <stdlib.h>

int main()
{
  ssh_session my_ssh_session;
  int verbosity = SSH_LOG_PROTOCOL;
  int port = 22;

  my_ssh_session = ssh_new();
  if (my_ssh_session == NULL)
    exit(-1);

  ssh_options_set(my_ssh_session, SSH_OPTIONS_HOST, "localhost");
  ssh_options_set(my_ssh_session, SSH_OPTIONS_LOG_VERBOSITY, &verbosity); //here
  ssh_options_set(my_ssh_session, SSH_OPTIONS_PORT, &port); //here

  ...

  ssh_free(my_ssh_session);
}
Run Code Online (Sandbox Code Playgroud)

c linux pointers libssh

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

C程序中的EBNF声明语法

我对编程有点陌生(好吧,非常新),我遇到了扩展巴科斯诺尔范式(EBNF),并决定尝试弄清楚如何使用它。不幸的是,尽管网上有大量关于 EBNF 如何工作的解释,但关于如何实际实现它的却很少。所以我使用它用 C 语言编写了一个简单的小程序,只是为了看看会发生什么。这是我写的:

#include <stdio.h>
#include <stdlib.h>


mixture : [letter|digit] {letter | digit};
integer : [ "+"|"-"] digit {digit};
naturalNumber : digit {digit};
digit : "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9";
letter : "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" |    "n" | "o" | "p" | …
Run Code Online (Sandbox Code Playgroud)

c syntax declaration ebnf

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