Tipos primitivos

Como se ha comentado, todo valor (sea primitivo o estructurado) tiene asignado un único tipo. Estos tipos -denominados tipos primitivos en contraposición a los tipos personalizados que podemos crear- están organizados de forma jerárquica teniendo en su cúspide el tipo any, que clasifica o incluye a todos los demás tipos. El listado de tipos primitivos es el siguiente:

  • any, tipo que engloba los demás
  • null, que clasifica el valor nulo (null)
  • logical, que clasifica los valores "verdadero" (true) y "falso" (false)
  • number, que clasifica valores numéricos
  • time, que clasifica valores de “hora” (referencias en el tiempo: lo que en español implica lo que llamamos horas, minutos y segundos)
  • date, que clasifica valores de fecha
  • datetime, que clasifica valores de fecha y hora
  • datetimezone, que clasifica valores de fecha y hora con zona horaria
  • duration, que clasifica valores de duración
  • text, que clasifica textos
  • binary, que clasifica valores binarios
  • type, que clasifica tipos
  • list, que clasifica listas de valores
  • record, que clasifica registros de valores
  • table, que clasifica tablas de valores
  • function, que clasifica funciones
  • anynonnull, que clasifica cualquier valor que no sea nulo
  • none, tipo que no clasifica ningún valor
Los tipos primitivos no son los tipos que tienen asignados los valores primitivos, sino los tipos que existen por defecto en el lenguaje M (asociables tanto a valores primitivos como a valores estructurados). La nomenclatura usada por Microsoft puede resultar ambigua en este sentido.