2017-03-07 11 views
1

入れ子にされたリストを並べ替えるこのコードが見つかりました。入れ子になったリストを並べ替えます

to-report test 
    let z [[2 3] [1 9] [3 1] ] 
    report sort-by [(first ?1) < (first ?2)] z 
    end 

この式の最初の1,2番目の2は何ですか。彼らは変数として定義されていないと言います。

+0

同様のソリューションが、再び1と2で使用されています:??それは次のようになりますhttp://stackoverflow.com/questions/31545569/sorting-list-of-lists-by - 内部インデックスのインデックス – Nety

答えて

2

おそらくNetLogo v6.0を使用していますか?あなたのコードはv5.3.1で動作しますが、v6.0では匿名の記者が使用されます。

to-report test 
    let z [[2 3] [1 9] [3 1] ] 
    report sort-by [[list1 list2] -> first list1 < first list2] z 
end 

チャールズ

+0

こんにちは、問題はnetlogoのバージョンでした。ありがとうございますが、これは最初の2つの要素だけをソートしますが、ネストされたリスト内のすべてのリストをソートしたいと思います。 – Nety

+0

これはそうです。リストのリスト内のすべてのサブリストをソートします。 「z」のそれぞれの第1の要素によって表される。たとえば、let '[2 3] [1 9] [3 1] [0 100] 'の場合、並べ替えられたリストのリストの先頭に並べ替えが行われます。最初のコードは、サブリストを最初の要素でソートすることを示唆していました。それはあなたが望んだことですか?元のコードで 'list1'と' list2'を '?1'と'?2'と考えてください。 – Charles

+0

あなたは完全なリストをソートするのは間違いありません。私はあまりにも長い間コーディングしていたし、私の脳は最後と最初を処理しなかった。 item id(first/last)を変更すると、ソートが完了した後に要素を変更できます。コードはうまくいきます。ありがとうございました – Nety

関連する問題