zoukankan      html  css  js  c++  java
  • Scheme Programming language I

    Scheme是一种函数式程序设计语言,其中Common Lisp和Scheme是Lisp语言的两个主要分支。

    Scheme的原称为Schemer.

    1. What defines Scheme?

    Scheme是第一类支持函数性编程(Functional Programming)的语言。所谓的函数行编程既是:

    当用Scheme编程的时候,应该尽量避免"Side-Effects",当已给变量赋值以后,就不应该更改

    该变量的值。

    函数性编程另外一个特点即是:函数比其在其他编译性语言中的功能更强大。在Scheme中,函数式

    First-Class Object,好比整数在C语言中的功能,可以将函数传递给函数,从其他函数中返回函数,

    在变量中存储函数、在运行时,作为表达式计算。

    2.Scheme Programming / Simple Math

    加法操作

    > (+ 2 4)

    6

    减法操作

    >(- 9 8)

    1

    剩法操作

    >(* 7 8)

    56

    除法操作

    >(/ 8 9)

    0.8

    3. Scheme Expression有一下两点重要属性:

    (1).Scheme Expression可以嵌套,由此引出一个概念,Substitional Model。

    (2).Some Procedure可以有可变的参数数量。

    4.Scheme中的数学函数

    (1) 指数函数

    >(expt 2 10)

    1024

    (2) 平方根函数

    >(sqrt 4)

    2

    5.在Scheme中定义函数

    关键字lambda用来声明一个函数或者过程(Procedure),例如:

    (lambda (x) (* x x))

    定义了一个计算一个数取平方的函数,该函数有一个参数x。

    这里虽然定义了一个函数,但是该函数没有一个函数名字以供其他函数调用。

    如果想让该函数可以被其他函数调用,应该做如下重新定义:

    (define square (lambda (x) (* x x)))

    6.Scheme中定义变量

    Scheme中定义变量有如下两种方法:

    (1) 用define来定义变量,例如:

    (define x 2)定义一个变量x,x的值为2。

    一般形式为:(define variable_name variable_value)

    (2)用let 来定义变量,例如:

    (let (2 x) (3 y) (* x y))

    定义x的值为2,y的值为3,同时做了剩法运算。

  • 相关阅读:
    ASP.net MVC 构建layui管理后台(构造基础仓储)<1>
    ASP.net MVC 构建layui管理后台(整体效果)
    搭建私有 Nuget 服务器教程(1)
    SSAS数据集Cube不存在或者尚未处理
    浅谈MDX处理空值NULL及格式化结果
    Zoey.Dapper--Dapper扩展之把SQL语句放到文件中
    Polly每次重试执行不同的操作
    Exceptionless应用--自定义插件
    Fiddler开启Https的时候出现unable to configure windows to trust Fiddler Root certificate问题
    ASP.NET Core 中的配置
  • 原文地址:https://www.cnblogs.com/miaoyong/p/3304698.html
Copyright © 2011-2022 走看看