It is currently impossible to model functional programs in the same way that UML is used to model object-oriented programs: no analogous graphical notation exists. Unlike object-oriented programs, however, functional ...
详细信息
This paper looks at the current state of how students learn the functional programming [FP] paradigm and how it can be improved by applying gamification. Multiple related works and research published by experts in the...
详细信息
This work describes a course in typed functional programming, the obstacles that are often encountered during the teaching of this course, and solutions which have been devised for those obstacles.
ISBN:
(纸本)9781450388726
This work describes a course in typed functional programming, the obstacles that are often encountered during the teaching of this course, and solutions which have been devised for those obstacles.
Underlying many, if not all, areas of mathematics is category theory, an alternative to set theory as a foundation that formalizes mathematical structures and relations between them. These relations abstract the idea ...
详细信息
Underlying many, if not all, areas of mathematics is category theory, an alternative to set theory as a foundation that formalizes mathematical structures and relations between them. These relations abstract the idea of a function, an abstraction used throughout mathematics as well as throughout programming. However, there is a disparity between the definition of a function used in mathematics from that used in mainstream programming. For mathematicians to utilize the power of programming to advance their mathematics, there is a demand for a paradigm of programming that uses mathematical functions, as well as the mathematical categories that support them, as the basic building blocks, enabling programs to be built by clever mathematics. This paradigm is functional programming. We wish to use functional programming to represent our mathematical structures, especially those used in computational algebra.
Abstract interpreters are complex pieces of software: even if the abstract interpretation theory and companion algorithms are well understood, their implementations are subject to bugs, that might question the soundne...
详细信息
functional Reactive programming (FRP) is a powerful abstraction for building deterministic concurrent systems. However, some programmers prefer a more imperative approach for certain tasks, and that approach is requir...
详细信息
functional programming is becoming increasingly useful in the modern computerized world. This approach helps create code that is more reliable, easier to reason about, and automatically verifiable. However, these tech...
详细信息
functional programming is becoming increasingly useful in the modern computerized world. This approach helps create code that is more reliable, easier to reason about, and automatically verifiable. However, these techniques are rarely employed for developing design tools and modeling critical systems. In this work, we try to apply some suitable techniques of functional programming to create a modeling system, namely, a simulation system for analyzing temporal behavioral properties of critical systems. As the first step, we design a representation of simulation time in terms of abstractions used in functional programming and try to investigate its compositionability.
The Basic Linear Algebra Subprograms or BLAS provide the foundation for much of the software used in scientific computing. To date, BLAS has been implemented in C, Fortran, and directly in assembly. These languages al...
详细信息
The Basic Linear Algebra Subprograms or BLAS provide the foundation for much of the software used in scientific computing. To date, BLAS has been implemented in C, Fortran, and directly in assembly. These languages allow the implementations to be well optimized by hand ensuring when a BLAS routine is called that it is as fast a possible. functional programming languages, and in particular Haskell, do not allow the fine-grained control over memory, and their high-level features make it hard to optimize a single function to the level of C or assembly. However, Haskell has an advantage when optimizing combinations of container-based operations. Because of this we explore both implementing BLAS in Haskell and comparing the Glasgow Haskell Compiler’s ability to optimize scientific programs to that of a C compiler.
Online programming platforms have immense potential to improve students' educational experience. They make programming more accessible, as no installation is required;and automatic grading facilities provide stude...
详细信息
Online programming platforms have immense potential to improve students' educational experience. They make programming more accessible, as no installation is required;and automatic grading facilities provide students with immediate feedback on their code, allowing them to to fix bugs and address errors in their understanding right away. However, these graders tend to focus heavily on the functional correctness of a solution, neglecting other aspects of students' code and thereby causing students to miss out on a significant amount of valuable feedback. In this paper, we recount our experience in using the Learn-OCaml online programming platform to teach functional programming in a second-year university course on programming languages and paradigms. Moreover, we explore how to leverage Learn-OCaml's automated grading infrastructure to make it easy to write more expressive graders that give students feedback on properties of their code beyond simple input/output correctness, in order to effectively teach elements of functional programming style. In particular, we describe our extensions to the Learn-OCand platform that evaluate students on test quality and code style. By providing these tools and a suite of our own homework problems and associated graders, we aim to promote functional programming education, enhance students' educational experience, and make teaching and learning typed functional programming more accessible to instructors and students alike, in our community and beyond.
暂无评论