Haskell

来自开放百科 - 灰狐
(版本间的差异)
跳转到: 导航, 搜索
(现状)
 
(未显示1个用户的131个中间版本)
第1行: 第1行:
{{SeeWikipedia}}
+
{{SeeWikipedia|Haskell (programming language)}}
  
Haskell is an advanced purely functional programming language. An open source product of more than twenty years of cutting edge research, it allows rapid development of robust, concise, correct software. With strong support for integration with other languages, built-in concurrency and parallelism, debuggers, profilers, rich libraries and an active community, Haskell makes it easier to produce flexible, maintainable high-quality software.  
+
Haskell
 +
[[文件:haskell-logo.png|right]]
  
Haskell,一门通用型纯粹函数式编程语言。其特性有:静态类型,高阶函数,多态,型别类,以及单子式副作用等。Haskell编译器几乎在每一种计算机上都可以运行。
+
==简介==
==Links==
+
[[文件:Haskell-Logo.png|right]]
*http://haskell.org/
+
*http://docs.huihoo.com/haskell/
+
*http://download.huihoo.com/haskell/
+
  
[[Category:Programming Language]]
+
Haskell,一门开源通用型纯粹函数式编程语言(Apache v2),其特性有:静态类型,高阶函数,多态,型别类,以及单子式副作用等,Haskell 编译器几乎在每一种计算机上都可以运行。
 +
 
 +
Haskell 具有“证明即程序、命题为类型”的特征。
 +
 
 +
C++11 的 Concepts、C# 的 LINQ、Java 中的泛型、Scala、CoffeeScript、F#、Python、Swift 等语言都从中受到启发和得到灵感。
 +
 
 +
Haskell 在工业界有不少应用,最集中的是在金融界的高频交易。
 +
 
 +
更多应用:[[Haskell ecosystem]]
 +
 
 +
