LINUX.ORG.RU

Языки программирования лучшие в метрике плотности кода - типичные одностроки.

 , , , ,


0

4

Собственно для задач «твитерь»-однострочных что есть достойного конкуренции с APL|J ?

интересно что есть из решений той задачи под которую во временна оные создали awk - где целью были одностроки(удобочитаемые марковские алгорифмы) - что теперь из кратких языков есть?

★★☆

краткость двояка. Тот стиль, котрый принят в apl/J, хаскеле и тд, куча однобуквенного сахара для передрачивания списков и тд — плохой стиль. Это говорит о слабости языка. Как только встает задача чуть сложней хелловорда, наступает абзац. Языки экономии на спичках. А так, по выразительности и лаконичности Io зарулит все, любой ЯП.

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

Выражальщик, ты круг нарисовал?

anonymous
()
Ответ на: scala от Deleted

можт кложура? По ощущениям, в одну строчку впихивается больше, чем в шкале...

stevejobs ★★★★☆
()
Ответ на: scala от Deleted

хотя вот implicit conversions в скале это любовь с первого взгляда, можно очень мощные строчки писать

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

хотя вот implicit conversions в скале это любовь с первого взгляда, можно очень мощные строчки писать

Чуть ли не единственное нормальное применение для них — pimp my library pattern. За любое другое использование я на ревью выдаю люлей. Потому что это легчайший способ докопаться до ада и в большинстве случаев заменяется implicit-параметрами.

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

Вряд ли тут квиксорт. Он же in-place, в этом его фишка. А все однострочники на питонах-хаскелях (не сильно длиннее APL-я) представляют merge-sort, что плодит кучу массивов.

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

Вряд ли тут квиксорт.

что значит «вряд ли тут квиксорт», по коду не видишь? :)

а на APL этот код выглядит так:

Q←{1≥≢⍵:⍵ ⋄ S←{⍺⌿⍨⍺ ⍺⍺ ⍵} ⋄ ⍵((∇<S)⍪=S⍪(∇>S))⍵⌷⍨?≢⍵}

(http://www.dyalog.com/blog/2014/12/quicksort-in-apl/)

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

Потому что это легчайший способ докопаться до ада

именно за это и любим :)

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

хотя вот implicit conversions в скале это любовь с первого взгляда, можно очень мощные строчки писать

Ну и че в них мощного? Поглядел вот тут

https://www.artima.com/pins1ed/implicit-conversions-and-parameters.html

Выглядит как костыли для чрезжопной реализации тривиальных (для ООП) вещей


Sequence exists := method(predicat,
 asList map(x, predicat call(x)) contains(true)
)
isDigit := block(x, 
 list(0,1,2,3,4,5,6,7,8,9) contains(x asNumber)
)

"foo100" exists(isDigit) // true
"foobar" exists(isDigit) // false

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

можт кложура? По ощущениям, в одну строчку впихивается больше, чем в шкале...

Да не. Так только в синтетических примерах делают

Debasher ★★★★★
()

жизнь запилите

life←{↑1 ⍵∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂⍵}
mix_mix ★★★★★
()
Ответ на: комментарий от e1nste1n

Некорректное сравнение. Надо мерить по количеству токенов, а не строк.

anonymous
()

(удобочитаемые марковские алгорифмы) - что теперь из кратких языков есть?

Русский мат — самое краткое и удобочитаемое отображение марковских алгорифмов :)

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

В-первую очередь тем, что он концептуально проще. Кроме того, там есть ряд свойств, которые в руби просто отсутствуют, например, гомоиконность, полная стопроцентная рефлексия кода (код — модифицируемое и читаемое в рантайме дерево).

filequest
()

В кложуре может и не так плотно, зато написать можно сразу за один проход и код очень легко читается, благодаря примитивности синтаксиса. Скорость исполнения на уровне лучших современных высокоуровневых языков, а вот как код на апл будет исполнятся - большой вопрос.

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

Дык там оценивали размер коммитов.

Сложность проектов они не оценивали, ну и допущения веселенькие сделали:

This assumes that commits are generally used to add a single conceptual piece regardless of which language it’s programmed in.

Ну и «продуктивность» с «читаемостью» там никого не интересовала:

It won’t tell you how readable the resulting code is (Hello, lambda functions) or how long it takes to write it (APL anyone?), so it’s not a measure of maintainability or productivity.

shkolnick-kun ★★★★★
()
Ответ на: комментарий от e1nste1n

Лол. Какая жесть.

Кофескрипт и яваскрипт на противоположенных концах графика? Там данные из пальца высосаны, вестимо.

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

скорее замер в момент когда два указанных языка на разных стадиях онтогенеза(?) - для более «эзотерических» это ещё более заметно - а именно отсутствие «промышленного»(бери больше кидай дальше)кода как явления и следовательно смешённые меры.

qulinxao ★★☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.