关注「实验楼」,每天分享一个项目教程
一种编程语言的不同用法它有时候会改变我对编程的看法。
正文共:4914 字
预计阅读时间:13 分钟
默认并发
A;
B;
C;
"Hello, World!" ->std.out
"Hello, World!" ->std.out
"Goodbye, World!" ->std.out
s = [string\];
"Hello, World!" ->s;
\s ->std.out;
相关类型
val l1 = 1 :#: 2 :#: 3 :#: VNil
val l1 = 1 :#: 2 :#: 3 :#: VNil
val l2 = 1 :#: 2 :#: 3 :#: VNil
val l3 = l1 vAdd l2
// Result: l3 = 2 :#: 4 :#: 6 :#: VNil
val l1 = 1 :#: 2 :#: 3 :#: VNil
val l2 = 1 :#: 2 :#: VNil
val l3 = l1 vAdd l2
// Result: a *compile* error because you can't pairwise add vectors
// of different lengths!
连贯语言
2 3 +
def foo {
10 <
[ 0 ]
[ 42 ]
if
}
20
foo
首先,我们声明一个函数foo。请注意,cat中的函数没有指定输入参数:所有参数都从堆栈中隐式读取。
foo调用<函数,该函数弹出的第一项在堆栈中,将它与10,并且推动任一True或 False背面压入堆栈。
接下来,我们将值0和42输入堆栈:我们将它们包括在括号中以确保它们未被执行就推入堆栈。这是因为它们将分别用于调用if下一行函数的“then”和“else”分支。
该if函数从堆栈中弹出3个项目:布尔条件,“then”分支和“else”分支。根据布尔条件的值,它会将“then”或“else”分支的结果输回堆栈。
最后,我们将20输入堆栈并调用foo函数。
当所有的事情都做完后,会得到一个42的结果
声明式编程
sort_list(Input, Output) :-
permutation(Input, Output),
check_order(Output).
check_order([]).
check_order([Head]).
check_order([First, Second | Tail]) :-
First =< Second,
check_order([Second | Tail]).
sudoku(Puzzle, Solution) :-
Solution = Puzzle,
Puzzle = [S11, S12, S13, S14,
S21, S22, S23, S24,
S31, S32, S33, S34,
S41, S42, S43, S44],
fd_domain(Solution, 1, 4),
Row1 = [S11, S12, S13, S14],
Row2 = [S21, S22, S23, S24],
Row3 = [S31, S32, S33, S34],
Row4 = [S41, S42, S43, S44],
Col1 = [S11, S21, S31, S41],
Col2 = [S12, S22, S32, S42],
Col3 = [S13, S23, S33, S43],
Col4 = [S14, S24, S34, S44],
Square1 = [S11, S12, S21, S22],
Square2 = [S13, S14, S23, S24],
Square3 = [S31, S32, S41, S42],
Square4 = [S33, S34, S43, S44],
valid([Row1, Row2, Row3, Row4,
Col1, Col2, Col3, Col4,
Square1, Square2, Square3, Square4]).
valid([]).
valid([Head | Tail]) :- fd_all_different(Head), valid(Tail).
| ?- sudoku([_, _, 2, 3,
_, _, _, _,
_, _, _, _,
3, 4, _, _],
Solution).
S = [4,1,2,3,2,3,4,1,1,2,3,4,3,4,1,2]
符号编程
出处:代码湾
链接:http://codebay.cn/post/8120.html
备受好评的 楼+「 Python实战 」、「 Linux运维与Devops实战 」正在优惠报名中——
实验楼CEO、CTO、高级工程师亲自上阵,通过直播、录播、全程助教、作业挑战等方式,带你12周内打通Python、Linux的任督二脉,成为拥有真正工作能力的IT工程师!
点击下面的链接了解详情: