plot : lot a list of numbers as a scatter plot. x is the index in the list. y is the value of each number. can also plot equations as lambdas.
__type__: `point | line | number`
point: draw each datum as a point
line: draw lines connecting all of the points
number: draw points on a number line
Standard 2D graphics using the PDF / Canvas / SVG imaging model. Lengths and points may be specified with
units, like rect(width=2cm, height=1ft) . If no units are supplied then it is assumed to be pixels.
point : a two component vector point(25,50) === [25,50]
anywhere an xy pair can be used, a point can be used as well.
draw : draws lists/nested lists of shapes. optionally set size of the canvas area
circle : a circle shape with center, radius, and fill
rect : a rect shape with width, height, position and fill rect(width=100, height=50)
regular_polygon : an N-gon. ex: regular_polygon(5) = pentagon. accepts fill and center position.
pack_row : packs shapes in a row, centered vertically
pack_col : packs shapes in a column, centered horizontally. works on shapes, scalars and other elements.
pack_grid : packs shapes in grid of the specified size.
draw_geomap : draws a geo map
address_to_geo : converts a street address to a geo coordinate (US addresses only)
color : make a color. accept strings, hex RGB triplets, and keywords for red,green,blue, hue,saturation,value, or hue, saturation, lightness. supports abbreviations too. and all CSS named strings. Maybe split into RGB and HSV color functions?
line_path : a polyline, may or may not be closed. may or may not be filled. only lines (no curves). specify a list of xy pairs as points.
For the most part dates and time are just scalars with units. You can create a datetime, do
simple arithmetic with it, and convert between timezones. There are three types: Dates, Times,
Now : DateTime representing right now.
Today , Tomorrow , Yesterday : dates representing these days.
Date : create a new date from a string. optionally specify a format
Time : create a new time from a string. optionally specify a format.
DateTime : create a new date-time from a string. optionally specify a format.
Calculate geographical locations and draw maps. The basics are easy but this requires
more thought about how this would actually be used, and where the map data comes from. Could we
actually do something like show the 30 nearest volcanos?
GeoPositon: a lat lon
GeoMap: draws list of GeoPositions on a map. automatically scales to show all
GeoDistance: distance between two positions using great circle math
GeoPath, circle paths between lat lons, draw on the map.
GeoCircle: radius around a geo point.
GeoHere: attempts to detect your current location.
GeoNearest: find points of interest nearest to a location? This needs a lot more thought.
Wikipedia() returns wikipediat article as text (what kind of text? HTML? markdown? JSON?)
Dictionary() returns definition of word as text or json or other?
Weather() returns current and historical weather for a location
Silly(") datasets from silly.io, including:
US states w/ dates, flags, abbreviations, capital cities, etc. lat/lon center, border,
Countries of the world including: english name, local name, population, ISO code, primary language, flags, etc.
planets and moons in the solar system including: mass, radius, orbital period, rotational period, albedo, photos, and more.
cities: major US cities
buildings: tallest buildings in the world
IntegerDigits : split number into list of single digits. IntegerDigits(4200) = [4,2,0,0]
count : number of times element appears in the list. count(list,'foo') . Is this useful?
first , last : return the first or last elements of the list. can't we use take(data,n) .
rest return the list minus the first element
part : wolfram uses part for array element selection. is this easier than data[n] indexing?
ColorNegate wolfram uses this to find a complientary color, but I think it's only using the hue.
wolfram: Blend mixes colors. Couldn't we do it with math?
wolfram: RandomColor vs making colors with random values in the constructor
wolfram: Style to style the output with colors and font sizes. Not clear what the 'output' is in these cases, since it could be anything. Really it's styling the output panel in the interface. I'm unsure about this.
wolfram: filled versions of shapes, like Disc vs Circle .
3d graphics like sphere, cone, cylinder, and 3d plots.
ImageCollage: group multiple images together. I feel like there must be a better way to do this.
DominantColors: to return list of dominant colors in the image. It feels like this should be part of generating a full color histogram.
TextWords returns list the english words in the string. ignores punctuation.
TextSentences returns list of sentences in the string.
WordCloud. I've never needed to use one of these.
RomanNumeral: convert number to roman numerals. why?
IntegerName, the number as english text. 42 = 'forty-two'. why?
Alphabet: list of every letter. maybe useful?
LetterNumber, index in the alphabet of the letter.
FromLetterNumber, alphabet number to letter
Rasterize: turns text into an image using a particular style (font, size, color?)
Rotate: to rotate graphics. I need to think more about how this will work.
AnglePath: a way to do LOGO style turtle graphics.
currency conversion. Do people really care about this without having a date context?
Graphs. I'm not sure working with directed and undirected and weighted graphs is needed right now.
Machine Learning: definitely not ready for this yet.
how to do complex numbers?
apply functions repeatedly through iteration and recursion as Wolfram does. Good for fractals?