Когда я вижу вектор Хаскелла, это не физика, вектор линейной алгебры, не так ли? Векторы в Java (как я помню) - это массив, к которому можно динамически добавить. Но это нельзя использовать в качестве научного вектора, не так ли? Как я могу создать структуру векторных данных науки в Haskell?Haskell Vector: не научные, инженерные векторы?
ответ
Предполагаю, вы имеете в виду Data.Vector
, и да, вы правы. Это не тот вектор, который нам известны математические части. Для «законного» вектора и любой другой линейной алгебры на свободных векторных пространствах существует пакет linear.
Data.Vector
- это в значительной степени массив памяти (очень оптимизированный, очень хороший API).
Data.Vector
действительно вводит в заблуждение название, и я предполагаю, что это прямо или косвенно вдохновлены из стандартной библиотеки vector шаблона класса С ++, который также вводит в заблуждение.
От here, в стандартной библиотеке С ++ ...
Это называется вектором, потому что Алекс Степанов, дизайнер стандартной библиотеки шаблонов, искал имя, чтобы отличить его от встроенного массивы. Он признает, что ошибся, потому что математика уже использует термин «вектор» для последовательности фиксированной длины цифр.
...
Урок Алекса: будьте очень осторожны каждый раз, когда вы что-то называете.
C++? Вряд ли в крайнем случае. У C++ даже не было шаблонов до C++ 2.0 в 1989 году. Пересмотренный «3» отчет по алгоритмической языковой схеме вышел в 1986 году и уже использовал термин «вектор» таким образом. Я серьезно сомневаюсь, что это было первое. Самое лучшее, что я могу собрать, это то, что термин «вектор» использовался для долгое время относиться к одномерным массивам, вероятно, возвращаясь к раннему FORTRAN и APL, но я не мог этого гарантировать. – dfeuer
@dfeuer Это хорошо знать +1, однако я не имею в виду первое появление термина в этом контексте. Я имею в виду, что для меня имеет смысл, что современные языки (и пакеты в этом случае) все еще продолжают называть его так же, как и из-за стандартной библиотеки C++; C++ напрямую влияет на реальную массу, из чего я могу сказать, например, FORTAN - не так много (я уверен, что это косвенно). Но я новая кровь, поэтому я могу быть полностью вне игры. В любом случае, спасибо, я понятия не имел, что вы сказали. – MasterMastic
Ну, дело в том, что Haskell и C++ примерно так же далеки друг от друга, как и любые два типизированных языка программирования.Haskell - это функциональный язык (таким образом, он несколько исходит из традиции Лиспа, но более непосредственно из Миранды, и я полагаю, что это может повлиять на ML). Система типа Haskell также в некоторой степени связывает ее с традицией логического программирования, которая восходит к Prolog. Сочетание (относительной) чистоты и сильной типизации также связывает его с такими защищенными языками, как Coq и Agda. C++ происходит в совершенно другом направлении, больше Algol, BCPL, Fortran, PL/I. – dfeuer
Я думаю, вы хотите hmatrix, интерфейс Haskell для LAPACK и BLAS.
- 1. vector :: erase() также стирает член-векторы структуры
- 2. Почему не перехватывает List и Vector? (Haskell)
- 3. Idiomatic Vector Algebra in Haskell
- 4. Инженерные ошибки невозможны?
- 5. Обратные инженерные веб-приложения
- 6. Векторы
- 7. Научные нотации
- 8. Научные данные
- 9. Инженерные обозначения в C#?
- 10. MySQL поможет вперед инженерные
- 11. многомерные векторы и указатели на векторы
- 12. Векторы исчезают
- 13. Почему эти векторы не равны?
- 14. Haskell Vector performance по сравнению с Scala
- 15. Ссылки, векторы, std :: vector :: at и легко используемые интерфейсы
- 16. Векторы дизъюнкции
- 17. добавляющие векторы
- 18. WordVectors Как конкатенировать векторы векторов для формирования предложения vector
- 19. rpart.plot удалить научные обозначения
- 20. Научные обозначения с E
- 21. Сортировать научные и плывет
- 22. Частично Unboxed векторы
- 23. knitr не зацепляет научные обозначения на участках
- 24. Векторы lock_guards
- 25. Вложенные векторы в Linux
- 26. с ++ векторы и push_back
- 27. Vector push_back: не преобразовывает параметр
- 28. Векторы в схеме
- 29. Указывая на векторы
- 30. Как эффективно использовать векторы?
Что вы подразумеваете под этим именем? Пожалуйста, будьте конкретны ... –
Сначала вам понадобится способ получить научные номера в Haskell. К сожалению, он имеет только числовые типы с ограниченной точностью, а не реальные реальные числа или сложные числа, например, наука. Это может быть хорошей причиной для создания компилятора science-to-haskell. – ely
Чтобы создать вектор «Math», вам нужен только тип с двумя полями: величина и направление. Это то, что вы имеете в виду? – dsm