extension on List { bool get isTriangle { sort(); return length == 3 && this[0] + this[1] > this[2]; } } class Triangle { bool equilateral(double a, double b, double c) => [a, b, c].isTriangle && {a, b, c}.length == 1; bool isosceles(double a, double b, double c) => [a, b, c].isTriangle && {a, b, c}.length <= 2; bool scalene(double a, double b, double c) => [a, b, c].isTriangle && {a, b, c}.length == 3; }