Temperature conversion: Difference between revisions

Content added Content deleted
m (Added reference to "strfmt".)
(→‎{{header|Excel}}: Added an Excel LAMBDA variant)
Line 1,308: Line 1,308:
2 21 -252.15 -421.87 37.8
2 21 -252.15 -421.87 37.8
</pre>
</pre>

===LAMBDA===

Excel provides a general purpose CONVERT function, which includes coverage for common temperature scales.

We can define a reusable specialisation of it by binding the name FROMKELVIN to the following lambda expression in the Name Manager of the Excel WorkBook:

(See [https://www.microsoft.com/en-us/research/blog/lambda-the-ultimatae-excel-worksheet-function/ LAMBDA: The ultimate Excel worksheet function])

{{Works with|Office 365 betas 2021}}
<lang lisp>=LAMBDA(toUnit,
LAMBDA(n,
LET(
REM, "Valid units :: C, F, R, K",
CONVERT(
n, "K",
IF("R" = toUnit,
"Rank",
toUnit
)
)
)
)
)</lang>

The example below generates the spaced list of test values on the left from the expression ENUMFROMTHENTO(240)(250)(390),
applying the following custom function:
<lang lisp>ENUMFROMTHENTO
=LAMBDA(a,
LAMBDA(b,
LAMBDA(z,
LET(
d, b - a,

SEQUENCE(
1 + FLOOR.MATH((z - a)/d),
1, a, d
)
)
)
)
)</lang>

The four columns on the right of the output read their target format from the label cell at the top of each column.

(The last column displays an identity conversion, added as a check).
{{Out}}
{| class="wikitable"
|-
|||style="text-align:right; font-family:serif; font-style:italic; font-size:120%;"|fx
! colspan="5" style="text-align:left; vertical-align: bottom; font-family:Arial, Helvetica, sans-serif !important;"|=FROMKELVIN(B$1)($A2)
|- style="text-align:center; font-family:Arial, Helvetica, sans-serif !important; background-color:#000000; color:#ffffff;"
|
| A
| B
| C
| D
| E
|-
| style="text-align:center; font-family:Arial, Helvetica, sans-serif !important; background-color:#000000; color:#ffffff" | 1
| style="text-align:left; font-weight:bold" | Kelvin
| style="text-align:left; font-style:italic" | C
| style="text-align:left; font-style:italic" | F
| style="text-align:left; font-style:italic" | R
| style="text-align:left; font-style:italic" | K
|-
| style="text-align:center; font-family:Arial, Helvetica, sans-serif !important; background-color:#000000; color:#ffffff" | 2
| style="text-align:center" | 240
| style="text-align:right; background-color:#cbcefb" | -33.15
| style="text-align:right" | -27.67
| style="text-align:left" | 432
| style="text-align:left" | 240
|-
| style="text-align:center; font-family:Arial, Helvetica, sans-serif !important; background-color:#000000; color:#ffffff" | 3
| style="text-align:center" | 250
| style="text-align:right" | -23.15
| style="text-align:right" | -9.67
| style="text-align:left" | 450
| style="text-align:left" | 250
|-
| style="text-align:center; font-family:Arial, Helvetica, sans-serif !important; background-color:#000000; color:#ffffff" | 4
| style="text-align:center" | 260
| style="text-align:right" | -13.15
| style="text-align:right" | 8.33
| style="text-align:left" | 468
| style="text-align:left" | 260
|-
| style="text-align:center; font-family:Arial, Helvetica, sans-serif !important; background-color:#000000; color:#ffffff" | 5
| style="text-align:center" | 270
| style="text-align:right" | -3.15
| style="text-align:right" | 26.33
| style="text-align:left" | 486
| style="text-align:left" | 270
|-
| style="text-align:center; font-family:Arial, Helvetica, sans-serif !important; background-color:#000000; color:#ffffff" | 6
| style="text-align:center" | 280
| style="text-align:right" | 6.85
| style="text-align:right" | 44.33
| style="text-align:left" | 504
| style="text-align:left" | 280
|-
| style="text-align:center; font-family:Arial, Helvetica, sans-serif !important; background-color:#000000; color:#ffffff" | 7
| style="text-align:center" | 290
| style="text-align:right" | 16.85
| style="text-align:right" | 62.33
| style="text-align:left" | 522
| style="text-align:left" | 290
|-
| style="text-align:center; font-family:Arial, Helvetica, sans-serif !important; background-color:#000000; color:#ffffff" | 8
| style="text-align:center" | 300
| style="text-align:right" | 26.85
| style="text-align:right" | 80.33
| style="text-align:left" | 540
| style="text-align:left" | 300
|-
| style="text-align:center; font-family:Arial, Helvetica, sans-serif !important; background-color:#000000; color:#ffffff" | 9
| style="text-align:center" | 310
| style="text-align:right" | 36.85
| style="text-align:right" | 98.33
| style="text-align:left" | 558
| style="text-align:left" | 310
|-
| style="text-align:center; font-family:Arial, Helvetica, sans-serif !important; background-color:#000000; color:#ffffff" | 10
| style="text-align:center" | 320
| style="text-align:right" | 46.85
| style="text-align:right" | 116.33
| style="text-align:left" | 576
| style="text-align:left" | 320
|-
| style="text-align:center; font-family:Arial, Helvetica, sans-serif !important; background-color:#000000; color:#ffffff" | 11
| style="text-align:center" | 330
| style="text-align:right" | 56.85
| style="text-align:right" | 134.33
| style="text-align:left" | 594
| style="text-align:left" | 330
|-
| style="text-align:center; font-family:Arial, Helvetica, sans-serif !important; background-color:#000000; color:#ffffff" | 12
| style="text-align:center" | 340
| style="text-align:right" | 66.85
| style="text-align:right" | 152.33
| style="text-align:left" | 612
| style="text-align:left" | 340
|-
| style="text-align:center; font-family:Arial, Helvetica, sans-serif !important; background-color:#000000; color:#ffffff" | 13
| style="text-align:center" | 350
| style="text-align:right" | 76.85
| style="text-align:right" | 170.33
| style="text-align:left" | 630
| style="text-align:left" | 350
|-
| style="text-align:center; font-family:Arial, Helvetica, sans-serif !important; background-color:#000000; color:#ffffff" | 14
| style="text-align:center" | 360
| style="text-align:right" | 86.85
| style="text-align:right" | 188.33
| style="text-align:left" | 648
| style="text-align:left" | 360
|-
| style="text-align:center; font-family:Arial, Helvetica, sans-serif !important; background-color:#000000; color:#ffffff" | 15
| style="text-align:center" | 370
| style="text-align:right" | 96.85
| style="text-align:right" | 206.33
| style="text-align:left" | 666
| style="text-align:left" | 370
|-
| style="text-align:center; font-family:Arial, Helvetica, sans-serif !important; background-color:#000000; color:#ffffff" | 16
| style="text-align:center" | 380
| style="text-align:right" | 106.85
| style="text-align:right" | 224.33
| style="text-align:left" | 684
| style="text-align:left" | 380
|-
| style="text-align:center; font-family:Arial, Helvetica, sans-serif !important; background-color:#000000; color:#ffffff" | 17
| style="text-align:center" | 390
| style="text-align:right" | 116.85
| style="text-align:right" | 242.33
| style="text-align:left" | 702
| style="text-align:left" | 390
|}


=={{header|Ezhil}}==
=={{header|Ezhil}}==