LINUX.ORG.RU

История изменений

Исправление dave, (текущая версия) :

Ты разбираешься в Расте? Или поковырял для интереса типажи, чтобы посмотреть на реализацию в сравнении с классами типов Хаскелла? В чём типажи упрощены (или наоборот, классы типов усложнены)?

Успел заинтересоваться. Язык мне очень понравился. Прочитал вторую редакцию The Rust Programming Language и успел так хорошо потренироваться на типажах, генериках и замыканиях, когда создавал прототип одной своей штуки. Например, мне удалось запрограммировать продолжения с помощью rust, так чтобы их было удобно использовать по типу futures-rs.

Но оказалось, что чем сложнее входная задача, тем аналогичный код на haskell у меня работает быстрее. Можно, конечно, сказать, что я недостаточно еще освоился с rust. У меня там используются RefCell и Rc.clone() в узких по производительности местах. Может быть, еще что-то. Периодически возвращаюсь к этому своему коду, пытаясь понять, ну почему же у меня код на haskell получился быстрее. А с выходом ghc 8.2 отрыв еще больше увеличился!

На самом деле, в тестовых примерах скорости почти одинаковые, что говорит о некоторой эквивалентности. В совсем простом тесте код на rust быстрее. В более сложном, как раз там, где начинаются продолжения - код на haskell быстрее.

Но как я написал, я сразу почувствовал, что окунулся в rust в хорошо знакомую мне по haskell среду программирования. Параллелей очень много.

А чего не хватает в rust, так это higher kinded types. Это когда параметр генерика сам является параметризуемым типом. В некоторых случаях можно как-то выкрутиться через использование типажей в ограничениях, но хотелось бы более общего решения.

Ну, еще есть такая крайне удобная штука как type family, а это уже ближе к типажам, когда параметризуемый типаж мог бы объявлять новые типы на основании типа параметра. Тоже хотелось бы иметь

Исправление dave, :

Ты разбираешься в Расте? Или поковырял для интереса типажи, чтобы посмотреть на реализацию в сравнении с классами типов Хаскелла? В чём типажи упрощены (или наоборот, классы типов усложнены)?

Успел заинтересоваться. Язык мне очень понравился. Прочитал вторую редакцию The Rust Programming Language и успел так хорошо потренироваться на типажах, генериках и замыканиях, когда создавал прототип одной своей штуки. Например, мне удалось запрограммировать продолжения с помощью rust, так чтобы их было удобно использовать по типу futures-rs.

Но оказалось, что чем сложнее входная задача, тем аналогичный код на haskell у меня работает быстрее. Можно, конечно, сказать, что я недостаточно еще освоился с rust. У меня там используются Rc.clone() в узких по производительности местах. Может быть, еще что-то. Периодически возвращаюсь к этому своему коду, пытаясь понять, ну почему же у меня код на haskell получился быстрее. А с выходом ghc 8.2 отрыв еще больше увеличился!

На самом деле, в тестовых примерах скорости почти одинаковые, что говорит о некоторой эквивалентности. В совсем простом тесте код на rust быстрее. В более сложном, как раз там, где начинаются продолжения - код на haskell быстрее.

Но как я написал, я сразу почувствовал, что окунулся в rust в хорошо знакомую мне по haskell среду программирования. Параллелей очень много.

А чего не хватает в rust, так это higher kinded types. Это когда параметр генерика сам является параметризуемым типом. В некоторых случаях можно как-то выкрутиться через использование типажей в ограничениях, но хотелось бы более общего решения.

Ну, еще есть такая крайне удобная штука как type family, а это уже ближе к типажам, когда параметризуемый типаж мог бы объявлять новые типы на основании типа параметра. Тоже хотелось бы иметь

Исходная версия dave, :

Ты разбираешься в Расте? Или поковырял для интереса типажи, чтобы посмотреть на реализацию в сравнении с классами типов Хаскелла? В чём типажи упрощены (или наоборот, классы типов усложнены)?

Успел заинтересоваться. Язык мне очень понравился. Прочитал вторую редакцию The Rust Programming Language и успел так хорошо потренироваться на типажах, генериках и замыканиях, когда создавал прототип одной своей штуки. Например, мне удалось запрограммировать продолжения с помощью rust, так чтобы их было удобно использовать по типу futures-rs.

Но оказалось, что чем сложнее входная задача, тем аналогичный код на haskell у меня работает быстрее. Можно, конечно, сказать, что я недостаточно еще освоился с rust. У меня там используются Rc в узких по производительности местах. Может быть, еще что-то. Периодически возвращаюсь к этому своему коду, пытаясь понять, ну почему же у меня код на haskell получился быстрее. А с выходом ghc 8.2 отрыв еще больше увеличился!

На самом деле, в тестовых примерах скорости почти одинаковые, что говорит о некоторой эквивалентности. В совсем простом тесте код на rust быстрее. В более сложном, как раз там, где начинаются продолжения - код на haskell быстрее.

Но как я написал, я сразу почувствовал, что окунулся в rust в хорошо знакомую мне по haskell среду программирования. Параллелей очень много.

А чего не хватает в rust, так это higher kinded types. Это когда параметр генерика сам является параметризуемым типом. В некоторых случаях можно как-то выкрутиться через использование типажей в ограничениях, но хотелось бы более общего решения.

Ну, еще есть такая крайне удобная штука как type family, а это уже ближе к типажам, когда параметризуемый типаж мог бы объявлять новые типы на основании типа параметра. Тоже хотелось бы иметь