Bu terimlerin çok fazla kafa karışıklığı ve yanlış kullanımı var. Genellikle biri diğerini ifade etmek için kullanılır. İşte bu terimlerin aslında ne anlama geldiği.
"Yerel" , nasıl uygulandıklarına bakılmaksızın bir kitaplık (standart bir kitaplık bile) tarafından sağlanmanın aksine, dile yerleşik olan türleri ifade eder. Perl dizeleri Perl dilinin bir parçasıdır, bu nedenle Perl'de yereldirler. C, bir kitaplık kullanarak karakterlere işaretçiler üzerinde dize semantiği sağlar, bu nedenle karaktere işaretçi yereldir, ancak dizeler değildir.
"Atomik" , artık ayrıştırılamayan bir türü ifade eder. "Kompozit" in tam tersidir . Kompozitler, atomik değerlerin veya diğer kompozitlerin bir kombinasyonuna ayrıştırılabilir. Yerel tam sayılar ve kayan nokta sayıları atomiktir. Kesirler, karmaşık sayılar, kaplar / koleksiyonlar ve dizeler bileşiktir.
"Skaler" - ve çoğu insanın kafasını karıştıran budur - boyut, hacim, sayımlar vb. Gibi ölçeği (dolayısıyla adı) ifade edebilen değerleri ifade eder. Tamsayılar, kayan nokta sayıları ve kesirler skalerdir. Karmaşık sayılar, mantıksal değerler ve dizeler skaler DEĞİLDİR . Atomik olan bir şeyin skaler olması gerekmez ve skaler olan bir şeyin atomik olması gerekmez. Skalarlar yerel olabilir veya kütüphaneler tarafından sağlanabilir.
Bazı türlerin garip sınıflandırmaları vardır. Genellikle basamak veya tamsayı dizisi olarak uygulanan BigNumber türleri skalerdir, ancak teknik olarak atomik değildirler. Uygulama gizliyse ve dahili bileşenlere erişemiyorsanız atomik görünebilirler. Ancak bileşenler yalnızca gizlidir, bu nedenle atomiklik bir yanılsamadır. Neredeyse her zaman kütüphanelerde sağlanırlar, bu yüzden yerel değiller, ama olabilirler. Örneğin Mathematica programlama dilinde, büyük sayılar yereldir ve bir Mathematica programının onları yapı taşlarına ayırmasının bir yolu olmadığından, bu bağlamda atomiktirler, kapaklar (artık Mathematica dilinin dünyasında olmadığın yer).
Bu tanımlar kullanılan dilden bağımsızdır.