私は大きな問題があり、それを解決しようと数日を要しています。誰かが私を助けてくれることを願っています。問題は以下の通りです: 私が持つことができ、リストn個の要素を持っていますが、要素の数に応じて、私はさまざまな方法で機能を適用する必要があり、一例として、私は次のコードを持っている:スカラの再帰リスト操作
if (list.size() == 1){
p = list.get(0)
select = new Select(schema,p)
println(select)
} else { //If list have 2 elements
p = list.get(0)
p1 = list.get(1)
select = new Select(schema,And(p,p1))
println(select)
} else { //If list have 3 elements
p = list.get(0)
p1 = list.get(1)
p2 = list.get(2)
select = new Select(schema,new And(And(p,p1),p2))
println(select)
} else { //If list have 4 elements
p = list.get(0)
p1 = list.get(1)
p2 = list.get(2)
p3 = list.get(3)
select = new Select(schema,new And(And(p,p1),And(p2,p3))
println(select)
} else { //If list have 5 elements.......... and so on
どのようにすることができますこの成功条件を避け、このことを成し遂げてください。私はforループを試してみましたが、新しい変数を生成することはできません。また、And関数をどのように制御するのかもわかりません。私は情報を必要とします。
sealed abstract class Pat //patterns
case class And(p1: Pat, p2: Pat) extends Pat
これは私が上記の条件文の結果を取得した後に使用している他の機能があります。より多くの情報を追加し、機能は、ネストされたループは、それはリレーショナルデータベースで使用される結合です。また、リストナンバーではなく、修正番号でなくてもいいことが考えられます。
elseの代わりにifを使用して開始します。 –
「match」文はどうですか? – Simon
これはリストの任意のサイズを処理する必要がありますか?ネストブール式の複数のレベルがありますか?おそらくあなたはサンプル入力とサンプル出力を提供することができます – Simon