From: Andy Spencer Date: Fri, 11 Sep 2015 07:13:58 +0000 (+0000) Subject: Add fun operators X-Git-Url: http://pileus.org/git/?p=~andy%2Frhawk;a=commitdiff_plain;h=cf7a03157ed581ada350fe636c00804c45ef74cc Add fun operators --- diff --git a/rhawk b/rhawk index f1478f6..8811273 100755 --- a/rhawk +++ b/rhawk @@ -429,6 +429,24 @@ DST != "#rhnoise" && DST != NICK && say("#rhnoise", "(" DST ") " FROM ": " MSG); } +# Fun operators +function bang(a, b) { + if (a=="nan") return "nan"; + if (b=="nan") return "nan"; + if (a==b) return "nan"; + if (a==0) return "+0"; + if (b==0) return "-0"; + return 1/(1/a - 1/b); +} + +/^ *[+-]?[0-9]*\.?[0-9]+( *\? *[+-]?[0-9]*\.?[0-9]+)+ *$/ { + gsub(/?/, " "); + _num = $1+0; + for (_i=2; _i<=NF; _i++) + _num = bang(_num, $_i+0); + reply(_num); +} + # Misc { fflush("") }