2017-05-23 18 views
0

ここでは、トラブルの原因となるコードの一部です。リストをforeachループのエージェントに変換する

"rank-tvmratio"がのように見えるそのリストを持参することになっている。このコードでは
to update-trustt 
    let rank-tvmratio sort-on [tvmratio] turtles 
    foreach rank-tvmratio tvmratio -> ask rank-tvmratio [set trustt (trustt + tvmratio)] 
end 

、: [(亀56)(カメ23)...(亀9)]

私が何をしたいかにあります3行目に書かれているの変数"trustt"をそれぞれ更新するようにします。

ブライアンの助言に続いて、私は"->"を挿入し、 "who"は "what"をしていると指定しました。

それでも、新しいエラーメッセージ"Nothing name -> has been defined"

どのように私はこの問題を解決することができますがありますか?私はあなたの賢明なアドバイスが必要です。

(。?実際に変数tvmratioがRNetLogoパッケージを使用して、プログラムRから来ている。これとは何かを持っている)

私は、これはおそらくあなたが探しているしたいと思うあなたに

+0

あなたの 'foreach'構文はかなり間違っています。どのバージョンのNetLogoを使用していますか? – Alan

+0

最新のバージョン6.0.1を使用していますが、どのように構文を修正できますか? –

+0

ドキュメントを参照してください。 'trustt'はタートル変数ですか?あなたはこのアップデート後に何をしたいですか?コードはあまりにも間違っています。 – Alan

答えて

1

ありがとう:

to update-trustt 
    let rank-tvmratio sort-on [tvmratio] turtles 
    foreach rank-tvmratio [ t -> 
    ask t [ 
     set trustt (trustt + rank-tvmratio) 
    ] 
    ] 
end 

コードにいくつかの問題がありました。まず、foreachに与えられたコマンドは引数を含む必要があります。これは->の構文で行います。 ->の前のt(カメの場合)は、リスト内の各項目がそのまま渡される変数です。第2に、はaskと異なり、foreachにはエージェントがコマンドを実行していないので、コマンドの引数として一度に1つずつ渡された項目でコマンドが実行されるため、明示的に要求する必要があります。

+0

申し訳ありません、ありがとう、Bryan。まだ解決策が問題を解決していないのですが、その理由もわかりません。回答:これを見る方法は他にありますか? –

+0

ああ、私は上記のタイプミスをしていましたが、 'set trustt'行末に'] 'が間違っていました。何もない名前を取得する - > has bee nは定義されています。 6.0.1を使用していますか? –

+0

私は問題を〜〜!ありがとうブライアン〜!!!! :) –

関連する問題