2017-09-18 13 views
2

、私は次のコード内のすべてのGUI要素からテキストをプリントアウトしようとしています:印刷アウトテキストは

sentlist: ["A" "B" "C"] 

    main: function [slist] [ 
     view collect [ 
      repeat i length? slist [ 
       keep compose [ 
        text (slist/:i) 
        field "" 
        return ]] 
      keep [button "Printall" [ 
       repeat i (2 * length? slist)[ 
        print face/parent/pane/(i)/text ]]]]] 

(main sentlist) 

それはエラーなしですべての権利で実行され、text要素のテキストが正しく印刷されていますアウトされますが、fieldsの場合は、各フィールドに最後のフィールドのエントリのみが出力されます。問題はどこでどのように解決できますか?ご協力いただきありがとうございます。

答えて

2

field ""では、各フィールドに同じ文字列が再利用されます。 1つのフィールドを変更すると、それぞれのテキストが変更されます(効率上の理由から、GUIには反映されません)。一意の文字列を提供するには、行をfield (copy "")に変更します。

+0

これは本当にこの言語の固有の問題です。それはなぜそこにあるのですか? – rnso

+0

@rnso Rebolの著者はここに書いています:[Rebolは純粋な機能言語ですか?](http://www.rebol.com/article/0206.html)ここで議論されています:[Rebolは機能的プログラミング言語ですか? ](https://softwareengineering.stackexchange.com/questions/187800/is-rebol-a-functional-programming-language)。 – rgchris

+0

Rebol 3の[Ren-C](https://github.com/metaeducation/ren-c)ブランチは、上記の場合にエラーが発生するように、ソースでそのまま作成されるシリーズをロックします。 – rgchris