2017-10-26 2 views

答えて

1

一般的に人は、アイテムを与えるのとは逆にシリーズの位置を動かすFORALL (これはFOR-NEXTという名前の方がはるかに良いでしょう)を使用すると、TAIL?でテストできます。これはほぼ同等である

forall items [ 
    probe items/1 ;-- how to access current item 
    if tail? next items [ ;-- could use LAST? ITEMS in Rebol 3 
     print "last item" 
    ] 
] 

:欠点は、あなたが現在の位置にシリーズのうち、項目を選択する必要がある

if not tail? items [ 
    original: items 
    until [ 
     probe items/1 
     if tail? next items [ 
      print "last item" 
     ] 
     items: next items 
     tail? items 
    ] 
    items: original 
] 

はあらかじめご了承:FORALLは、その入力系列を変異させると置くしようとします最後の最初の位置に戻ります。しかし、エラーが発生した場合の動作はあまり定義されていないため、問題が発生した場合は途中で入力を残すことができます。

+0

これは機能しません。 Rebol2もRedも、 "最後の項目"を印刷することはできません。これは、ループがprint文の前の末尾で停止するためです。あなたは次の位置**の尾を確認する必要がありますか?次の項目** – sqlab

+0

@sqlabありがとう、訂正しました。また、R3-AlphaはLASTですか?レッドにも良いことがあるかもしれません。 – HostileFork

関連する問題