Red 언어로지도 기능 생성

rnso

Red 언어로 고차 함수 인 map을 어떻게 만들 수 있습니까 ? 블록과 함수를 인수로 취하고 전송 된 함수를 블록의 각 멤버에 적용해야합니다. 다음 코드를 시도했습니다.

Red []
mapfn: function[blk sfn][
    outblk: copy []
    foreach i blk[
        append outblk (sfn i) ]
    outblk ]

; to test: 
myblk: [" this " " is   " " a "  "    line " "for" "   testing " " only   "]
probe mapfn myblk 'reverse 
probe mapfn myblk 'trim

그러나 작동하지 않습니다. 단순히 원래 블록을 변경하거나 오류 메시지를 표시하지 않고 다시 보냅니다. 이 문제를 어떻게 해결할 수 있습니까?

sqlab

Rebol에서는 메 자닌 기능이 적용됩니다.

>> help apply
USAGE:
    APPLY func block /only 

DESCRIPTION:
     Apply a function to a reduced block of arguments.
     APPLY is a function value.

ARGUMENTS:
     func -- Function value to apply (Type: any-function)
     block -- Block of args, reduced first (unless /only) (Type: block)

REFINEMENTS:
     /only -- Use arg values as-is, do not reduce the block

(SPECIAL ATTRIBUTES)
     throw

소스 적용을 참조하십시오 .

Red에 기본 적용이없는 한 고유 한 매핑 기능을 작성할 수 있습니다.

mapfn: function[blk sfn][
    outblk: copy []
    foreach i blk[
        append outblk sfn copy i 
    ]
    outblk 
]

: functionname으로 함수 가져 오기

>> myblk: [" this " " is   " " a "  "    line " "for" "   testing " " only   "]
== [" this " " is   " " a " "    line " "for" "   testing " " only   "]
>> probe mapfn myblk :reverse 
[" siht " "   si " " a " " enil    " "rof" " gnitset   " "   ylno "]
== [" siht " "   si " " a " " enil    " "rof" " gnitset   " "   ylno "]
>> probe mapfn myblk :trim
["this" "is" "a" "line" "for" "testing" "only"]
== ["this" "is" "a" "line" "for" "testing" "only"]
>> 

모든 데이터 유형을 복사 할 수 없기 때문에 대안적이고 더 나은 방법은 다음과 같습니다.

mapfn: function[blk sfn][
    collect [
        foreach i blk[
            keep sfn i 
        ]
    ]
]

원본을 수정하지 않으려면이 방법으로 함수를 호출하십시오.

mapfn newblk: copy/deep myblk :reverse

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Google지도 API 서비스 콜백 기능으로 각도 서비스 생성

분류에서Dev

기능적 언어 기능의 발견 가능성

분류에서Dev

기능 생성 방법-이미지 발생 행렬?

분류에서Dev

재생, 일시 중지, 중지 버튼, 언어 및 음성 선택 기능이있는 SpeechSynthesisUtterance 스크립트

분류에서Dev

깔끔한 언어로 된지도 기능

분류에서Dev

매직 스퀘어 기능 생성 및 파일 쓰기

분류에서Dev

Google지도 LatLng 생성기

분류에서Dev

동전 던지기 R 기능 생성 방법

분류에서Dev

생성기 기능이 실행되지 않음

분류에서Dev

지도를 로컬에 저장하고 생성하는 기능이있는 Boostrap Google지도

분류에서Dev

"C"언어 기능의 특이성

분류에서Dev

버튼 클릭, 루프로 생성 된 버튼에 대한 기능 생성

분류에서Dev

생성기 및 기능

분류에서Dev

"도우미"기능 덕분에 키 => 값 배열 생성

분류에서Dev

R에서 열을 생성 할 때 비 기능 적용 시도

분류에서Dev

Laravel 5.8 저장 기능 생성에 대한 도움말

분류에서Dev

VBA에 대한 일치 및 복사 기능 생성 시도

분류에서Dev

정시 업데이트 기능 생성 시도

분류에서Dev

만료 된 세션에 대한 redux 미들웨어 재시도 기능 생성

분류에서Dev

대량 생성 가능한 단어 얻기

분류에서Dev

임의의 단어 조합을 생성하는 기능

분류에서Dev

Excel에서이 기능을 어떻게 생성합니까?

분류에서Dev

사용자 검색 기능은 어떻게 생성합니까?

분류에서Dev

Python Bokeh로 동적 크기 및 색상으로 도형 차트 생성 가능

분류에서Dev

난수 생성 기능이 500000을 넘지 않습니다.

분류에서Dev

생성 된 기능이 작동하지 않음 (Python)

분류에서Dev

반복되지 않는 난수 생성 기능

분류에서Dev

오류 생성없이 Typescript 기능 감지

분류에서Dev

Zomato API 용 React Native로 검색 기능 생성

Related 관련 기사

  1. 1

    Google지도 API 서비스 콜백 기능으로 각도 서비스 생성

  2. 2

    기능적 언어 기능의 발견 가능성

  3. 3

    기능 생성 방법-이미지 발생 행렬?

  4. 4

    재생, 일시 중지, 중지 버튼, 언어 및 음성 선택 기능이있는 SpeechSynthesisUtterance 스크립트

  5. 5

    깔끔한 언어로 된지도 기능

  6. 6

    매직 스퀘어 기능 생성 및 파일 쓰기

  7. 7

    Google지도 LatLng 생성기

  8. 8

    동전 던지기 R 기능 생성 방법

  9. 9

    생성기 기능이 실행되지 않음

  10. 10

    지도를 로컬에 저장하고 생성하는 기능이있는 Boostrap Google지도

  11. 11

    "C"언어 기능의 특이성

  12. 12

    버튼 클릭, 루프로 생성 된 버튼에 대한 기능 생성

  13. 13

    생성기 및 기능

  14. 14

    "도우미"기능 덕분에 키 => 값 배열 생성

  15. 15

    R에서 열을 생성 할 때 비 기능 적용 시도

  16. 16

    Laravel 5.8 저장 기능 생성에 대한 도움말

  17. 17

    VBA에 대한 일치 및 복사 기능 생성 시도

  18. 18

    정시 업데이트 기능 생성 시도

  19. 19

    만료 된 세션에 대한 redux 미들웨어 재시도 기능 생성

  20. 20

    대량 생성 가능한 단어 얻기

  21. 21

    임의의 단어 조합을 생성하는 기능

  22. 22

    Excel에서이 기능을 어떻게 생성합니까?

  23. 23

    사용자 검색 기능은 어떻게 생성합니까?

  24. 24

    Python Bokeh로 동적 크기 및 색상으로 도형 차트 생성 가능

  25. 25

    난수 생성 기능이 500000을 넘지 않습니다.

  26. 26

    생성 된 기능이 작동하지 않음 (Python)

  27. 27

    반복되지 않는 난수 생성 기능

  28. 28

    오류 생성없이 Typescript 기능 감지

  29. 29

    Zomato API 용 React Native로 검색 기능 생성

뜨겁다태그

보관