import Data.List
import Data.Function
newtype Point a = Point {getPoint :: (a,a)}
data Table a
= Table
{getHdr
:: String, getTable
:: [Point a
]}
show p
= (((++) . (++ "\t")) `on`
(\f
-> (show . f
. getPoint
$ p
))) fst snd
point f x = Point (x, f x)
table h f xs
= Table h
$ fmap (point f
) xs
tableYT
= table
"ty" ((\a b t
-> exp(abs(a
+ cos (b
* t
)))) 0.5 2) [2, 2.5 .. 5]tableYX = table "xy" ((\a x -> 0.5*x*(1 + a*x)**0.2) 3.5) [1 .. 10]
aW1wb3J0IERhdGEuTGlzdAppbXBvcnQgRGF0YS5GdW5jdGlvbgoKbmV3dHlwZSBQb2ludCBhID0gUG9pbnQge2dldFBvaW50IDo6IChhLGEpfQpkYXRhIFRhYmxlIGEgPSBUYWJsZSB7Z2V0SGRyIDo6IFN0cmluZywgZ2V0VGFibGUgOjogW1BvaW50IGFdfQoKaW5zdGFuY2UgU2hvdyBhID0+IFNob3cgKFBvaW50IGEpIHdoZXJlCiAgICBzaG93IHAgPSAoKCgrKykgLiAoKysgIlx0IikpIGBvbmAgKFxmIC0+IChzaG93IC4gZiAuIGdldFBvaW50ICQgcCkpKSBmc3Qgc25kCgppbnN0YW5jZSBTaG93IGEgPT4gU2hvdyAoVGFibGUgYSkgd2hlcmUKICAgIHNob3cgdCA9IGludGVyY2FsYXRlICJcbiIgJCBzaG93IChsZXQgW3gseV0gPSBnZXRIZHIgdCBpbiBwb2ludCAoY29uc3QgeSkgeCkgOiBmbWFwIHNob3cgKGdldFRhYmxlIHQpCgpwb2ludCBmIHggPSBQb2ludCAoeCwgZiB4KQp0YWJsZSBoIGYgeHMgPSBUYWJsZSBoICQgZm1hcCAocG9pbnQgZikgeHMKCnRhYmxlWVQgPSB0YWJsZSAidHkiICgoXGEgYiB0IC0+IGV4cChhYnMoYSArIGNvcyAoYiAqIHQpKSkpIDAuNSAyKSBbMiwgMi41IC4uIDVdCnRhYmxlWVggPSB0YWJsZSAieHkiICgoXGEgeCAtPiAwLjUqeCooMSArIGEqeCkqKjAuMikgMy41KSBbMSAuLiAxMF0KCm1haW4gPSBtYXBNXyBwcmludCBbdGFibGVZVCwgdGFibGVZWF0=