LINUX.ORG.RU

Смотрите, Go может быть будет нужен

 , oden


0

4

http://oden-lang.org/

Oden is an experimental, statically typed, functional programming language, built for the Go ecosystem.

package main

import fmt

square :: int -> int
square n -> n * n

twice :: (#a -> #a) -> #a -> #a
twice f x -> f(f(x))

main :: -> ()
main -> let n = twice(square, 2) in {
  fmt.Println("2\x2074 =", n)
}
★★★★★

Последнее исправление: cetjs2 (всего исправлений: 2)

cetjs2, ты смотри что творится — два по сути одинаковых тега — go и golang!

Debasher ★★★★★
() автор топика

Вообще забавно - рядом с убогой Явой живет приличная Скала, рядом с убогим Go... посмотрим.

tailgunner ★★★★★
()

выглядит вроде неплохо, но пока под него нет нормальной стандартной библиотеки это не более чем игрушка

anonymous
()
Ответ на: комментарий от anonymous

речь о библиотеке с поддержкой ФП парадигмы.

Это не обязательно, чтобы быть практически полезным.

tailgunner ★★★★★
()

Это не поможет от

 import "github.com/golang/example/stringutil"
nezamudich ★★
()

Open Code of Conduct

Нет.

Deleted
()
Ответ на: комментарий от anonymous

Это с каких пор эндофункторы помогают писать прикладной код?

Что такое эндофункторы и почему ты о них думаешь?

tailgunner ★★★★★
()
Ответ на: комментарий от theNamelessOne

В go появился параметрический полиморфизм?

В Go - нет.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Что такое эндофункторы и почему ты о них думаешь?

Очевидно, что под эндофункторами имелась ввиду «ML-галиматья». Я о них не думаю, а просто пишу код. И количество уже написанного кода на go говорит о том, что отсутствие академических прибабахов и даже дженериков как бы не сильно мешает решать практические задачи.

Пойнт в том что функциональщина никогда и никому кардинально не облегчила разработку. Как не верти предметную область, сложность ни куда не денется.

А вот отсутствие исключений в go — реальная проблема.

anonymous
()
Ответ на: комментарий от anonymous

Очевидно, что под эндофункторами имелась ввиду «ML-галиматья»

ML-галиматья? Насколько я могу судить, в Oden ее просто нет.

И количество уже написанного кода на go говорит о том

...что за работу на Go платят. И всё.

Пойнт в том что функциональщина никогда и никому кардинально не облегчила разработку.

От человека, который путает ML и Haskell, это звучит особенно убедительно.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от anonymous

Хватит это терпеть! Есть в го исключения.

throw=panic, catch=recover, finally=defer.

Если тебе не хочется обрабатывать res,err = doSomething(), то можешь свою обертку написать: если вернулся err — паниковать, если его нет — то все хорошо, вернуть результат. Как regexp.MustCompile.

anonymous
()
Ответ на: комментарий от tailgunner

ML-галиматья? Насколько я могу судить, в Oden ее просто нет.

От человека, который путает ML и Haskell, это звучит особенно убедительно.

Хаскеля в oden тоже нет)

Есть примитивный вывод типов по ХМ. Что отдает ML-ем гораздо сильнее чем хаскелем, от которого в oden только ХМ и есть.

anonymous
()
Ответ на: комментарий от anonymous

Есть в го исключения.
throw=panic, catch=recover, finally=defer.

Ню-ню, осталось только показать место в документации в котором рекомендуют использовать panic/recover в библиотеках для передачи/обработки обрабатываемых ошибок.

anonymous
()
Ответ на: комментарий от anonymous

Хаскеля в oden тоже нет)

Синтаксис у него сделан под Хаскель, в About пишут «inspired by Haskell».

Но если анонимус сказал «нет» - значит, нет.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Синтаксис у него сделан под Хаскель

И что, под хаскель много синтаксисов сделано, но чтоб чистый во все поля и ленивый это еще надо поискать.

Но если анонимус сказал «нет» - значит, нет.

Как будто бы регистрация и пять звезд что-то изменила. Это неконструктивно с твоей стороны.

anonymous
()
Ответ на: комментарий от anonymous

И что, под хаскель много синтаксисов сделано

Пойнт в том, что язык сделан под влиянием Haskell, а не ML. Назвать его ML-галиматьей - расписаться в неграмотности.

Это неконструктивно с твоей стороны.

Рассуждения о том, что тебе лично помогает писать код, и о том, сколько кода написано на PHPGo - не более конструктивно. В Oden есть параметризуемые типы - уже одно это делает его на голову выше Go. Правда, source-to-source не внушает оптимизма.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

Ты библиотек не пишешь, так что на рекомендации наплевать. А в своем коде резвись, как хочешь, пиши обертки и паникуй.

package main

import "fmt"
import "regexp"

func main() {

    expr := "(" // ошибка, незакрытая скобка

    r, err := regexp.Compile(expr)

    fmt.Println(r, err) // мирное сообщение об ошибке


    r = Must(regexp.Compile(expr)) // вот тебе и исключение
}

func Must(i  *regexp.Regexp, err error) *regexp.Regexp {

    if err != nil {
        panic(err)
    }

    return i
}

anonymous
()
Ответ на: комментарий от tailgunner

приличная Скала

В этом треде конкурс юмористов проходит?

anonymous
()
Ответ на: комментарий от anonymous

Вы так говорите «исключения», будто это что-то хорошее

Gvidon ★★★★
()
Ответ на: комментарий от Ancient

Так нужно не раздутыми и всё равно незаконченными обёртками пользоваться, а gobject-introspection, через который доступно всё, базирующееся на GObject. Начать можно, например, с gcall. Если уже есть что по-лучше, сообщите.

gag ★★★★★
()
Ответ на: комментарий от anonymous

Нет ничего практичней хорошей теории!

anonymous
()
Ответ на: комментарий от tailgunner

Вообще забавно - рядом с убогой Явой живет приличная Скала

Ее уже силвают даже ее же создатели. Загугли lightbend и dotty.

anonymous
()
Ответ на: комментарий от anonymous

Ее уже силвают даже ее же создатели. Загугли lightbend и dotty.

И че там? Никакого криминала не вижу.

anonymous
()
Ответ на: комментарий от anonymous

Вообще забавно - рядом с убогой Явой живет приличная Скала

Ее уже силвают

okay.jpg

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

И че там? Никакого криминала не вижу.

When we were founded in 2011, the name Typesafe was in alignment with our developer community and our Scala go-to-market approach. Over the past five years, the market has changed dramatically, and so has our company, with more than half of our customers representing traditional Java enterprises. We continue to evolve, becoming more language agnostic as we help our customers adopt a full platform for building systems that answer the modern needs of enterprises; systems that are productive across the entire platform, that are fully Reactive and natively embrace new Microservices and Fast Data architectures.

Читать разучился?

anonymous
()
Ответ на: комментарий от anonymous

Читать разучился?

И че там? Улучшают поддержку джавы, потому что у нее пользователей больше, а сам софт по-прежнему пишут на скале.

anonymous
()
Ответ на: комментарий от anonymous

Улучшают поддержку джавы, потому что у нее пользователей больше

Т.е. нахрен никому, кроме смузидринкеров и дээсэлеписателей оно ненужно, и нужным быть не станет в будущем.

anonymous
()
Ответ на: комментарий от Ancient

Vala - неудачный пример, т.к., очевидно, что ему и не нужен gobject-introspection, ведь:

  • Vala - Compiler for the GObject type system

  • vala код транслируется в Си, который уже компилируется (и Gtk - тоже Си).
gag ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.