[https://www.futurelearn.com/info/courses/functional-programming-haskell/0/steps/27218 Brief History of Haskell] [https://www.futurelearn.com/courses/functional-programming-haskell Functional Programming in Haskell: Supercharge Your Coding]
 +
 
 +
==Why Haskell==
 +
[https://serokell.io/blog/10-reasons-to-use-haskell 10 Reasons to Use Haskell]
 +
 
 +
==版本==
 +
[https://gitlab.haskell.org/ghc/ghc/-/wikis/GHC-status GHC Status]
 +
 
 +
支持的语言:
 +
*[https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0380-ghc2021.rst GHC2021]
 +
*[https://www.haskell.org/onlinereport/haskell2010/ Haskell2010] [http://haskell.org/definition/haskell2010.pdf Haskell 2010 Language Report]
 +
*[https://www.haskell.org/onlinereport/ Haskell98]
 +
 
 +
==现状==
 +
*[https://taylor.fausak.me/2022/11/18/haskell-survey-results/ 2022 State of Haskell Survey Results]
 +
*[https://taylor.fausak.me/2021/11/16/haskell-survey-results/ 2021 State of Haskell Survey results]
 +
*[https://taylor.fausak.me/2020/11/22/haskell-survey-results/ 2020 State of Haskell Survey results]
 +
*[https://taylor.fausak.me/2019/11/16/haskell-survey-results/ 2019 State of Haskell Survey results]
 +
*[https://taylor.fausak.me/2018/11/18/2018-state-of-haskell-survey-results/ 2018 State of Haskell Survey results]
 +
*[https://taylor.fausak.me/2017/11/15/2017-state-of-haskell-survey-results/ 2017 State of Haskell Survey results]
 +
 
 +
==功能==
 +
[https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/haskell.html Haskell GHC versus Java/F#/OCaml fastest programs]
 +
 
 +
==指南==
 +
===OS X===
 +
OS X安装包安装后,会创建:
 +
/Library/Frameworks/GHC.framework
 +
/Library/Haskell
 +
运行 /Library/Haskell/bin/activate-hs
 +
Haskell now set to:
 +
    GHC      7.10.2
 +
    Arch.    x86_64
 +
    Platform 7.10.2-a
 +
运行 /Library/Haskell/bin/cabal
 +
/Users/huihoo/.cabal/config
 +
/Users/huihoo/Library/Haskell/bin
 +
vim ~/.bash_profile
 +
export PATH="$HOME/Library/Haskell/bin:$PATH"
 +
 
 +
===GHC===
 +
*[https://github.com/ghc-proposals/ghc-proposals GHC Proposals]
 +
*[https://gitlab.haskell.org/ghc GHC GitLab] [https://gitlab.haskell.org/ghc/ghc/-/wikis/team-ghc GHC Team] [https://ghc.gitlab.haskell.org/ghc/doc/ GHC Documentation]
 +
*GHC 的 LLVM 部分衍生自 Essential Haskell Compiler(EHC) 项目,[https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/compiler/backends GHC Backends] [https://llvm.org/pubs/2008-06-CompilingHaskelltoLLVM.pdf Compiling Haskell to LLVM]
 +
 
 +
已安装的 ghc 版本,使用了 [https://docs.haskellstack.org/en/stable/README/ Haskell Tool Stack]
 +
ls $(stack path --programs)/*.installed
 +
/home/huihoo/.stack/programs/x86_64-linux/ghc-tinfo6-8.10.7.installed
 +
/home/huihoo/.stack/programs/x86_64-linux/ghc-tinfo6-8.8.4.installed
 +
 
 +
===ghci===
 +
[https://tryhaskell.org Try Haskell]
 +
 
 +
输入ghci进入GHC交互模式
 +
ghci> [2,4..20]
 +
[2,4,6,8,10,12,14,16,18,20]
 +
ghci> [x * 2 | x <- [1..10]] // 列表推导式(list comprehension)
 +
[2,4,6,8,10,12,14,16,18,20]
 +
ghci> [x | x <- [10..20], x /= 13, x /= 15, x /= 19] // 多个谓词(predicate)
 +
[10,11,12,14,16,17,18,20]
 +
ghci> [0.1, 0.3 .. 1]
 +
[0.1,0.3,0.5,0.7,0.8999999999999999,1.0999999999999999]
 +
ghci> [x | x <- [50..100], x `mod` 7 == 3]
 +
[52,59,66,73,80,87,94]
 +
vim factorial.hs // 创建一个函数并保存文件
 +
factorial :: Integer -> Integer
 +
factorial n = product [1..n]
 +
ghci> :l factorial
 +
ghci> factorial 50
 +
30414093201713378043612608166064768844377641568960512000000000000
 +
ghci> :t 3
 +
ghci> :i Int
 +
 
 +
==Package==
 +
[[文件:Cabal-dark.png|right|Cabal]]
 +
*[https://cabal.readthedocs.io/en/latest/index.html Cabal] is the standard package system for Haskell software.
 +
*[https://github.com/haskell/hackage-server Hackage-Server] A Haskell Package Repository
 +
*[https://www.stackage.org/ Stable Haskell package sets]
 +
*[https://www.haskell.org/ghcup/ GHCup] Install or update GHC/Cabal/HLS/Stack
 +
 
 +
==项目==
 +
[[文件:hamler-logo.png|right]]
 +
[[文件:postgrest-request-flow.png|right]]
 +
[https://github.com/krispo/awesome-haskell Awesome Haskell] [[image:awesome.png]]
 +
[[文件:haskell-ide.png|right]]
 +
*[https://github.com/haskellfoundation Haskell Foundation]
 +
*[https://github.com/ghc/ghc Glasgow Haskell Compiler (GHC)]
 +
*[https://wiki.haskell.org/Applications_and_libraries Applications and libraries]
 +
*[https://hackage.haskell.org/ Haskell Package Repository]
 +
*[https://mpickering.github.io/ide/index.html Haskell IDE] [https://github.com/haskell/haskell-language-server Haskell language server] [https://github.com/haskell/haskell-ide-engine Haskell IDE Engine (HIE)]
 +
*[[ImplicitCAD]]
 +
*[https://github.com/blockapps BlockApps]
 +
*[https://github.com/GaloisInc Galois, Inc.]
 +
*[https://github.com/haskoin/haskoin haskoin] [[Bitcoin]]协议实现
 +
*[http://hackage.haskell.org/packages/#cat:Language Language & DSL]
 +
*[https://github.com/bjpop/berp Berp] an implementation of [[Python]] 3
 +
*[https://github.com/intoverflow/Potential Potential] x86-64 assembly as a Haskell EDSL
 +
*[https://github.com/tathougies/hos Hos] A Haskell operating system
 +
*[https://github.com/ndmitchell/shake Shake] [[build automation|build system]]
 +
*[https://github.com/acowley/Frames Frames] Data Frames for Haskell
 +
*[https://github.com/jgm/gitit Gitit] A wiki using HAppS, pandoc, and git
 +
*[https://github.com/digitallyinduced/ihp IHP] is a modern batteries-included haskell web framework, built on top of Haskell and Nix.
 +
*[https://github.com/PostgREST/postgrest PostgREST] [[REST]] [[API]] for any [[PostgreSQL]] database
 +
*[https://github.com/bitemyapp/esqueleto Esqueleto] a [[SQL]] [[DSL]] for Haskell
 +
*[https://github.com/commercialhaskell/stack The Haskell Tool Stack]
 +
 
 +
==语言==
 +
*[https://wiki.haskell.org/Applications_and_libraries/Compilers_and_interpreters Compilers and interpreters] [https://wiki.haskell.org/Foreign_Function_Interface Foreign Function Interface (FFI)]
 +
*[[Agda]]
 +
*[http://elm-lang.org/ Elm语言] [https://github.com/elm/compiler Elm Compiler]
 +
*[https://www.mathstat.dal.ca/~selinger/quipper/ Quipper: A Scalable Quantum Programming Language]
 +
*[https://www.hamler-lang.org/ Hamler] Haskell-style functional programming language running on [[Erlang VM]].
 +
*[https://github.com/typelead/eta Eta] Modern Haskell on the [[JVM]]
 +
*[https://github.com/purescript PureScript] A small strongly, statically typed language which compiles to [[JavaScript]]
 +
*[https://github.com/idris-lang/Idris-dev Idris] A Dependently Typed Functional Programming Language
 +
*[https://github.com/copilot-language/copilot Copilot] Stream [[DSL]] for hard real-time runtime verification
 +
*[https://github.com/Frege/frege Frege] is a Haskell for the [[JVM]]
 +
*[https://github.com/bjpop/berp/ Berp] an implementation of Python 3
 +
*[https://www.mathematik.uni-marburg.de/~eden/ Eden] Parallel Functional Programming with Haskell
 +
*[https://github.com/lambdacube3d/lambdacube-compiler LambdaCube] [[Compiler]] for LambdaCube 3D
 +
 
 +
==用户服务商==
 +
[https://wiki.haskell.org/Haskell_in_industry Haskell in industry]
 +
*[https://well-typed.com/ Well-Typed] The Haskell Consultants
 +
 
 +
==STEM==
 +
*STEM 教育可分为三部分:入门、进阶和实践,参考:[https://zh.wikibooks.org/wiki/Haskell Haskell :: 带类型的函数式编程]
 +
*[https://docs.huihoo.com/haskell/functional-programming/ Functional Programming] 推荐
 +
*[https://github.com/sdiehl/write-you-a-haskell Write You a Haskell] Building a modern functional compiler from first principles.
 +
*[https://github.com/wimvanderbauwhede/HaskellMOOC Functional Programming in Haskell]
 +
*[https://github.com/sdiehl/wiwinwlh What I Wish I Knew When Learning Haskell]
 +
*[https://blog.ocharles.org.uk/blog/pages/2014-12-01-24-days-of-ghc-extensions.html 24 Days of GHC Extensions]
 +
 
 +
==文档==
 +
*[http://docs.huihoo.com/erlang/conference/euc2016/Into-the-Core-Squeezing-Haskell-into-Nine-Constructors.pdf Into the Core Squeezing Haskell into nine constructors]
 +
*[http://docs.huihoo.com/infoq/qconshanghai/2015/%e6%96%b0%e8%af%ad%e8%a8%80%e4%b8%8e%e6%96%b0%e5%8f%91%e5%b1%95/QCon%e4%b8%8a%e6%b5%b72015-Haskell%e4%b8%ad%e7%9a%84%e5%87%bd%e6%95%b0%e4%b8%8e%e7%b1%bb%e5%9e%8b%e7%b3%bb%e7%bb%9f-%e5%bc%a0%e6%b7%9e.pdf Haskell中的类型与类型系统]
 +
*[http://docs.huihoo.com/cufp/2013/High-Availability-A-Development-Experience-Report.pdf High Availability - A Development Experience Report]
 +
*[http://docs.huihoo.com/cufp/2013/Redesigning-the-Computer-for-Security.pdf Redesigning the Computer for Security]
 +
*[http://docs.huihoo.com/cufp/2013/Functional-Reporting.pdf Functional Reporting]
 +
*[http://docs.huihoo.com/cufp/2013/Bringing-Haskell-to-the-World.pdf Bringing Haskell to the World]
 +
*[http://docs.huihoo.com/cufp/2013/Common-Pitfalls-of-Functional-Programming-and-How-to-Avoid-Them-A-Mobile-Gaming-Platform-Case-Study.pdf Common Pitfalls of Functional Programming and How to Avoid Them:A Mobile Gaming Platform Case Study]
 +
*[http://docs.huihoo.com/cufp/2013/Enterprise-Scheduling-with-Haskell.pdf Enterprise Scheduling with Haskell]
 +
*[https://ucsd-progsys.github.io/liquidhaskell-tutorial/ Programming with Refinement Types] An Introduction to LiquidHaskell
 +
*[https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/injective-type-families-acm.pdf Injective Type Families for Haskell]
 +
 
 +
==图书==
 +
*[http://book.huihoo.com/real-world-haskell/ 《Real World Haskell》]
 +
*[https://github.com/huangz1990/real-world-haskell-cn 《Real World Haskell》中文翻译项目]
 +
*[http://learnyouahaskell.com/chapters Learn You a Haskell for Great Good!]
 +
*[https://zh.wikibooks.org/wiki/Haskell Haskell :: 带类型的函数式编程] 维基教科书(Wikibooks)
 +
 
 +
==图集==
 +
<gallery>
 +
image:haskell-ghcup-tui.png|ghcup tui
 +
image:stack-dependency-visualization.png|依赖可视化
 +
image:nixos-stack.png|Nix Ecosystem
 +
image:Haskell-GHC.jpeg|GHC编译器
 +
image:Haskell-GHC-compiler-pipeline.png|GHC编译流水线
 +
image:Haskell-GHC-lightweight-concurrency.png|GHC轻量级并发
 +
image:Haskell-Typeclassopedia-diagram.png|Typeclassopedia
 +
image:Port-and-Adapter-architecture.png|端口和适配器架构
 +
</gallery>
 +
 
 +
==链接==
 +
*[http://haskell.org/ Haskell官网]
 +
*[https://haskell.foundation/ Haskell Foundation]
 +
*[https://wiki.haskell.org Haskell Wiki]
 +
*[https://github.com/Gabriel439/post-rfc/blob/master/sotu.md State of the Haskell ecosystem]
 +
*[https://downloads.haskell.org/ Haskell下载]
 +
*[http://code.haskell.org/ code.haskell.org]
 +
*[https://docs.huihoo.com/haskell/ Haskell开放文档]
 +
*[https://docs.huihoo.com/haskell/ghc/ GHC 文档] [https://downloads.haskell.org/ghc/latest/docs/ GHC 官方]
 +
*[http://zh.wikibooks.org/wiki/Haskell 维基教科书:Haskell]
 +
*[https://phabricator.haskell.org/ Phabricator @ Haskell.org]
 +
*[http://geek.csdn.net/news/detail/31923 Haskell创始人之一Paul Hudak去世]
 +
*[http://www.infoq.com/cn/interviews/paul-hudak-haskell Paul Hudak谈Haskell]
 +
*[http://www.zhihu.com/question/21922144 高频交易软硬件是怎么架构的?]
 +
 
 +
[[category:programming language]]
 +
[[category:functional programming]]
 +
[[category:concurrent computing]]
 +
[[category:numerical analysis]]
 +
[[category:lambda]]
 +
[[category:haskell]]
 +
[[category:Huihoo Foundation]]

2023年4月23日 (日) 04:02的最后版本

Wikipedia-35x35.png 您可以在Wikipedia上了解到此条目的英文信息 Haskell Thanks, Wikipedia.

Haskell

Haskell-logo.png

目录

[编辑] 简介

Haskell-Logo.png

Haskell,一门开源通用型纯粹函数式编程语言(Apache v2),其特性有:静态类型,高阶函数,多态,型别类,以及单子式副作用等,Haskell 编译器几乎在每一种计算机上都可以运行。

Haskell 具有“证明即程序、命题为类型”的特征。

C++11 的 Concepts、C# 的 LINQ、Java 中的泛型、Scala、CoffeeScript、F#、Python、Swift 等语言都从中受到启发和得到灵感。

Haskell 在工业界有不少应用,最集中的是在金融界的高频交易。

更多应用:Haskell ecosystem

Brief History of Haskell Functional Programming in Haskell: Supercharge Your Coding

[编辑] Why Haskell

10 Reasons to Use Haskell

[编辑] 版本

GHC Status

支持的语言:

[编辑] 现状

[编辑] 功能

Haskell GHC versus Java/F#/OCaml fastest programs

[编辑] 指南

[编辑] OS X

OS X安装包安装后,会创建:

/Library/Frameworks/GHC.framework
/Library/Haskell

运行 /Library/Haskell/bin/activate-hs

Haskell now set to:
   GHC      7.10.2
   Arch.    x86_64
   Platform 7.10.2-a

运行 /Library/Haskell/bin/cabal

/Users/huihoo/.cabal/config
/Users/huihoo/Library/Haskell/bin

vim ~/.bash_profile

export PATH="$HOME/Library/Haskell/bin:$PATH"

[编辑] GHC

已安装的 ghc 版本,使用了 Haskell Tool Stack

ls $(stack path --programs)/*.installed
/home/huihoo/.stack/programs/x86_64-linux/ghc-tinfo6-8.10.7.installed
/home/huihoo/.stack/programs/x86_64-linux/ghc-tinfo6-8.8.4.installed

[编辑] ghci

Try Haskell

输入ghci进入GHC交互模式

ghci> [2,4..20]
[2,4,6,8,10,12,14,16,18,20]
ghci> [x * 2 | x <- [1..10]] // 列表推导式(list comprehension)
[2,4,6,8,10,12,14,16,18,20]
ghci> [x | x <- [10..20], x /= 13, x /= 15, x /= 19] // 多个谓词(predicate)
[10,11,12,14,16,17,18,20]
ghci> [0.1, 0.3 .. 1]
[0.1,0.3,0.5,0.7,0.8999999999999999,1.0999999999999999]
ghci> [x | x <- [50..100], x `mod` 7 == 3]
[52,59,66,73,80,87,94]

vim factorial.hs // 创建一个函数并保存文件

factorial :: Integer -> Integer
factorial n = product [1..n]
ghci> :l factorial
ghci> factorial 50
30414093201713378043612608166064768844377641568960512000000000000
ghci> :t 3
ghci> :i Int

[编辑] Package

Cabal

[编辑] 项目

Hamler-logo.png
Postgrest-request-flow.png

Awesome Haskell Awesome.png

Haskell-ide.png

[编辑] 语言

[编辑] 用户服务商

Haskell in industry

[编辑] STEM

[编辑] 文档

[编辑] 图书

[编辑] 图集

[编辑] 链接

分享您的观点
个人工具
名字空间

变换
操作
导航
工具箱