小编Zet*_*eta的帖子

由于语法错误,我无法对Haskell做任何事情

我可以执行简单的操作,比如

Hugs> 2+2
Run Code Online (Sandbox Code Playgroud)

例如.或者任何操作,就此而言.

但是当涉及到实际尝试定义一个函数时,例如:

occurs :: Eq a => a -> [a] -> Bool 
occurs x l = x `elem` l
Run Code Online (Sandbox Code Playgroud)

然后我收到消息:

ERROR - Syntax error in input (unexpected `=')
Run Code Online (Sandbox Code Playgroud)

我也遇到unexpected `::'其他情况.我正在使用WinHugs.

syntax haskell hugs

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

为什么循环执行无限次

 window.TicTacToet.compMove = function (row, col) {
     var player = window.TicTacToet.PlayerTurn;
     var board = window.TicTacToet.Board;
     for (i = 0; i < window.TicTacToet.Board.length; i++) {
         for (j = 0; j < window.TicTacToet.Board[i].length; j++) {
             if (window.TicTacToet.Board[i][j] == null) {
                 getWin(row, col, player, board);
             } else {
                 console.log("position occupied");
             }
         }
     }
 }

 function getWin($r, $c, $player, $board) {
     checkTop($r, $c, $player, $board);
 }

 function checkTop($x, $y, $player, b) {
     console.log("ENTER");
     var success = false;
     for (i = 0; i < 3; i++) …
Run Code Online (Sandbox Code Playgroud)

html javascript

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

使访问者广告块过滤器阻止非广告元素

我有一个通过广告资助的比特币水龙头。我不希望用户能够声明是否启用了广告拦截。是否可以在按钮上附加一些内容,以使adblock将其视为广告并将其阻止,从而阻止用户声明版权?

我希望它使用HTML。

html adblock

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

如果新的失败,是否需要检查指针有效性?

正如标题所说,我知道new会抛出一个可以捕获的异常,但是指针究竟发生了什么?它变成了NULL?我在SO上检查了一些答案,但没有人解释.检查下面的例子,指针保持在堆上?请提供有关此模式的完整信息

#include <windows.h>
#include <cstdlib>
#include <iostream>

using namespace std;

enum eReadMode
{
 //    READ_ONLY,
     READ_WRITE,
    // CREATE_FILE,
   //  CREATE_WRITE_FILE,
};

class CFileStatic
{
private:
    FILE *m_File;
public:
    CFileStatic( LPCTSTR szFileName, eReadMode eMode );
    virtual ~CFileStatic() {};

    bool IsValidFile() const { return( m_File != NULL ); };
    void PrintFile( unsigned int uLine = 0 );
};

CFileStatic::CFileStatic( LPCTSTR szFileName, eReadMode eMode )
{
    if( szFileName )
    {
        if( eMode == READ_WRITE )
            m_File = fopen( szFileName, "r+" );
        else
            printf( …
Run Code Online (Sandbox Code Playgroud)

c++ pointers

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

如何在长NSString中找到动态数字?

我有一个非常大的NSString,其中包含大约1500个字符.在这个字符串中,我需要提取一个可能经常更改的电话号码,因为它是一个动态数据.电话号码的格式为251-221-2000,我该如何提取?

iphone ipad ios

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

在C中打印数字行

我尝试读取文件然后用它们打印数字行.但我不知道如何在同一时间打印lorem ipsum.因为我不太了解C中的打印功能.

这是我的代码:

#include <stdio.h>
#include <stdlib.h>
main(){

int c;
int b=1;
//int a[5000]; Shall I use this or any ideas without them?

FILE *xfile;
xfile = fopen("loremipsum.txt", "r"); 

while((c=getc(xfile)) != EOF){
if(c == '\n'){
printf("%d\n", b); /*STUCK IN THERE... HOW TO PRINT LOREM IPSUM WITH NUMBER LINES?*/
//putchar(a);   
b++;
}
}

}
Run Code Online (Sandbox Code Playgroud)

我的lpsm ipsum:

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Donec vitae quam non risus consectetur aliquet sed rhoncus purus.
Fusce vitae lorem a dui elementum condimentum …

c numbers lines

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

如何创建"计数"过滤器?

我有一个对列表,我需要一个过滤器,只保留该对的第一个成员至少出现两次的元素:

someFilter :: Eq a => [(a, b)] -> [(a, b)]
someFilter   [("a",1),("a",2),("b",1)]
  `shouldBe` [("a",1),("a",2)]         -- "a" occurs in two pairs, retain both

someFilter   [("a",1),("a",2),("b",1),("b",2)]
  `shouldBe` [("a",1),("a",2),("b",1),("b",2)] -- "a" and "b" occur twice

someFilter   [("a",1),("b",2),("c",1),("d",2)]
  `shouldBe` [] -- no string occurs twice
Run Code Online (Sandbox Code Playgroud)

我不确定如何实现这样的过滤器.通常filter只在元素方面起作用.怎么会写someFilter

haskell

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

如何处理我自己的`last`版本中的空列表?

我无法编译这个简单的Haskell函数.它来自99个Haskell问题,应该实现last.我写了以下版本:

 myLast :: [a] -> a
 myLast []     = []       
 myLast (x:[]) = x          
 myLast (x:xs) = myLast(xs) 
Run Code Online (Sandbox Code Playgroud)

但是,如果我将其加载到GHCi中,我会收到错误:

Couldn't match expected type `a' with actual type `[t0]'
  `a' is a rigid type variable bound by
      the type signature for myLast :: [a] -> a at problem1.hs:1:11
Relevant bindings include
  myLast :: [a] -> a (bound at problem1.hs:3:1)
In the expression: []
In an equation for `myLast': myLast [] = []
Failed, modules loaded: none.
Run Code Online (Sandbox Code Playgroud)

这告诉了我

myLast[]    = …
Run Code Online (Sandbox Code Playgroud)

haskell list

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

如何计算连续对的差异乘积?

我必须从具有此函数定义的列表中计算每个连续对的差异之间的乘积f :: [Int] -> Int,例如:

f [3, 1, 4, 2, 5] = (3 - 1) * (1 - 4) * (4 - 2) * (2 - 5) 
                  = 36
Run Code Online (Sandbox Code Playgroud)

我必须递归地执行此操作,我知道如何处理数组中元素的乘积,但是如何从列表中选择元组并将它们的差异乘以下一个元组的差异,任何提示都将受到赞赏.到目前为止我有这个:

f :: [Int] -> Int
f [] = 1
f (x:xs) = x * f xs
Run Code Online (Sandbox Code Playgroud)

但这只给了我元素的产物.

haskell

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

为什么Haskell的Monad实现失败函数结果与错误结果不同?

我试图理解monads并阅读它的类型类定义:

class Monad m where
    .
    .
    .
fail :: String -> m a
fail msg = error msg
Run Code Online (Sandbox Code Playgroud)

现在,错误的定义是:

error :: [Char] -> a
Run Code Online (Sandbox Code Playgroud)

在这种情况下,类型系统不应该抱怨吗?如 a /= m a

或者类型系统是否自动假设将错误的结果转换为

m a
Run Code Online (Sandbox Code Playgroud)

不知何故?

提前致谢

haskell

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

标签 统计

haskell ×5

html ×2

adblock ×1

c ×1

c++ ×1

hugs ×1

ios ×1

ipad ×1

iphone ×1

javascript ×1

lines ×1

list ×1

numbers ×1

pointers ×1

syntax ×1