
Purpose. The authors aim to determine the differences between functional programming languages, to identify the capabilities of the most popular languages by comparing and analyzing them. To identify the main features, it is necessary to consider their data structures, as well as the application scope. The authors also aim to analyze and compare examples from various fields of language application using metrics of the program texts complexity. Methodology. The five most popular specialized functional languages are selected: Erlang, Lisp, F #, Scala and Haskel. An overview of the official documentation was conducted to obtain information on the capabilities of each language; their data structures and the application scope were studied. The experimental research base is formed from texts of the existing open source software systems and matched by similar applications and equal volume of text. Comparative analysis of sample programs is performed using Halsted metrics, which are calculated using specially designed software. The analysis of the received quality assessments is done graphically. Findings. Software has been developed to obtain Halsted metrics for program input texts in functional programming languages such as Erlang, Lisp, F # and Scala. The complexity of the Haskel programming language syntax did not allow the use of metrics to evaluate the text, so only a documentation review was performed. Benchmarking shows the differences between languages and outlines their use. The examples of different volumes from such areas of application as system programming tasks, graphing, mathematical calculations, AI systems, web programming, etc. were compared. Originality. The authors first conducted a comparative analysis of specialized languages using text complexity metrics, which made it possible to establish that Lisp has the smallest vocabulary and code length, Scala text has the most structured form, and F # and Erlang are marked with extra verbosity. Practical value. The findings and measurements will help in selecting the most effective functional programming language for solving specific problems, taking into account differences in applications. The developed software allows making measurements for various program texts when developing and maintaining complex software systems.
TA1001-1280, erlang haskel lisp, f #, functional programming, scala, halstead metrics, функціональне програмування; метрики Холстеда; можливості мов; порівняння мов; спеціалізовані функціональні мови; Erlang; Haskel; Lisp; F#; Scala, Transportation engineering, functional programming; Halstead metrics; language capabilities; language comparison; specialized functional languages; Erlang Haskel Lisp; F #; Scala, language capabilities, language comparison, specialized functional languages, функциональное программирование; метрики Холстеда; возможности языков; сравнение языков; специализированые функциональные язики; Erlang; Haskel; Lisp; F#; Scala
TA1001-1280, erlang haskel lisp, f #, functional programming, scala, halstead metrics, функціональне програмування; метрики Холстеда; можливості мов; порівняння мов; спеціалізовані функціональні мови; Erlang; Haskel; Lisp; F#; Scala, Transportation engineering, functional programming; Halstead metrics; language capabilities; language comparison; specialized functional languages; Erlang Haskel Lisp; F #; Scala, language capabilities, language comparison, specialized functional languages, функциональное программирование; метрики Холстеда; возможности языков; сравнение языков; специализированые функциональные язики; Erlang; Haskel; Lisp; F#; Scala
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 0 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Average | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Average |
