Функция сопоставления шаблонов и синтаксиса записи для извлечения поля типа данных

Дан пример типа данных с синтаксисом записи:

data VmInfo = VmInfo {infoVid   :: String
                    ,infoIndex :: Int
                    ,infoPid   :: Int
                    ,infoExe   :: String
                     } deriving (Show)

и (vmInfo ::String -> VmInfo )функция, которая генерирует и возвращает указанную выше структуру данных с именем vm в виде строки.

Я вижу два метода извлечения отдельных частей типа данных VmInfo.

(VmInfo vid _ _ _) <- vmInfo vm

Это просто совпадение с образцом. И...

vid <- infoVid <$> vmInfo vm

с использованием сгенерированных компилятором синтаксиса записи функций.

Вопрос простой :какой метод предпочтительнее?

Количество -из -печатаемых мудрых, они одинаковы, поэтому я ищу скорость и правильность/лучшую практику.

Я предполагаю, что сопоставление с образцом будет быстрее, но тогда в чем смысл синтаксиса записи?

Спасибо.

6
задан cnd 24 April 2012 в 03:59
поделиться