2015-03-04 24 views
5

Tôi muốn viết một vòng lặp while() trong Gforth. Thật không may, the only tutorial online không hữu ích do thiếu các ví dụ và ví dụ về các vòng được tính (những gì tôi không tìm kiếm) xuất hiện về cơ bản khác nhau.Cách viết vòng lặp while() trong Gforth

Một số ví dụ cụ thể về cách thể hiện điều gì đó như thế này?

while (x > 3) { print(x); x--; } 

Hoặc thực sự, chỉ là một số cách cụ thể để đại diện cho bất cứ điều gì có dạng:

while (predicate) { expression(s) } 

Trả lời

5

mảnh Your first mã dịch để:

\ Assuming x is on the top of the stack. 
begin dup 3 > while dup . 1- repeat 

\ Or if x is in memory. 
begin x @ 3 > while x ? -1 x +! repeat 

Và thứ hai:

begin predicate while expressions repeat 
Các vấn đề liên quan