ตัวอย่างสั้นๆ ด้านล่างนี้แสดงให้เห็นว่า Comby ช่วยลดความยุ่งยากในการจับคู่และการเขียนใหม่อย่างไร เมื่อเทียบกับวิธี regex เช่น sed
brew install comby
bash <(curl -sL get-comby.netlify.app)
การกระจาย Linux อื่น ๆ : ไลบรารี PCRE มีการเชื่อมโยงแบบไดนามิกในไบนารีของ Ubuntu สำหรับการแจกแจงอื่น ๆ เช่น Arch Linux จำเป็นต้องมีการแก้ไข: sudo ln -s /usr/lib/libpcre.so /usr/lib/libpcre.so.3
บน Fedora ให้ใช้ sudo ln -s /usr/lib64/libpcre.so /usr/lib64/libpcre.so.3
หรือพิจารณาสร้างจากแหล่งที่มา
bash <(curl -sL get.comby.dev)
docker pull comby/comby
ทำงานด้วยนักเทียบท่าบน stdin
:
docker run -a stdin -a stdout -a stderr -i comby/comby ' (:[emoji] hi) ' ' bye :[emoji] ' lisp -stdin <<< ' ( hi) '
บางครั้งก็ใช่ แต่บ่อยครั้งที่การเปลี่ยนแปลงเล็กๆ น้อยๆ และการปรับโครงสร้างใหม่มีความซับซ้อนเนื่องจากนิพจน์ ความคิดเห็น หรือสตริงที่ซ้อนกัน พิจารณาตัวอย่างข้อมูลแบบ C-like ต่อไปนี้ สมมติว่าความท้าทายคือการเขียนทั้งสองเงื่อนไข if
เป็นค่า 1
ใหม่ คุณสามารถเขียนนิพจน์ทั่วไปที่ตรงกับเนื้อหาของทั้งสองนิพจน์ if เงื่อนไข และเฉพาะสองนิพจน์นั้นได้หรือไม่ แบ่งปันรูปแบบของคุณกับ @rvtond บน Twitter ได้ตามสบาย
if ( fgets ( line , 128 , file_pointer ) == Null ) // 1) if (...) returns 0
return 0 ;
...
if ( scanf ( "%d) %d" , & x , & y ) == 2 ) // 2) if (scanf("%d) %d", &x, &y) == 2) returns 0
return 0 ;
หากต้องการจับคู่สิ่งเหล่านี้กับ Comby สิ่งที่คุณต้องทำคือ if (:[condition])
และระบุหนึ่งแฟล็กที่ภาษานี้เป็นเหมือน C การแทนที่คือ if (1)
ดูตัวอย่างสด
ติดตั้งโอแพม TL; DR ทำ sh <(curl -sL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh)
รันสิ่งนี้หากคุณไม่ได้ติดตั้ง OCaml (มันจะบู๊ตคอมไพเลอร์ OCaml):
opam init
opam switch create 4.11.0 4.11.0
เรียกใช้ eval $(opam env)
ติดตั้งการพึ่งพาระบบปฏิบัติการ:
ลินุกซ์: sudo apt-get install autoconf libpcre3-dev pkg-config zlib1g-dev m4 libgmp-dev libev4 libsqlite3-dev
Mac: brew install pkg-config gmp pcre libev
จากนั้นติดตั้งการพึ่งพาไลบรารี:
git clone https://github.com/comby-tools/comby
cd comby
opam install . --deps-only
make
make test
comby
บน PATH
ของคุณโดยการรัน make install