Name: Anonymous 2009-05-23 20:57
where can I find a good Scheme compiler?
private static final String languages = "A\\+|A\\+\\+|A# \\.NET|A# \\(Axiom\\)|A\\-0|ABAP|ABC|ABC ALGOL|ABLE|ABSET|ABSYS|ACC|Accent|ActFX|ActionScript|Ace DASL|ACT\\-III|Ada|ALGOL|APL|AppleScript|AMOS|Arc|ATS|AutoHotkey|AutoIt|AWK|AMZI|ASP\\.NET|B|BACI|Baja|BASIC|bc|bcompile|BCPL|BeanShell|BETA|Bigwig|Big Snake|Bistro|BitC|BLISS|Blitz Basic|blitz max|blitz plus|blitz 3d=|Block And List Manipulation|Blue|Blue|Boo|Bourne shell|Bourne\\-Again shell|Boxx|BPEL|Brainfuck|BUGSYS|BuildProfessional|BYOND|C|C\\-\\-|C\\-script|C\\+\\+|C#|C shell|Caché ObjectScript|Caml|Cat|Cayenne|C\\-BOT|Cecil|Cesil|CFML|Cg|Ch|Chapel|CHAIN|Charity|Chef|Chey|CHILL|CHIP\\-8|chomski|Chrome|ChucK|Cilk|CICS|CL|Clarion|Clean|Clipper|CLIST|Clojure|CLU|CMS\\-2|COBOL|CobolScript|Cobra|CODE|ColdFusion|COMAL|Common Intermediate Language|Common Lisp|Component Pascal|COMIT|Concept|Concurrent Clean|Constraint Handling Rules|Converge|CORAL66|Corn|CorVision|COWSEL|CPL|CSP|CSS|Csound|Cue|Curl|Curry|Cyclone|D|Dao|DASL|DarkBASIC|DarkBASIC Professional|Dataflex|Datalog|dBASE|dc|DCL|Deesel|Delphi|Dialect|DinkC|Dialog Manager|DIBOL|DL\\/I|Dream Maker|Dylan|Dynace|D\\+\\+|E|Ease|EASY|Easy PL\\/I|EASYTRIEVE PLUS|eC|ECMAScript|eDeveloper|Edinburgh IMP|Einstein|Eiffel|Elan|elastiC|Elf|Emacs Lisp|Englesi|EGL Programming Language|Epigram|Erlang|Escapade|Esterel|Euclid|Euphoria|Euler|EXEC|EXEC2|F|F#|Factor|Falcon|Fan|Felix|Ferite|FFP|F#|Fjölnir|FL|Fly|FLOW\\-MATIC|FOCAL|FOCUS|FOIL|FORMAC|Formula language|Forth|Fortran|Fortress|FoxPro|FP|Frag Script|Franz Lisp|Frink|Frontier|F\\-Script|Fuxi Programming Language|GAAMIL|GM|GAP|Gambas|Game Maker Language|G\\-code|General Algebraic Modeling System|Generic Java|Gibiane|G|GLSL|Gödel|Godiva|GOTRAN|GOTO\\+\\+|GPSS|GraphTalk|GRASS|Green|Green|Groovy|HAL\\/S|HAScript|Haskell|HaXe|High Level Assembly|HLSL|Hop|HTML|HyperTalk|IBM Basic assembly language|IBM RPG|ICI|Icon|IDL|IKE|IMP|Inform|Information Processing Language \\(IPL\\)|Informix\\-4GL|Io|IPTSCRAE|Interactive System Productivity Facility|J|J#|J\\+\\+|JADE|JAG|Jal|Janus|JASS|Java|JavaScript|JEAN|Jim\\+\\+|JCL|Join Java|JOSS|Joule|JOVIAL|Joy|JScript|JSP|K|KEE|Kiev|Korn Shell|KIF|Kite|Kogut|KRC|KRL|KRYPTON|L|LabVIEW|Ladder|Lagoona|LANSA|Lasso|Lava|Leda|Lead|Leadwerks Script|Legoscript|Lexico|Liberty BASIC|Limbo|Limnor|LINC|Lingo|LISA|Lisaac|Lisp|Logo|LOLCODE|LPC|LSL|LSE|Lua|Lucid|Lush|Lustre|LYaPAS|M4|MAD|Magik|Magma|MapBasic|Maple|MAPPER|MARK\\-IV|Mary|MASM Microsoft Assembly x86|Mathematica|MATLAB|Maxima|MaxScript internal language|MEL|Mercury|Mesa|Michigan Algorithm Decoder|Microcode|MicroScript|MillScript|MIMIC|Mindscript|Miranda|MIVA Script|ML|Moby|Model 204 User Language|Modula|Modula\\-2|Modula\\-3|Mondrian|Mortran|Moto|Mouse|MSIL \\- Deprecated name for Common Intermediate Language|MSL|MUMPS|Napier88|Natural|NEAT|Nemerle|NESL|Net\\.Data|NetLogo|NewLISP|NewtonScript|NGL|Nial|Lego Mindstorms NXT \\(NXT\\-G\\)|Nice|Nickle|Nosica|NQC|NXC|Nu|o:XML|Oberon|Object Lisp|ObjectLOGO|Object Pascal|Objective\\-C|Objective\\-J|Objective Caml|Obliq|occam|occam\\-p|Octave|OmniMark|Opal|Open programming language|OPS5|ORCA\\/Modula\\-2|Organiser Programming Language|Oxygene|Oz|PARI\\/GP|Pascal \\- ISO 7185|Pawn|PBASIC|PCASTL|PEARL|Perl|Perl Data Language|PHP|Phrogram|Pico|Piet|Pike|PIKT|PILOT|Pizza|PL\\/0|PL\\/8|PL\\/B|PL\\/C|PL\\/I \\- ISO 6160|PL\\/M|PL\\/P|PL\\/SQL|Plankalkül|PLEXIL|Pliant|PPL|POP\\-11|Poplog|PostScript|Processing|Prograph|Progress 4GL|Prolog|Turbo Prolog|Promela|Protheus|PRO\\-IV|ProvideX|Python|Q|Qi|QtScript|QuakeC|QPL|R|R\\+\\+|Ratfiv|Ratfor|RBScript|rc|REBOL|Redcode|REFAL|Reia|Reilly|Revolution|REXX|Rlab|Robot Scripting Language|RPG|RPL|Ruby|REALBasic|S|S2|S2s|S3|S\\-PLUS|S\\-Lang|SAIL|SAM76|SAS|Sather|Sawzall|Scala|Scheme|Scilab|SCOBOL|Script\\.NET|Sed|Seed7|Self|SETL|Shakespeare|Shift Script|Simpol|SiMPLE|SIMSCRIPT|Simula|SISAL|Slate|SLIP|SMALL|Smalltalk|SNOBOL|SPITBOL|Snowball|SNUSP|SPARK|Spice|SPIN|SP\\/k|SPS \\(1620\\)|Squeak|Squirrel|SR|SSL|Standard ML|SBL Superbase Basic Langauge|SuperCollider|Subtext|Suneido|SYMPL|SyncCharts|SystemVerilog|T|TACL|TACPOL|TADS|Tea|TIE|Transaction Application Language|Tcl|Transact\\-SQL|teco|TELCOMP|Telon|Tex|Timber|Tom|TOM|Topspeed|tpu|Trac|TTCN|Turbo Pascal|Turing|TUTOR|TXL|Ubercode|Unicon|Uniface|uniPaaS|Unix shell|Unlambda|UnrealScript|Vala|VBA|VBScript|Verilog|VHDL|Visual Basic|Visual Basic\\.NET|Visual DataFlex|Visual DialogScript|Visual FoxPro|Visual J\\+\\+|Visual Objects|Vvvv|Water|WATFIV, WATFOR|WebQL|Whitespace|Winbatch|WinDev|Windows PowerShell|X\\+\\+|X10|XBL|xHarbour|XL|XMLmosaic|XOTcl|XPL|XPL0|XQuery|XSLT|Y|YACC|Yorick|Z|Z notation|Zonnon|ZOPL|ZPL|ZZT";
public static boolean isBookWorthReading(String title) {
String reg = "^(learn|teach|master|discover|write|understand|comprehend)?(.*?\\s+)?("+languages+")(\\s.*?)?((dummies|beginners|novice|newbies)|(((\\d+\\.?\\d*|\\.\\d+|((\\s+|and|\\-|one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen|twenty|thirty|fourty|fifty|sixty|seventy|eighty|ninety|hundred|thousand))+)\\s+(years?|months?|weeks?|days?|hours?|hrs?|minutes?|mins?|seconds?|secs?)[\\s,]*(and)?\\s*)+))$";
java.util.regex.Pattern p = java.util.regex.Pattern.compile(reg, java.util.regex.Pattern.CASE_INSENSITIVE | java.util.regex.Pattern.DOTALL | java.util.regex.Pattern.UNICODE_CASE);
return !p.matcher(title).matches();
}isBookWorthReading("Write Yourself a Scheme in 48 Hours");false
isBookWorthReading("SICP");true
(year|month|week|day|h(ou?)r|min(ute?)|sec(ond?))s?