2013-01-13 5 views
1

REDUCE를 사용할 때 기본적으로 DO 언어에서 작동합니다. PAREN! 그룹 항목을 우선 순위에 사용할 수 있습니다PAREN을 (를) 보존하십시오! reduce 작업이 블록에서 실행될 때

>> reduce ["Hello" (3 + 4) * 5] 
== ["Hello" 35] 

작성] 방언, 괄호에있는 동안! 혼자 나머지 떠나, 당신은 DO 방언으로 평가하려는 블록의 어느 부분을 호출하는 데 사용됩니다 :

>> compose ["Hello" (3 + 4) * 5] 
== ["Hello" 7 * 5] 

을하지만 당신은 줄이거 나 작성하고 당신이 떠나고 싶어 몇 가지를 실행하려면 문자 괄호로, to-paren과 블록 외에 다른 관용어가 있습니까?

>> reduce ["Hello" (3 + 4) * 5 to-paren ["inside!"]] 
== ["Hello" 35 ("inside")] 

(!) 참고 : 나는 LIT-괄호로 인한 것 막무가내 어떤 종류의 궁금해?

>> reduce ["Hello" (3 + 4) * 5 '("inside!")] 
== ["Hello" 35 ("inside")] 

... 다시, 나는 그것에 대해 생각할지 모른다. :-)

답변

3

더 일반적인 방법은 quote에 의존하는 것입니다

>> reduce ["Hello " (3 + 4) * 5 quote ("inside!")] 
== ["Hello " 35 ("inside!")] 

QUOTE는 R3로 제공되며 2.7.7 이후 R2에.

+0

때때로 어떤 일을 * 알게되면 이런 것들을 묻는 것이 어리석은 것처럼 보이지만 더 나은 관용구를 찾으십시오. – HostileFork

2

또 다른 관용구, 예 :

>> reduce ["Hello" (3 + 4) * 5 first [("inside!")]] 
== ["Hello" 35 ("inside")] 

확실하지가 더 좋은,하지만 그것은 다른 동물이다. 당신이 원하는 것을 달성하기 위해

+0

글쎄, 그것은 문자의 수가 적어서 괄호 안에있는 코드가 독자에게 더 분명하다는 사실을 알 수 있습니다. 하나의 괄호 그룹 만있는 블록은 그 자체에주의를 환기시킵니다. 그래서 이것은 더 좋을 것이라고 생각합니다 ... 심볼 구조의 측면에서 오버 헤드가 더 있습니다 : 첫 번째, [],(), "대", "[]" " – HostileFork

+0

@earl 따옴표, 심지어 더 나은 지적했다 ... – HostileFork

+0

D' 오, 잊어 버린 하나 - 그리고 난 그냥 견적에 대한 토론도 했어! – rgchris