Haskell — Development Platform
4+

Screenshots

Description

Learn functional programming with Haskell. Haskell for Mac provides everything you need in one convenient package.

You get an easy-to-use innovative programming environment optimized to help you understand and develop Haskell code quickly. Regardless of whether you are new to Haskell or whether you like to explore advanced language concepts, algorithms, or libraries, Haskell for Mac will make you more productive than conventional command line-based Haskell systems.

Our secret weapon are our unique Haskell Playgrounds. They facilitate live programming, where your code is constantly executed while you develop and change it. The results of tests and example code are continuously updated and displayed as playground results, regardless of whether they are text, graphics, web pages, or even embedded animations and games.

Haskell for Mac is made for beginners and experts alike.• The continuous feedback of interactive Haskell playgrounds is ideal for learning functional programming.• Everybody saves development time due to the fast turnaround as the Haskell code is continuously being type checked and tested against playground code while you edit and refactor.• Haskell playgrounds provide the ideal environment for experts to quickly experiment with new ideas and to iterate on prototype code.

Haskell for Mac is designed for macOS Sierra and High Sierra.

EASE OF USEHaskell for Mac is an integrated graphical development environment for Haskell projects, avoiding arcane installation procedures and cryptic command line tools. It includes a project organizer, a Haskell code editor, and playgrounds for interactive code execution. The code editor provides integrated Haskell support for syntax highlighting (with customizable themes) and auto-completion of function, variable, and type names.

LEARN HASKELL AND FUNCTIONAL PROGRAMMINGPlaygrounds provide immediate and continuous feedback while learning. Haskell is one of the most widely used functional programming languages and perfectly suited to learning functional programming. Haskell for Mac even comes with its own custom-made Haskell tutorial — check it out at http://learn.hfm.io

RAPID FEEDBACKModern software development is about iterating quickly. While you write, modify, and refactor your Haskell code, it is being continuously type checked and tested. This helps finding mistakes quickly and speeds up development.

WRITE GAMES IN HASKELLHaskell for Mac integrates a purely functional interface to the macOS SpriteKit framework, including its sophisticated animation system and physics engine. Discover how to write games in a functional style. It only requires basic Haskell knowledge and is a great way to learn Haskell!

PLAYGROUNDS ARE SAFEWhatever you do in a playground, your data is safe. Haskell for Mac uses macOS sandboxing technology to ensure that anything that happens in a playground stays in the playground. Even if you download a Haskell project from the Internet, the playground code cannot access any other data on your Mac, except with your explicit permission.

LIBRARIES AND MOREHaskell for Mac includes a rich set of over 200 widely used Haskell libraries saving you the trouble of compiling and installing them yourself. However, if you like, it still gives you the flexibility of installing your own libraries. For further technical details, please refer to our product website at http://haskellformac.com

Connect with us on Twitter: @haskellformac

We are always looking for ways to improve Haskell. Please send us your suggestions by contacting support@haskellformac.com or use the handy feedback form in the Help menu of the app.

What’s New

Version History

1.6.1

23 Dec 2018

Version 1.6.1

* Bug fixes

New features in Version 1.6

* Projects can now have library targets* Projects can now have multiple executable targets* Choice between executable or library projects at project creation time* Support for unsaved draft projects* Projects can be created by importing of an existing Cabal package* Main module is now distinguished by a star in the icon* Increased minimal height of playground console area* The package manager now comes with a search field* Support for LTS 9.6* A few UI improvements

1.6.0

14 May 2018

New features in this version

* Projects can now have library targets* Projects can now have multiple executable targets* Choice between executable or library projects at project creation time* Support for unsaved draft projects* Projects can be created by importing of an existing Cabal package* Main module is now distinguished by a star in the icon* Increased minimal height of playground console area* The package manager now comes with a search field* Support for LTS 9.6* A few UI improvements

Bug fixes

* Clicking on error badges jumps to the first error again* Local variables are now properly offered as a first choice by autocompletion* Fixed pasting of text with non-\n return characters* Fixed unicode and undo-after-paste crashes

1.5.1

20 Aug 2017

We have been diligently hunting down some bugs:• Playground console output handles backspace properly again.• Better formatting of the result of ':t' and friends in playgrounds.• Package dependencies don't change when some imported packages are simply not installed.• Correct colour (orange) for type errors in the gutter (to distinguish them from other fatal errors).• Documentation links take you to the Stackage documentation for non-bundled LTS packages.• Fix crash when pasting Unicode characters, such as emoji, in the module editor or playgrounds.• Faster initial project loading, and no more spurious exceptions in playground results on initially loading or switching to modules.

1.5.0

4 Jul 2017

Version 1.5.0 brings the eagerly awaited upgrade to GHC 8:

• Highlights include the TypeInType language extension, injective type families, applicative do notation, and support for duplicate record fields.• The module editor now provides type information for expressions including local variables. Even if there is a type error, partial information is provided. This makes understanding and writing code much easier.• Variable and function bindings in playgrounds can now omit the 'let' keyword.• New Paraíso Dark editor theme is included.• Package sets are now based on LTS 8.9.

