Haskell

来自开放百科 - 灰狐
(版本间的差异)
跳转到: 导航, 搜索
(项目)
(简介)
(未显示1个用户的42个中间版本)
第5行: 第5行:
  
 
==简介==
 
==简介==
Haskell,一门通用型纯粹函数式编程语言。其特性有:静态类型,高阶函数,多态,型别类,以及单子式副作用等。Haskell 编译器几乎在每一种计算机上都可以运行。
+
[[文件:Haskell-Logo.png|right]]
 +
 
 +
Haskell,一门开源通用型纯粹函数式编程语言(Apache v2),其特性有:静态类型,高阶函数,多态,型别类,以及单子式副作用等,Haskell 编译器几乎在每一种计算机上都可以运行。
 +
 
 +
Haskell 具有“证明即程序、命题为类型”的特征。
  
 
C++11 的 Concepts、C# 的 LINQ、Java 中的泛型、Scala、CoffeeScript、F#、Python、Swift 等语言都从中受到启发和得到灵感。
 
C++11 的 Concepts、C# 的 LINQ、Java 中的泛型、Scala、CoffeeScript、F#、Python、Swift 等语言都从中受到启发和得到灵感。
  
 
Haskell 在工业界有不少应用,最集中的是在金融界的高频交易。
 
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]
*GHC2021
+
 
*Haskell2010
+
支持的语言:
*Haskell98
+
*[https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0380-ghc2021.rst GHC2021]
 +
*[https://www.haskell.org/onlinereport/haskell2010/ Haskell2010]
 +
*[https://www.haskell.org/onlinereport/ Haskell98]
 +
 
 +
==现状==
 +
*[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]
  
 
==功能==
 
==功能==
第36行: 第56行:
 
  export PATH="$HOME/Library/Haskell/bin:$PATH"
 
  export PATH="$HOME/Library/Haskell/bin:$PATH"
  
===ghc===
+
===GHC===
[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]
+
*[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]
 
已安装的 ghc 版本,使用了 [https://docs.haskellstack.org/en/stable/README/ Haskell Tool Stack]
第64行: 第86行:
 
  ghci> factorial 50
 
  ghci> factorial 50
 
  30414093201713378043612608166064768844377641568960512000000000000
 
  30414093201713378043612608166064768844377641568960512000000000000
 +
ghci> :t 3
 +
ghci> :i Int
  
 
==Package==
 
==Package==
第70行: 第94行:
 
*[https://github.com/haskell/hackage-server Hackage-Server] A Haskell Package Repository  
 
*[https://github.com/haskell/hackage-server Hackage-Server] A Haskell Package Repository  
 
*[https://www.stackage.org/ Stable Haskell package sets]
 
*[https://www.stackage.org/ Stable Haskell package sets]
 +
*[https://www.haskell.org/ghcup/ GHCup] Install or update GHC/Cabal/HLS/Stack
  
 
==项目==
 
==项目==
第75行: 第100行:
 
[[文件:postgrest-request-flow.png|right]]
 
[[文件:postgrest-request-flow.png|right]]
 
[https://github.com/krispo/awesome-haskell Awesome Haskell] [[image:awesome.png]]
 
[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://github.com/ghc/ghc Glasgow Haskell Compiler (GHC)]
 
*[https://wiki.haskell.org/Applications_and_libraries Applications and libraries]  
 
*[https://wiki.haskell.org/Applications_and_libraries Applications and libraries]  
 
*[https://hackage.haskell.org/ Haskell Package Repository]
 
*[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]]
 
*[[ImplicitCAD]]
 
*[https://github.com/blockapps BlockApps]
 
*[https://github.com/blockapps BlockApps]
第95行: 第123行:
  
 
==语言==
 
==语言==
*[https://wiki.haskell.org/Applications_and_libraries/Compilers_and_interpreters Compilers and interpreters]
+
*[https://wiki.haskell.org/Applications_and_libraries/Compilers_and_interpreters Compilers and interpreters] [https://wiki.haskell.org/Foreign_Function_Interface Foreign Function Interface (FFI)]
 
*[http://elm-lang.org/ Elm语言] [https://github.com/elm/compiler Elm Compiler]
 
*[http://elm-lang.org/ Elm语言] [https://github.com/elm/compiler Elm Compiler]
 +
*[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/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/copilot-language/copilot Copilot] Stream [[DSL]] for hard real-time runtime verification
*[https://www.hamler-lang.org/ Hamler] Haskell-style functional programming language running on [[Erlang VM]].
 
 
*[https://github.com/Frege/frege Frege] is a Haskell for the [[JVM]]
 
*[https://github.com/Frege/frege Frege] is a Haskell for the [[JVM]]
 
*[https://github.com/bjpop/berp/ Berp] an implementation of Python 3
 
*[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]
  
 
==文档==
 
==文档==
第119行: 第161行:
 
*[https://github.com/huangz1990/real-world-haskell-cn 《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!]
 
*[http://learnyouahaskell.com/chapters Learn You a Haskell for Great Good!]
 +
*[https://zh.wikibooks.org/wiki/Haskell Haskell :: 带类型的函数式编程] 维基教科书(Wikibooks)
  
 
==图集==
 
==图集==
第125行: 第168行:
 
image:stack-dependency-visualization.png|依赖可视化
 
image:stack-dependency-visualization.png|依赖可视化
 
image:nixos-stack.png|Nix Ecosystem
 
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>
 
</gallery>
  
 
==链接==
 
==链接==
 
*[http://haskell.org/ Haskell官网]
 
*[http://haskell.org/ Haskell官网]
 +
*[https://haskell.foundation/ Haskell Foundation]
 
*[https://wiki.haskell.org Haskell Wiki]
 
*[https://wiki.haskell.org Haskell Wiki]
 
*[https://github.com/Gabriel439/post-rfc/blob/master/sotu.md State of the Haskell ecosystem]
 
*[https://github.com/Gabriel439/post-rfc/blob/master/sotu.md State of the Haskell ecosystem]
第148行: 第197行:
 
[[category:lambda]]
 
[[category:lambda]]
 
[[category:haskell]]
 
[[category:haskell]]
 +
[[category:Huihoo Foundation]]

2022年3月22日 (二) 03:13的版本

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

文档

图书

图集

链接

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

变换
操作
导航
工具箱