Что означает этот символ </>
означает в Haskell?Что такое символ Хаскелла?
Как это называется?
Как его использовать?
Я использую ghc 7.8 для компиляции приложения.
Что означает этот символ </>
означает в Haskell?Что такое символ Хаскелла?
Как это называется?
Как его использовать?
Я использую ghc 7.8 для компиляции приложения.
Это псевдоним для combine.
Combine two paths, if the second path isAbsolute, then it returns the second.
Valid x => combine (takeDirectory x) (takeFileName x) `equalFilePath` x
Posix: combine "/" "test" == "/test"
Posix: combine "home" "bob" == "home/bob"
Windows: combine "home" "bob" == "home\\bob"
Windows: combine "home" "/bob" == "/bob"
Почему? Поскольку '' <> '' является оператором операции '' mappend'', которая является общей версией оператора '' ++ ''. Поэтому ''> '' должен выглядеть как «join with slash». –
Мне нравится эта функция в haskell, в C# у нас есть 'Path.Combine()', которая тоже кросс-платформенная. – linquize
SeanPerry: Это интересное наблюдение. Никогда об этом не думал. Интересно, будет ли смысл для 'FilePath' быть' newtype' и 'комбинировать'' mappend' своего экземпляра 'Monoid' ... –
Вместо того, чтобы научиться ловить рыбу, а не о нижнем. @linquize, http://www.haskell.org/hoogle/ позволяет также искать символы. –
И обратите внимание, что это не определено Haskell как языком, а библиотекой. Вы можете определить свою собственную процедуру с именем «>», которая выполняет любую произвольную операцию, например форматирование жесткого диска. –
Альтернативой hoogle будет ': i (>)' в GHCi, который даст вам тип функции и модуль, из которого она исходит. –