用逗号分隔参数不太科学——S表达式才是王道
最近在写php程序和sql语句时用到了这种写法:
select a ,b ,c from table where a='1' AND b='2' OR c='3'
<?php
fn(1
,2
,3);
觉得这样写以后方便改东西。 但想想还是没php的数组来得方便。php数组可以写成这样:
<?php
$arr = array( 1, 2, 3, );
这个逗号,golang还要强制你写。但后来猛的一想,写了个例子。
#lang racket (define (test a b c) (+ a b c)) (test 1 2 3 )
因为lisp的s表达式是用空格、制表符、及回车这样“看不到”的字符分离参数, 所以实现起来毫无问题。
另外我觉得上面sql语句的where部分表达的不太清晰——没sql经验的人一眼看不明白。我还是写一个局部用S表达式改写的sql语句。
select ( a b c ) from table where (OR (= c '3') (AND (= a '1') (= b '2')))