У меня был некоторый опыт работы в Haskell и в настоящее время изучается Scala. Интересно, есть ли что-то, эквивалентное Монадам в Скале?Scala эквивалентен монахам Haskell
ответ
Возможно, вы захотите зарегистрироваться scalaz; на него сильно повлиял Хаскелл. Действительно, его часто спрашивали у одного из главных участников, почему они не просто, используя Haskell, так как им это так нравится!
Scalaz активно использует имплициты, чтобы украсить структуры своими монадами. Например:
val fibs = (0, 1).iterate[Stream](i => i._2 -> (i._2 + i._1)).map(_._1)
println(fibs.take(10))
На самом деле комментарий @VonC по моему вопросу дал мне более подробную информацию. Но я не могу принять этот ответ, а @oxbow_lakes показал мне что-то новое. Спасибо, ребята, за помощь –
BTW: авторы Scalaz * do * используют Haskell. Если вы посмотрите на исходный код Scalaz, вы увидите, что они используют Haskell для системы сборки, а не Ant, например. Кроме того, Тони Моррис (главный автор) * - довольно известный программист Хакелла. Он также является автором функции FunctionalJava, которая представляет собой библиотеку, которая реализует функторы, аппликативные функторы, бифунторы, монады, комонады и стрелки для Java (как и Scalaz для Scala). И что касается использования Scala: система и язык типа Scala на самом деле в нескольких областях, более мощных и выразительных, чем Haskell's. –
@Jorg - акцент изменен - я знаю, что Тони использует Haskell, я подразумевал, что его спросили точно, почему * он когда-либо использовал scala! –
Я думаю, стоит отметить, что в Scala «для-понимания» эквивалентно Хаскель монадического «делать»
оба варианта и списком являются монадами. Я также считаю, что левые и правые прогнозы также являются монадами.
В стандартной библиотеке Scala нет явной концепции монады (нет соответствующего признака/класса или класса).
Scala имеет дело с этим в некотором роде, см. Раздел Scala by example о для ознакомления для деталей.
- 1. Scala эквивалентен генераторам Python?
- 2. Python эквивалентен Scala groupby
- 3. Scala эквивалентен wsdl2java?
- 4. Haskell эквивалентен шаблону C++ для не-типов
- 5. Haskell to Scala
- 6. haskell scala интероперабельность
- 7. Scala, Ord экземпляр Haskell как
- 8. haskell accumArray эквивалент в scala?
- 9. Внедрение Scala последнего метода haskell
- 10. Связывание Haskell для программы scala
- 11. Портирование Haskell инверсия противоречит Scala
- 12. Универсальные количественные типы в Haskell и Scala?
- 13. `Право 5` в Haskell и Scala
- 14. Идиоматический Haskell-подобный повтор в Scala?
- 15. Классы типов в Haskell против Scala
- 16. Перевести грамматику Haskell Parsec на Scala?
- 17. Higher Kinded типы в Scala и Haskell
- 18. Scala эквивалент Haskell первого и второго
- 19. Сравнение Haskell и Scala Bind/Flatmap Примеры
- 20. Scala против Haskell классы типов: "всеобъемлющая" экземпляры
- 21. Haskell Vector performance по сравнению с Scala
- 22. Воспроизведение поведения «replicateM» Haskell в Scala
- 23. Тип Умозаключение в Haskell v Scala
- 24. Haskell Тип функции Подпись в Scala
- 25. PowerBuilder эквивалентен Debug.WriteLine?
- 26. Xamarin.Forms макет эквивалентен FrameLayout
- 27. WPF эквивалентен Flex VGroup
- 28. Google эквивалентен Yahoo! Boss
- 29. activerecord эквивалентен SQL 'минус'
- 30. Свифт эквивалентен __ атрибуту ((objc_requires_super))?
Считаете ли вы http://stackoverflow.com/questions/1992532/monad-trait-in-scala? – VonC