2016-09-24 6 views
-4

forのループの最初と最後の番号に基づいて整数のシーケンスを生成するにはどうすればよいですか?ルア - 数字のシーケンスを生成する

次の擬似コード

for i in sequence(4,9) do 
    print(i) 
end 

は、ソリューションがバックグラウンドで行い、どのような専門用語は解決策を見つけるために1を許可しているだろうか短い説明を記載してください次の出力

4 
5 
6 
7 
8 
9 

を生成する必要があります。

検索の試みによって、膨大な数のドキュメントが検索されます。

+0

私は、i = 4、 9は、http://stackoverflow.com/questions/12020574/lua-for-variable-in-rangeのおかげで解決策になりましたが、私はこれが何であり、何が呼び出されているのかについての説明を求めます。 "、"は発見できません。 Pythonsのドキュメントで "in"を探すのと同様です。 :) – qubodup

+2

これはforループと呼ばれていますか? – hjpotter92

+1

https://devdocs.io/lua~5.3/index#3.3.5 – hjpotter92

答えて

2

これを行うにはnumeric for loopを使用できます。詳細は、私が参照しているLuaのプログラミングセクションまたはFor statementのLuaマニュアルセクションを参照してください。

1

完全なレコードの場合、基本的に3つの方法があります.1つは構文が少し異なり、2つは擬似コードと同じ構文です。リンクはProgramming in Luaの関連する章を指しています(ところで、これは素晴らしい本です)。

1)簡単なnumeric for loopを使用する - この場合には、あなたはsequenceを使用しません。

for i=4,9 do 
    print(i) 
end 

2)sequenceclosureとして実装します

function sequence(from,to) 
    local i = from - 1 
    return function() 
    if i < to then 
     i = i + 1 
     return i 
    end 
    end 
end 

for i in sequence(4,9) do print(i) end 

3)coroutineとしてsequenceを実装します:

function sequence(from, to) 
    return coroutine.wrap(function() 
    for i=from,to do 
     coroutine.yield(i) 
    end 
    end) 
end 

for i in sequence(4,9) do print(i) end 
+1

''関数配列 ローカルIND = IND又は1 ローカルI =から(INDと、から) - IND IND +へ=へ復帰機能() I = iはから<私 リターンIND +またはnil end end'' – warspyking

+0

単純化し、より多くの機能を追加するためのちょっとした提案:) – warspyking

関連する問題