1.4.0

20 Mar 2017

This version brings improvements in a number of areas:• better package management,• better auto-completion results in modules with code errors,• based on LTS Haskell 6.29,• option to do type-checking only in playgrounds, and• an improved ability to interrupt long running computations.

1.3.2

22 Dec 2016

Bug fix release including a usability fix in auto-completion.

1.3.1

11 Dec 2016

Here comes more functional programming goodness! In addition to the obligatory bug fixes, this version includes the following improvements.

* Finally, a much requested feature: identifier auto-completion. Identifiers are completed as you type, taking into account all modules you have imported.* The improved and richer information popover (triggered by Command-I) for function, constructor, and type names now includes a link to the relevant online documentation. This makes it quick and easy to look up the documentation for the libraries that you use.* You can now preview SVG documents in the playground.* In fact, you can preview any data type for which you provide an instance of the new Presentable class.* By popular request, playgrounds now support GHCi-style :t, :k, and :i commands. (You can, of course, still get the same information by using Command-I or a three finger tap on a selected expression or type in both the editor and playground.)

Please note that as of macOS Sierra, due to a change in macOS, the ESC key on its own doesn't trigger identifier completion anymore. You need to press Alt/Option-ESC. Luckily, this is much less of an issue now with auto-completion. (Auto-completion can be enabled and disabled in the text editing preferences.)

1.3.0

12 Sep 2016

This version includes a major update to the Haskell SpriteKit binding. In particular, the binding now includes support for all core aspects of the physics engine, including collisions and contact handlers. (Fields and joints are not supported yet.)

Haskell for Mac now automatically recognises extra packages that have been installed with the cabal tool from the Haskell CLI. Moreover, this version includes a few minor changes, such as the option to create a new folder during data bucket selection, as well as updates for macOS 10.12 (Sierra) and LTS Haskell 5.18.

We also added a new "Complete" menu item in the "Edit" menu for those who like to bind identifier completion to a different keyboard shortcut. We hope you enjoy this new version!

1.1.0

24 Jan 2016

Version 1.1 brings three new and exciting features:

1. Identifier completion: in the module editor and playground, after typing the prefix of an identifier (function, constructor, or variable name) the ESC key brings up a list of possible completions drawn from imported and locally defined names.2. Upgraded internals: GHC 7.10.2 & LTS Haskell 3.16 bring new language and library capabilities, such as partial type signatures and Diagrams 1.3.3. Extensible package database: choose from other packages of LTS Haskell 3.16 or your own library packages.

For your programming pleasure, we also added a ’frame’ & ’calculateAccumulatedFrame’ function to SpriteKit, improved the result layout, support the use of the Haskell stack tool as well as other command line tools, and fixed a fair number of bugs.

1.0.3

10 Oct 2015

Now you can stop your experiments!

* Added a Play/Stop button in the playground header bar to stop long running computations and temporarily disable playground execution.* Added a limit on the data that a run away computation can write to the playground console.* A few minor bug fixes

1.0.2

28 Sep 2015

* Improved behavior in the face of long running computations* Bug fixes

1.0.1

2 Sep 2015

Bug fix update

1.0.0

22 Aug 2015

23 Dec 2018

Version 1.6.1

Version 1.6.1

* Bug fixes

New features in Version 1.6

* Projects can now have library targets* Projects can now have multiple executable targets* Choice between executable or library projects at project creation time* Support for unsaved draft projects* Projects can be created by importing of an existing Cabal package* Main module is now distinguished by a star in the icon* Increased minimal height of playground console area* The package manager now comes with a search field* Support for LTS 9.6* A few UI improvements

Ratings and Reviews

NewToTheHaskellCult
,06/01/2018

A nice and easy way to instantly learn Haskell

As a a non-programmer / hobbyist this is a great way to try out functional programming in an easy to use, well supported and nicely designed environment. Even if the tutorials are not your cup of tea, it is still a perfect environment to use to get up and running using with other Haskell learning resources (e.g. Thompson ‘Art of Functional Programming’ is one that is working for me)!

NewToTheHaskellCult
,06/01/2018

A nice and easy way to instantly learn Haskell

As a a non-programmer / hobbyist this is a great way to try out functional programming in an easy to use, well supported and nicely designed environment. Even if the tutorials are not your cup of tea, it is still a perfect environment to use to get up and running using with other Haskell learning resources (e.g. Thompson ‘Art of Functional Programming’ is one that is working for me)!

Meowth9909
,31/03/2016

Needs more

Core functionality of having a visual play ground is good, which makes it good for learning haskell. But as a IDE for developing production haskell applications it is lacking features such as break point debugging, auto complete, jump to method in another module.

Meowth9909
,31/03/2016

Needs more

Core functionality of having a visual play ground is good, which makes it good for learning haskell. But as a IDE for developing production haskell applications it is lacking features such as break point debugging, auto complete, jump to method in another module.