История изменений
Исправление AndreyKl, (текущая версия) :
Да. И вытекающая из этого невозможность написать не-дженерик функции для обработки таких списков.
Я немного не в курсе что такое дженерик. т.е. не то что бы совсем, но термином не владею. Посему вопрос. Есть список и к нему функция
-- [a] - общий тип для списков
-- head :: [a] -> a - тип для head
В Rust это и есть кортеж. В Haskell - не знаю, там вообще своля атмосфера и терминология.
Кроме как в программировании я встречал кортеж, скажем, в математике и криптографии. Ну там это использовалось просто «пара» или «тройка» элементов. На тип ограничений нет. Но штука в том что это нечто постоянное, неизменное. Т..е если уж это кортеж <K,P,R> то к нему нельзя добавить элемент. И убрать нельзя. Т..е это уже будут другие кортежи. И это полностью совпадает с терминологией хаскеля, на сколько я понимаю.
Не претендую на то что раст не может иметь свою терминологию, но имхо есть вероятность что ты слишком вольно трактуешь слово «кортеж».
Зависит от определения «списка». Если считать, что тип списка не зависит от его длины, гетерогенный «список» - это не список; если считать, что список - это нечто, манипулироемо функциями head и tail - то да, это список.
Но ведь должен быть и смысл определения. Т.е. какой смысл давайть определение «тип списка не зависит от его длины, а иначе это не список»? И что тогда есть Vect a n который я уже приводил в пример, если не список? Определение (в смысле код) в идрисе скажем совершенно не отличается от хаскелевского обычного списка со скидкой на второй параметр в типе.
Исходная версия AndreyKl, :
Да. И вытекающая из этого невозможность написать не-дженерик функции для обработки таких списков.
Я немного не в курсе что такое дженерик. т.е. не то что бы совсем, но термином не владею. Посему вопрос. Есть список и к нему функция
-- [a] - общий тип для списков
-- head :: [a] -> a - тип для head
В Rust это и есть кортеж. В Haskell - не знаю, там вообще своля атмосфера и терминология.
Кроме как в программировании я встречал кортеж, скажем, в математике и криптографии. Ну там это использовалось просто «пара» или «тройка» элементов. На тип ограничений нет. Но штука в том что это нечто постоянное, неизменное. Т..е если уж это кортеж <K,P,R> то к нему нельзя добавить элемент. И убрать нельзя. Т..е это уже будут другие кортежи. И это полностью совпадает с терминологией хаскеля, на сколько я понимаю.
Не претендую на то что раст не может иметь свою терминологию, но имхо есть вероятность что ты слишком вольно трактуешь слово «кортеж».
Зависит от определения «списка». Если считать, что тип списка не зависит от его длины, гетерогенный «список» - это не список; если считать, что список - это нечто, манипулироемо функциями head и tail - то да, это список.
Но ведь должен быть и смысл определения. Т.е. какой смысл давайть определение «тип списка не зависит от его длины, а иначе это не список»? И что тогда есть Vect a n который я уже приводил в пример, если не список? Определение в идрисе скажем совершенно не отличается от хаскелевского обычного списка со скидкой на второй параметр в типе.