0

ハードコードされた一連の名前と既存の function を使用して、画像のリスト (または任意のデータ構造) をロードしたいと考えていますloadImage :: String -> IO Image

Lua では、次のようにします。

imageNames = {"background", "gun", "man"}

images = {}
for i,v in ipairs(imageNames) do
    images[v] = loadImage(v..".png")
end

images.backgroundなどでそれらにアクセスしますimages.man。Haskellでこれを行うにはどうすればよいですか?

4

3 に答える 3

2

基本的に Ankur が言ったことは、おそらく明示的な「画像」リストを持たず、おそらく JuicyPixels を使用して読み込みを行うでしょう:

import Data.Map
import Codec.Picture

images :: [String]
images = ["background", "gun", "man"]

main = do
  imgs <- mapM loadImage images
  let imageMap = fromList (zip images imgs)
  return ()

loadImage :: IO DynamicImage
loadImage = either id (error "Bad Image") `fmap` readImage
于 2013-08-31T08:59:07.057 に答える