用逗號分隔引數不太科學——S表示式才是王道
阿新 • • 發佈:2019-02-05
最近在寫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')))