小编Bee*_*tle的帖子

Haskell入门

几天后,我试图围绕Haskell中的函数式编程范例.我通过阅读教程和观看截屏视频来完成这项工作,但似乎没有什么能够坚持下去.现在,在学习各种命令式/ OO语言(如C,Java,PHP)时,练习对我来说是个好方法.但由于我不知道Haskell能够做什么,并且因为有许多新概念可供使用,我还不知道从哪里开始.

那么,你是如何学习Haskell的?是什么让你真正"打破僵局"?还有开始练习的好主意吗?

haskell functional-programming

755
推荐指数
15
解决办法
24万
查看次数

在jQuery中,当它们都具有相同的名称时,如何获得单选按钮的值?

这是我的代码:

<table>
   <tr>
      <td>Sales Promotion</td>
      <td><input type="radio" name="q12_3" value="1">1</td>
      <td><input type="radio" name="q12_3" value="2">2</td>
      <td><input type="radio" name="q12_3" value="3">3</td>
      <td><input type="radio" name="q12_3" value="4">4</td>
      <td><input type="radio" name="q12_3" value="5">5</td>
   </tr>
</table>
<button id="submit">submit</button>
Run Code Online (Sandbox Code Playgroud)

这是JS:

$(function(){
    $("#submit").click(function(){      
        alert($('input[name=q12_3]').val());
    });
 });
Run Code Online (Sandbox Code Playgroud)

这是JSFIDDLE!每次我点击按钮它都会返回1.为什么?谁能帮我?

javascript jquery

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

Haskell/Parsec:如何将Text.Parsec.Token与Text.Parsec.Indent一起使用(来自indents包)

缩进包Haskell的秒差距提供了一种方法来解析缩进式语言(比如Haskell和Python).它重新定义了Parser类型,那么如何使用Parsec Text.Parsec.Token模块导出的令牌解析器函数,这些函数属于普通Parser类型?

背景

Parsec附带了大量模块.他们中的大多数导出一堆有用的解析器(例如newlinefrom Text.Parsec.Char,解析换行符)或解析器组合器(例如, count n pText.Parsec.Combinator,运行解析器p,n次)

但是,该模块Text.Parsec.Token希望导出由用户参数化的函数和正在解析的语言的特征,例如,该braces p函数将在解析'{'之后和解析'}'之前运行解析器p,忽略评论之类的东西,其语法取决于你的语言.

Text.Parsec.Token实现这一目标的方法是它导出一个函数makeTokenParser,你调用它,给它你特定语言的参数(就像评论的样子),并返回一个包含所有函数的记录Text.Parsec.Token,适合你的语言.指定.

当然,在缩进式语言中,这些需要进一步调整(也许?这里是我不确定的地方 - 我稍后会解释)所以我注意到(可能是过时的)IndentParser包提供了一个模块Text.ParserCombinators.Parsec.IndentParser.Token这看起来是替补Text.Parsec.Token.

我应该在某些时候提到所有Parsec解析器都是monadic函数,所以它们用状态做神奇的事情,这样错误消息可以说出源文件中的哪一行和哪一行出现了错误

我的问题

由于一些小的原因,在我看来,缩进包或多或少是当前版本的IndentParser,但它没有提供看起来像Text.ParserCombinators.Parsec.IndentParser.Token它只提供的模块Text.Parsec.Indent,所以我想知道如何获得所有的令牌解析器Text.Parsec.Token(比如reserved "something"解析保留的关键字"something",或者braces我之前提到过的).

这样看来,我认为(新) …

parsing haskell types parsec indentation

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

Haskell/Parsec:你如何使用Text.Parsec.Indent中的函数?

我在如何使用Haskell包Text.Parsec.Indent提供的模块中的任何函数时遇到了麻烦indents,Haskell是Parsec的一种附加组件.

所有这些功能都做了什么?它们如何使用?

我能理解的简单的黑线鳕描述withBlock,我发现了如何使用的例子withBlock,runIndentIndentParser类型在这里,这里这里.我也可以理解四个解析器indentBrackets和朋友的文档.但是很多事情仍然令我感到困惑.

特别是:

  1. withBlock f a p和之间有什么区别

    do aa <- a
       pp <- block p
       return f aa pp
    
    Run Code Online (Sandbox Code Playgroud)

    同样,withBlock' a p和之间有什么区别do {a; block p}

  2. 在职能indented和朋友的家庭中,"参考水平"是什么?那就是什么是'参考'?

  3. 再次,与功能indented和朋友,他们如何使用?除了withPos它之外,看起来它们没有参数并且都是类型IParser ()(IParser定义像这样或者这样)所以我猜他们所能做的就是产生错误或者它们应该出现在一个do块中,但我无法弄清楚细节.

    我至少withPos源代码中找到了一些关于使用的例子,所以如果我盯着它看足够久,我可能会想到这一点.

  4. <+/>附带有用的描述" <+/>是缩进敏感的解析器是什么ap是monads"这是伟大的,如果你想花几个会议试图包裹你的头 …

parsing haskell parsec indentation

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