Forth에서 primality을 어떻게 확인할 수 있습니까? 여기 내가 지금 무엇을 사용하지만, 높은 숫자와 함께 천천히 가져옵니다 간단한 확률 적 방법은 당신이 위키 백과에서 볼 수 있습니다 페르마 테스트, 함께 : prime (n - f)
DUP 2 < IF
DROP 0 EXIT
THEN
DUP 2 ?DO
나는 Gforth을 사용하고 있으며 정의에 단어를 만들고 싶습니다. Gforth의 cmd를 행에서 I는 입력 할 수 create foo
ok
상세하게, I는 스택의 크기를 예상하고 그 어레이의 어드레스와 단어를 생성하는 배열 함수를 정의 : : array (n --) (i -- addr)
create cells allot
does>
Gforth 0.7.0을 공식 웹 사이트에서 다운로드 한 후 /Applications에 폴더를두고 /usr/local/bin에 별칭을 지정합니다. 컴파일 사용 후 : making, 그것은 결과를 얻을 수 $ sudo -s
$ ./configure
$ make
: cd engine && make gforth-ditc-noll OPT=-noll OPTD
나는 둘러 보았고 에서 사용할 Gforth에 대한 구문 정의를 찾지 못했습니다. 하나 있습니까? TextPad에 대한 정보를 찾았지만 그게 전부입니다 (TextPad syntax definitions 참조). TextPad 용 텍스트를 Sublime Text 2로 변환 할 수 있습니까?
Gforth에는 부동 소수점 값에 정수 값을 추가 할 수 있습니까? 같은 것을 1 + 2.1과 같습니까? 내가 1 2.1e f+을하면 값이 같은 스택에 없기 때문에 내가 추측하고있는 오류가 발생합니다. 내가 할 수있는 일은 1.0e 2.1e f+이지만 그게 내가하는 법을 알아 내려고하는 것이 아닙니다.
gforth에서 두 개의 문자열을 추가하려고하는데 무서운 오류 메시지가 표시됩니다. s" foo" s" bar" append type cr이 제대로 작동하지만 문자열을 변수에 저장하거나 단어로 저장하는 즉시 오류가 발생합니다. 예를 들어 : : make-string (-- s)
s" foo" ;
: append-print (s s --)
s>d과 d>s 함수가 Forth에서 어떻게 작동하는지에 대해 상당히 혼란 스럽습니다. 내가 읽은 바로는 , (이 두 개의 셀을 차지하기 때문에)와 d.가 160 표시됩니다 스택에 160 0을 넣어 것입니다 16.0를 입력. 이제 16 s>d을 입력하면 앞의 예제와 같이 160 0 및 이 표시 될 것으로 예상됩니다. 그러나 스택은 16 0이고 d.은 16입
Rosetta code에서 Forth에서 문자열을 연결하는 방법으로 다음을 사용합니다. s" hello" pad place
pad count type
s" there!" pad +place
pad count type
이 코드를 사용하면 여러 문자열을 함께 연결할 수 있습니다. 그러나, 다음은 내 넷째 기본 노출에서 Gforth s" hi " pad