これまでのところ、ハスケルで分数ナップザック問題を実行しようとしています
コード:
{- Input "how much can the knapsack hole <- x" "Possible items in sack [(label, value, weight), ...]" -}
knap x [] = []
knap x y = if length y == 1 then
入力リストの形式は [([Char], Integer, Integer), ... ] (文字、整数、および整数のリスト) のリストのリストです。
私の問題は、ナップザックに入れる可能性のある各アイテムのラベル、値、および重量を引き出そうとしていることです。(リストのリストから値を引き出す)
私の prelude> プロンプトで、私はいくつかのことを試しています
ghci 出力:
Prelude> let x = [("label 1", 2, 14), ("label 2", 1, 15)]
Prelude> :t x
x :: [([Char], Integer, Integer)]
Prelude> length x
2
Prelude> x !! 0
("label 1",2,14)
Prelude> x !! 0 !! 1
<interactive>:1:1:
Couldn't match expected type `[a0]'
with actual type `([Char], Integer, Integer)'
Expected type: [[a0]]
Actual type: [([Char], Integer, Integer)]
In the first argument of `(!!)', namely `x'
In the first argument of `(!!)', namely `x !! 0'
ご覧のとおり、私はリストをやろうとしています!! 索引 !!「アイテム」から重みを引き離そうとするインデックス。これを行うための適切な構文は何ですか?