hello.hs haskell

hello.ns

-- 创建模块 Main 首字母大写
module Main where

-- 导入可能用到的模块
import
System.Environment

-- haskell 程序首先会执行 Main模块的 main action

-- main
:: IO () 是type 声明, 这里可省略
-- type :: IO 是monad的实例,
main :: IO ()
--
等号左边是 定义一个 name
-- 等号右边是 其他定义的组合
-- 这里有do-block
main = do

    args <- getArgs
    putStrLn (
"Hello, " ++ args !! 0 )

--1 name <- action
-- 把 getArgs 的结果bind到
name
--2 action
-- 仅执行action

-- args !! 0 args列表的第0个元素
-- ++ 是
list concatenation

-- 函数式编程的一个重要的概念是 referential transparency 透明引用,
没有side-effect 边界效应

编译

ghc hello.hs

./hello.hs Wold

Hello, World

... great haskell

hello.hs haskell,布布扣,bubuko.com

时间: 2024-10-31 14:17:21

hello.hs haskell的相关文章

Thrift CentOS安装和使用

Thrift是Apache的一个开源的跨语言服务开发框架,它提供了一个代码生成引擎来构建服务,支持C++,Java,Python,PHP,Ruby,Erlang,Perl,Haskell,C#,Cocoa,JavaScript,Node.js,Smalltalk,OCaml,Delphi等多种编程语言. 一般来说,使用Thrift来开发应用程序,主要建立在两种场景下: 第一,在我们开发过程中,一个比较大的项目需要多个团队进行协作,而每个团队的成员在编程技术方面的技能可能不一定相同,为了实现这种跨

RPC服务框架探索之Thrift

前言架构服务化后,需要实现一套方便调用各服务的框架,现在开源如日中天,优先会寻找开源实现,如果没有合适自家公司业务的,才会考虑从零开发,尤其是一切以KPI为准绳的公司,谁会跟钱过不去?N个月之前,公司大神就开始调研了,最后选中了Thrift这个RPC服务框架.使用不熟悉的技术,我会感到很恐惧,它就相当于一个黑盒,我对它一无所知,它是如何运转的?出了问题该如何解决?带着一丝不安,查阅了相关技术文档. RPC很早之前听说过soap,restful api,rpc之类的服务协议,一直都没有机会深入实践

POPUSH中增加haskell支持的实现

我是李映辉,在这次作业中和王程鹏一起负责实现popush项目中haskell的支持.刚刚接到这个任务的时候我在家里,当时我以为这个是最重的任务了,当时我已经做好了刷夜的思想准备.在中途王程鹏加入到了我们组,被安排和我一起结对编程,我才感觉到任务轻了一些. 由于我在家的时候不方便交流,所以我们约定等我回校以后再正式开始做作业,但是在这之前王程鹏还和学校的一些同学进行了一些交流,他的学校做的这些工作使得我们后来的工作变得异常顺利. 我们实现的过程非常的顺利:首先我们两个人讨论了一下解决的思路.王程鹏

haskell模块(modules)

装载模块 Haskell 中的模块是含有一组相关的函数,类型和类型类的组合.而 Haskell 进程的本质便是从主模块中引用其它模块并调用其中的函数来执行操作.这样可以把代码分成多块,只要一个模块足够的独立,它里面的函数便可以被不同的进程反复重用.这就让不同的代码各司其职,提高了代码的健壮性. Haskell 的标准库就是一组模块,每个模块都含有一组功能相近或相关的函数和类型.有处理 List 的模块,有处理并发的模块,也有处理复数的模块,等等.目前为止我们谈及的所有函数,类型以及类型类都是 P

Haskell函数的语法

本章讲的就是 Haskell 那套独特的语法结构,先从模式匹配开始.模式匹配通过检查数据的特定结构来检查其是否匹配,并按模式从中取得数据. 在定义函数时,你可以为不同的模式分别定义函数本身,这就让代码更加简洁易读.你可以匹配一切数据类型 --- 数字,字符,List,元组,等等.我们弄个简单函数,让它检查我们传给它的数字是不是 7. lucky :: (Integral a) => a -> String   lucky 7 = "LUCKY NUMBER SEVEN!" 

Haskell解决逆波兰式

摘自<Haskell趣学指南- Learn You a Haskell for Great Good> {- 逆波兰式(revese polish notation, RPN): 操作符出现在操作数的后面,而不是夹在它们中间. 如我们使用 "4 3 +" 而不是 "4 + 3". -} solveRPN :: String -> Double solveRPN = head . foldl foldingFunction [] . words wh

Haskell 差点儿无痛苦上手指南

趁着自己重装Linux 虚拟机的机会,把安装 haskell 的过程记录一下,顺便帮那些还犹豫徘徊在haskell门外的读者入门. 基本概念: Haskell : 是一门通用函数式语言,差点儿能够进行不论什么种类的开发,包含命令行,GUI,数据库,Web.源码能够跨平台: Linux,Mac, Windows, FreeBSD 等. Haskell 的特点: 函数式变成风格为主,命令式风格为辅,具有严格且方便易用的类型系统.类型检查能够帮助程序猿在开发过程中避免非常多错误,并辅助组织程序的结构.

[Learning You a Haskell for Great Goods!] chapter 01 starting out

Installation under CentOS/Fedora # yum install ghc Version [[email protected] haskell]# ghc -v Glasgow Haskell Compiler, Version 7.0.4, for Haskell 98, stage 2 booted by GHC version 7.0.4 Change prompt echo :set prompt "ghci> " > ~/.ghci C

[Learning You a Haskell for Great Goods!] Introduction

Compiler Glasgow Haskell Compiler (GHC) http://hackage.haskell.org/platform/ Command # load scripts ghci> :l hello.hs # run scripts