2014-06-03 5 views
2

Что означает этот символ </> означает в Haskell?Что такое символ Хаскелла?

Как это называется?

Как его использовать?

Я использую ghc 7.8 для компиляции приложения.

+5

Вместо того, чтобы научиться ловить рыбу, а не о нижнем. @linquize, http://www.haskell.org/hoogle/ позволяет также искать символы. –

+2

И обратите внимание, что это не определено Haskell как языком, а библиотекой. Вы можете определить свою собственную процедуру с именем «», которая выполняет любую произвольную операцию, например форматирование жесткого диска. –

+0

Альтернативой hoogle будет ': i ()' в GHCi, который даст вам тип функции и модуль, из которого она исходит. –

ответ

10

Это псевдоним для 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" 
+0

Почему? Поскольку '' <> '' является оператором операции '' mappend'', которая является общей версией оператора '' ++ ''. Поэтому '' '' должен выглядеть как «join with slash». –

+0

Мне нравится эта функция в haskell, в C# у нас есть 'Path.Combine()', которая тоже кросс-платформенная. – linquize

+0

SeanPerry: Это интересное наблюдение. Никогда об этом не думал. Интересно, будет ли смысл для 'FilePath' быть' newtype' и 'комбинировать'' mappend' своего экземпляра 'Monoid' ... –

Смежные вопросы