3å2700äžãã«ã®åäœå€æãšã©ãŒ
1999幎9æ23æ¥ãNASAã®ç«ææ°åæ¢æ»æ©ïŒMars Climate OrbiterïŒãç«æè»éã«å ¥ãããã«ãšã³ãžã³ãåŽå°ããäºåºŠãšéä¿¡ãåããªããªããŸãããæ¢æ»æ©ã¯äœãããé«åºŠã§é²å ¥ããŸããââèšç»ã®226kmã§ã¯ãªã57kmââ倧æ°ã§çãå°œãããå®å®ã«åŒŸãé£ã°ãããŸãããåå ïŒããããŒãã»ããŒãã£ã³ã®å°äžãœãããŠã§ã¢ãã¹ã©ã¹ã¿ãŒåããŒã¿ããã³ãåã»ç§ã§åºåããŠããŸããããNASAã®ããã²ãŒã·ã§ã³ãœãããŠã§ã¢ã¯ãã¥ãŒãã³ã»ç§ãæåŸ ããŠããŸããã9ã¶æã®é£è¡äžã誰ããã®äžäžèŽã«æ°ã¥ããŸããã§ããã
å€æä¿æ°ã¯ã·ã³ãã«ã§ãïŒ1ãã³ãå = 4.44822ãã¥ãŒãã³ããœãããŠã§ã¢ã¯ãã¹ãŠã®è»éä¿®æ£ãããŒãã§4.45åãããŠããŸãããåå°ããªãšã©ãŒãæ°çŸäžããã¡ãŒãã«ã«ããã£ãŠèç©ããŸããã調æ»å§å¡äŒã¯ããããå°äžãœãããŠã§ã¢ãã¡ã€ã«ã®ã³ãŒãã£ã³ã°ã§ã¡ãŒãã«æ³åäœã䜿çšããªãã£ã倱æããšåŒã³ãŸãããæ¬åœã®å€±æã¯ã·ã¹ãã çã§ããââã€ã³ã¿ãŒãã§ãŒã¹ä»æ§ãåäœãå®çŸ©ãããããªããŒã·ã§ã³ãå€ãæåŸ ç¯å²å ããã§ãã¯ãããçµ±åãã¹ããäžäžèŽãæ€åºããŸããã§ããã
ããã¯äžåéãã§ã¯ãããŸãããåäœå€æãšã©ãŒã¯ã®ã ãªãŒã»ã°ã©ã€ããŒäºä»¶ïŒ1983幎ããšã¢ã»ã«ãã767ãå°äžã¯ã«ãŒãããã°ã©ã ã§ã¯ãªããã³ãã§çæãèšç®ããããçæåãïŒããŽã¡ãŒãµå·ã®æ²æ²¡ïŒ1628幎ãå·Šè·ãšå³è·ã§2ã€ã®ç°ãªã枬å®ã·ã¹ãã ã§å»ºé ïŒãæ±äº¬ãã£ãºããŒã©ã³ãã®ã¹ããŒã¹ããŠã³ãã³è±ç·ïŒ2003幎ãã€ã³ãã®è»è»žä»æ§ãããªã¡ãŒãã«ãšããŠè§£éãããïŒãåŒãèµ·ãããŸããããã¿ãŒã³ã¯åžžã«åãã§ãïŒ2ã€ã®ã·ã¹ãã ã2ã€ã®åäœèŠçŽããããã®éã®æç€ºçãªå¥çŽããªãã
åäœå€æãšã©ãŒãèµ·ãç¶ããçç±
æ ¹æ¬çãªåé¡ïŒåäœã®ãªãæ°å€ã¯ç¡æå³ã§ãããã»ãšãã©ã®ããã°ã©ãã³ã°èšèªã¯ãããè£žã®æ°å€ãšããŠæ±ããŸããdistance = 384400ãšæžãããšããããã¯ããã¡ãŒãã«ïŒå°çããæïŒã§ããããã€ã«ïŒæã235,000kméãéããŸãïŒã§ããïŒå€æ°åã¯"distance_km"ãããããŸããããåã·ã¹ãã ã¯ããã匷å¶ããŸãããã¡ãŒãã«ãæåŸ ãã颿°ã¯ãã£ãŒãã®å€ãåãã§åãå ¥ãããšã©ãŒãªãã«ãŽããåºåããŸãã
ã¡ãŒãã«æ³ãšã€ãŒããã³ãæ³ã®åè£ããããæªåãããŸããç±³åœããã£ã³ããŒããªããªã¢ã ããå ¬åŒã«ã¡ãŒãã«æ³ãæ¡çšããŠããŸããããããã¡ãŒãã«æ³ã®åœã§ããã¬ã¬ã·ãŒã·ã¹ãã ã¯ã€ãŒããã³ãæ³ã䜿ããŸãââèªç©ºã¯äžçäžã§é«åºŠã«ãã£ãŒããè·é¢ã«æµ·éã䜿ããŸããå»åŠãäž¡æ¹äœ¿ããŸãïŒè¡å§ã¯mmHgãäœæž©ã¯ç±³åœã§Â°Fã§ããä»ã§ã¯Â°CïŒãã€ãŸãåœéçãªã·ã¹ãã ã¯äž¡æ¹ãæ±ãå¿ èŠãããã倿ã®å¢çããã°ã®æž©åºã§ãã
ãœãããŠã§ã¢ç¹æã®çœ ïŒCSSã¯pxãemãremãvhãvwã䜿ããŸãââãã¹ãŠé·ãã®ç°ãªãåäœã§ããAPIã¯ãããã€ããŒã«ãã£ãŠã±ã«ãã³ãææ°ãè¯æ°ã§æž©åºŠãè¿ããŸããã¿ã€ã ã¹ã¿ã³ãã¯ç§ãããªç§ããã€ã¯ãç§ã§æ¥ãŸããè§åºŠã¯åºŠãã©ãžã¢ã³ãã°ã©ãžã¢ã³ããããŸããã·ã¹ãã ãã©ã€ãã©ãªãAPIéã®å¢çãè¶ãããã³ã«ãåäœã®äžäžèŽã®ãªã¹ã¯ããããŸãã
人çèŠå ïŒåäœå€æãšã©ãŒã¯éå±ã§ããå·§åŠãªãã°ã§ã¯ãªããèµ·ããã«ã¯åçŽããããšæããå¹³å¡ãªãã¹ã§ããã ããããã³ãŒãã¬ãã¥ãŒãããæããŸããã¬ãã¥ã¢ãŒã¯"thrust = calculateThrust(data)"ãèŠãŠãdataã®åäœã¯äœïŒããšèãããšã¯æããŸãããç«ææ¢æ»æ©ããŒã ã«ã¯æ°çŸäººã®ãšã³ãžãã¢ãš9ã¶æã®é£è¡éçšããããŸããã誰ããã®è³ªåãããŸããã§ããã
ãœãããŠã§ã¢ã§ããããåäœå€æãã¹
枩床ïŒC = (F - 32) à 5/9ã®å ¬åŒã¯ã·ã³ãã«ã§ãããäžéšã®èšèªã§ã®æŽæ°é€ç®ãçµæãåãæšãŠãŸããCã§ã¯ïŒ(100 - 32) * 5 / 9 = 37ïŒæ£ããïŒãããã(50 - 32) * 5 / 9 = 10ïŒ10.0ã§ããã¹ãã§ãããååè¿ãïŒãæ¬åœã®çœ ïŒã±ã«ãã³ããææ°ã¯åã«K - 273.15ã§ãããã±ã«ãã³ããè¯æ°ã¯2ã¹ãããå¿ èŠã§ãããããŠã©ã³ãã³ïŒäžéšã®ç±³åœå·¥åŠã§äœ¿çšïŒã¯è¯æ° + 459.67ã§ããscientific-calculatorããŒã«ã¯4ã€ã®ã¹ã±ãŒã«ãã¹ãŠãæ±ããŸãã
è·é¢ïŒ1ãã€ã« = 1.60934 kmã1ãã£ãŒã = 0.3048ã¡ãŒãã«æ£ç¢ºïŒ1959幎以éã®å®çŸ©ïŒã1ã€ã³ã = 25.4 mmæ£ç¢ºããæ£ç¢ºããéèŠã§ãââãããã¯å®çŸ©ããã倿ã§ãããæž¬å®ãããè¿äŒŒã§ã¯ãããŸããããããæµ·éïŒ1.852 kmïŒã¯æ³å®ãã€ã«ïŒ1.609 kmïŒãšç°ãªããè±åœã®ããã€ã«ãã¯æšæºåãŸã§æŽå²çã«ç±³åœãã€ã«ãšç°ãªã£ãŠããŸãããã©ã®ãã€ã«ãåžžã«æå®ããŸãããã
éé vs 質éïŒæ¥åžžèªã§ã¯ãééããšã質éãã¯äºæå¯èœã§ããç©çåŠã§ã¯ã質éïŒkgïŒã¯åºæã§ééïŒãã¥ãŒãã³ïŒã¯éåã«äŸåããŸããå°çäžã§1kgã®è³ªéã¯9.81Nã®éãã§ããç«æã§ã¯3.72Nã§ãããã®åºå¥ã¯èªç©ºå®å®ãç©çã·ãã¥ã¬ãŒã·ã§ã³ãç°ãªãéåç°å¢ã®ãªããžã§ã¯ããã¢ãã«åããã³ãŒãã§éèŠã§ããç«ææ¢æ»æ©ã®ãšã©ãŒã¯è³ªéã§ã¯ãªãåïŒãã¥ãŒãã³ vs ãã³ãåïŒã«é¢ãããã®ã§ããã
ããŒã¿ã¹ãã¬ãŒãžïŒ1 KB = 1,000ãã€ãïŒSIãããŒããã©ã€ãã¡ãŒã«ãŒã䜿çšïŒãŸãã¯1,024ãã€ãïŒãã€ããªãOSã䜿çšïŒããããã1 TBãã®ãã©ã€ããWindowsã§931 GBãšè¡šç€ºãããçç±ã§ããIECèŠæ Œã¯KiBïŒ1,024ãã€ãïŒãMiBïŒ1,048,576ãã€ãïŒçãææ§ãè§£æ¶ã®ããã«å°å ¥ããŸããããæ¡çšã¯äžè²«ããŠããŸãããã³ãŒãã§ãã¡ã€ã«ãµã€ãºãå ±åãããšããã©ã¡ãã®èŠçŽã䜿ã£ãŠãããæç€ºããŸãããã
å®éã«æ©èœãã鲿¢ç
æŠç¥1ïŒåäœããšã³ã³ãŒãããåã·ã¹ãã ã䜿ããTypeScriptã§ã¯ãã©ã³ãåã䜿ããŸãïŒtype Meters = number & { __brand: "meters" }ãMetersãæåŸ ãã颿°ã¯ãæç€ºçãªãã£ã¹ããªãã«ãã¬ãŒã³ãªnumberãåãä»ããŸãããts-unitsãunitfulïŒHaskellïŒãBoost.UnitsïŒC++ïŒãªã©ã®ã©ã€ãã©ãªã¯ã³ã³ãã€ã«æã«åäœã®æ£ããã匷å¶ããŸããç«ææ¢æ»æ©ã®ãšã©ãŒã¯é©åãªåäœåãããã°ã³ã³ãã€ã«ãšã©ãŒã«ãªã£ãŠããã§ãããã
æŠç¥2ïŒã·ã¹ãã å¢çã§åžžã«æ£èŠåäœã«å€æãããäžã€ã®åäœç³»ïŒSI ã¡ãŒãã«æ³ãæšæºçãªéžæïŒãéžã³ããã¹ãŠã®å ¥åãåä¿¡æã«ãã®ã·ã¹ãã ã«å³åº§ã«å€æããŸããå éšèšç®ã¯æ£èŠåäœã®ã¿ã䜿çšããŸããåºåå¢çã§ã®ã¿è¡šç€ºåäœã«æ»ããŸãããã®ãæ©ææ£èŠåãé 延鿣èŠåããã¿ãŒã³ãå éšã®åäœæ··ä¹±ãæé€ããŸãã
æŠç¥3ïŒå€æ°åãšAPIå¥çŽã«åäœãå«ããã"distance"ã§ã¯ãªã"distance_meters"ã"temperature"ã§ã¯ãªã"temp_celsius"ãAPIããã¥ã¡ã³ãã§ã¯åäœãæç€ºçã«æå®ïŒ"altitude: numberïŒæµ·æã¡ãŒãã«ïŒ"ãããŒã¿ããŒã¹ã¹ããŒãã§ã¯ã³ã¡ã³ãã远å ããã"weight_kg"ã®ãããªã«ã©ã åã䜿ããŸããããŒãã¯ã§ããã³ãŒãã¬ãã¥ãŒã§ãšã©ãŒãæ€åºããŸãã
æŠç¥4ïŒå¢çã§ç¯å²ãæ€èšŒããã倩æ°ã®èªã¿åãã§5,000°Cã®æž©åºŠã¯æããã«ééãã§ãââãããã倿ãããŠããªã5,000ã±ã«ãã³ããŸãã¯å°æ°ç¹ãããã50.00°Cã§ããè»ã®æ ã§384,400ã®è·é¢ã¯ããããããã€ã«ãæåŸ ããŠããã®ã«ããã¡ãŒãã«ïŒãŸãã¯ãã®éïŒã§ããç¯å²ãã§ãã¯ã¯ç©ççã«äžå¯èœãªå€ãçãåäœãšã©ãŒãæ€åºããŸããunit-converterããŒã«ã¯äž¡æ¹ã®å€ã䞊ã¹ãŠè¡šç€ºããã®ã§ã倧ããã®åŠ¥åœæ§ã確èªã§ããŸãã
// Branded types prevent unit confusion at compile time
type Meters = number & { readonly __brand: unique symbol };
type Feet = number & { readonly __brand: unique symbol };
function metersToFeet(m: Meters): Feet {
return (m * 3.28084) as Feet;
}
function calculateAltitude(alt: Meters): string {
return `${alt}m above sea level`;
}
const altitude = 10000 as Meters;
calculateAltitude(altitude); // â
OK
// calculateAltitude(10000 as Feet); // â Type error!
// Simpler approach: objects with explicit unit field
interface Measurement {
value: number;
unit: 'meters' | 'feet' | 'km' | 'miles';
}
function toMeters(m: Measurement): number {
switch (m.unit) {
case 'meters': return m.value;
case 'feet': return m.value * 0.3048;
case 'km': return m.value * 1000;
case 'miles': return m.value * 1609.34;
}
}ç§åŠèšç®ã«ãããåäœå€æ
ç§åŠã³ãŒãã«ã¯è¿œå ã®èª²é¡ããããŸãïŒçµç«åäœãé床ã¯ã¡ãŒãã«/ç§ãå é床ã¯ã¡ãŒãã«/ç§Â²ãåã¯kg·m/s²ïŒãã¥ãŒãã³ïŒããšãã«ã®ãŒã¯kg·m²/s²ïŒãžã¥ãŒã«ïŒãéåºŠã«æéãæãããšçµæã¯ã¡ãŒãã«ã§ããã¹ãã§ãããããã°ã©ãã³ã°èšèªã¯ãããç¥ããŸãããæ¬¡å è§£æïŒåäœãæ£ããçžæ®ºãããããšã®ç¢ºèªïŒã¯ç©çåŠè ãçŽã®äžã§è¡ããŸããããœãããŠã§ã¢ã«ãšã³ã³ãŒããããããšã¯çšã§ãã
Pintã©ã€ãã©ãªïŒPythonïŒãé¡äŒŒããŒã«ããããæ±ããŸãïŒdistance = 5 * ureg.meter; time = 2 * ureg.second; speed = distance / timeã§å®å šãªåäœè¿œè·¡ä»ãã®2.5 meter/secondãåŸãããŸããã¡ãŒãã«ãšç§ãè¶³ãããšãããšDimensionalityErrorãçºçããŸããããã¯ç¡æå³ãªçµæãé»ã£ãŠçããã°ãæ€åºããŸãã
æµ®åå°æ°ç¹ç²ŸåºŠãåäœå€æãšåŸ®åŠã«çžäºäœçšããŸããæ£ç¢ºãªå€æ1ã€ã³ã = 25.4 mmã¯æµ®åå°æ°ç¹ã§è¡šçŸå¯èœã§ããããã1ãã£ãŒã = 0.3048ã¡ãŒãã«ã¯åŸªç°ãã2é²è¡šçŸãæã¡ã埮å°ãªäžžã誀差ãå°å ¥ããŸããæ°çŸäžåã®å€æïŒCADãœãããŠã§ã¢ãç©çã·ãã¥ã¬ãŒã·ã§ã³ã§äžè¬çïŒã«ããã£ãŠããããã®ãšã©ãŒãèç©ããŸãã粟床ãéèŠãªå Žåã¯å€æä¿æ°ã«æ£ç¢ºãªæçæ°æŒç®ã䜿ããŸãããã
å®äŸïŒGPS座æšãå°æ°ç¹ä»¥äž6æ¡ã®ç·¯åºŠ/çµåºŠã¯çŽ0.11ã¡ãŒãã«ã®ç²ŸåºŠãäžããŸãããããäžè§é¢æ°èšç®ã®ããã«ã©ãžã¢ã³ã«å€æããŠæ»ããšãæµ®åå°æ°ç¹ã®äžžãã§äœçœ®ãã»ã³ãã¡ãŒãã«åäœã§ãããå¯èœæ§ããããŸããããã²ãŒã·ã§ã³ã«ã¯ããã§ååã§ããæž¬éïŒããªã¡ãŒãã«ãéèŠïŒã§ã¯ãå€æç²ŸåºŠã«æ³šæãå¿ èŠã§ããäžåºŠå€æããŠçµæãä¿æããäœåºŠãè¡ãæ¥ããªãããã«ããŸãããã
åäœå€æããŒã«ã§ã¯äžååãªå Žå
äžéšã®ã倿ãã¯åçŽãªæãç®ã§ã¯ãããŸãããæž©åºŠïŒææ°ããè¯æ°ã¯ãªãã»ãããå«ã¿ãæ¯çã ãã§ã¯ãªãïŒããã·ãã«ïŒå¯Ÿæ°ã¹ã±ãŒã«ââãã¯ãŒã2åã«ãããš3 dBå ç®ãdBã2åã«ã¯ãªããªãïŒãpHïŒåãã察æ°ââpH 5ã¯pH 6ã®10åé žæ§ïŒããªãã¿ãŒã¹ã±ãŒã«ïŒåæŽæ°ã¯31.6åã®ãšãã«ã®ãŒïŒããããã¯å€æä¿æ°ã§ã¯ãªããåºç€ãšãªãã¹ã±ãŒã«ã®çè§£ãå¿ èŠã§ãã
éè²šå€æã¯ç¹æ®ãªã±ãŒã¹ã§ãïŒå€æä¿æ°ãæ¯ç§å€ãããŸããåºå®ã¬ãŒãã䜿ããåäœå€æåšãã¯äœ¿ãæç¹ã§ééã£ãŠããŸããå®éã®éè²šå€æã«ã¯ã©ã€ãçºæ¿ã¬ãŒããå¿ èŠã§ãåŸãããã¬ãŒãã¯éé¡ïŒã¹ãã¬ããïŒãæ¹åïŒè²·ãã¬ãŒã vs 売ãã¬ãŒãïŒããããã€ããŒïŒéè¡ vs FXãããŒã«ãŒ vs ã¯ã¬ãžããã«ãŒãïŒã«äŸåããŸããunit-converterã¯åºå®å€æä¿æ°ã®ç©çåäœãæ±ããŸããé貚ã«ã¯ã©ã€ãã¬ãŒãAPIãå¿ èŠã§ãã
æçã®èšéã¯é©ãã»ã©è€éã§ãããã«ãããã¯ç±³åœã§236.6 mLããªãŒã¹ãã©ãªã¢ã§250 mLãæ¥æ¬ã§200 mLã§ããã倧ãããã¯14.8 mLïŒç±³åœïŒã15 mLïŒã¡ãŒãã«æ³ïŒã20 mLïŒãªãŒã¹ãã©ãªã¢ïŒãç°ãªãåœã®ã¬ã·ãã¯ç°ãªããæšæºãèšéã䜿ããŸãããããŠäœç©ããééãžã®å€æã¯é£æã«äŸåããŸãïŒå°éºŠç²1ã«ããã¯125gã§ãããç ç³1ã«ããã¯200gã§ããã·ã³ãã«ãªå€æè¡šã§ã¯ãããæ±ããŸããã
ãããã®ãšããžã±ãŒã¹ããã®æèšïŒåäœå€æã¯åºå®æ¯çã®æç¢ºã«å®çŸ©ãããç©çåäœã«å¯ŸããŠã®ã¿ãã·ã³ãã«ãã§ãããã以å€ã®ãã¹ãŠââé貚ãæçã察æ°ã¹ã±ãŒã«ãæèäŸåã®åäœââã«ã¯ãã¡ã€ã³ç¥èãå¿ èŠã§ãåãªãæãç®ä¿æ°ã§ã¯äžååã§ããæè¯ã®åäœå€æããŒã«ïŒç§ãã¡ã®ãã®ãå«ãïŒã¯ãäœã倿ã§ãäœãã§ããªãããæç€ºããåçŽãªä¿æ°ã§ã¯äžååãªã±ãŒã¹ããã©ã°ããŸãã