用逗号分隔参数不太科学——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')))

 

 

 

posted @ 2013-06-22 15:29  erlanp  阅读(267)  评论(0)    收藏  举报