최근에 나를 괴롭 히고있는 빠른 질문. Haskell은 부울 값을 반환하더라도 부울을 반환하는 함수에서 모든 동등성 테스트를 수행합니까? f a b = ((a+b) == 2) && ((a*b) == 2)
첫 번째 테스트가 false를 돌려주는 경우 예를를 들어 , 그것은 &&에 이어 두 번째 테스트를 수행 할 것인가? 또는 하스켈은 그것을하지 않고 계속
키워드를 사용하여 단어의 반복을 종료하는 방법을 알아 내려고하고 있습니다. 예 : class CAQueryLanguage extends JavaTokenParsers {
def expression = ("START" ~ words ~ "END") ^^ { x =>
println("expression: " + x);
x
수 문자열과 변수 문자열 구분 : 을 def factor: Parser[ExprTree] = (wholeNumber | "(" ~ expr ~ ")" | ident) ^^ {
case a: wholeNumber => Number(a.toInt)
case a: String => Variable(a)
}
두 번째 줄에 'case a :
고차 결합 자 (또는 함수 생성자)는 정확히 concatenative 및 tacit programming에 어떤 역할을합니까? 스택을 직접 조작하지 않고 연결 프로그래밍 언어를 구현하는 다른 방법이 있습니까? 언급 된 결합 자와의 관계는 어느 정도입니까? Schonfinkel의 combinatory logic은 어느 정도입니까?
같이 좀 XHTML이 (그러나 정말 어떤 XML 할 것) : <h1>
Hello<span class='punctuation'>,</span>
<span class='noun'>World<span class='punctuation'>!</span>
</h1>
가 어떻게 루비의 String로서 <h1/>의 전체 내용을받을 수 있나요? a
combinator 파서에서 모호한 언어가 있다고 가정합니다. 특정 표현을 지역적으로 탐욕스럽게 만드는 방법이 있습니까? 다음은 내가 말하는 의미의 예입니다. 다음과 같이 import scala.util.parsing.combinator._
object Example extends JavaTokenParsers {
def obj: Parser[