Vector products: Difference between revisions
Content added Content deleted
m (→{{header|AppleScript}}: (minor refactor of tests)) |
No edit summary |
||
Line 2,466: | Line 2,466: | ||
a x b x c = (-267.0, 204.0, -3.0) |
a x b x c = (-267.0, 204.0, -3.0) |
||
</pre> |
</pre> |
||
=={{header|Lambdatalk}}== |
|||
<lang scheme> |
|||
{def dotProduct |
|||
{lambda {:a :b} |
|||
{+ {* {A.get 0 :a} {A.get 0 :b}} |
|||
{* {A.get 1 :a} {A.get 1 :b}} |
|||
{* {A.get 2 :a} {A.get 2 :b}}}}} |
|||
-> dotProduct |
|||
{def crossProduct |
|||
{lambda {:a :b} |
|||
{A.new {- {* {A.get 1 :a} {A.get 2 :b}} |
|||
{* {A.get 2 :a} {A.get 1 :b}}} |
|||
{- {* {A.get 2 :a} {A.get 0 :b}} |
|||
{* {A.get 0 :a} {A.get 2 :b}}} |
|||
{- {* {A.get 0 :a} {A.get 1 :b}} |
|||
{* {A.get 1 :a} {A.get 0 :b}}} }}} |
|||
-> crossProduct |
|||
{def A {A.new 3 4 5}} -> A = [3,4,5] |
|||
{def B {A.new 4 3 5}} -> B = [4,3,5] |
|||
{def C {A.new -5 -12 -13}} -> C = [4,3,5] |
|||
A.B : {dotProduct {A} {B}} -> 49 |
|||
AxB : {crossProduct {A} {B}} -> [5,5,-7] |
|||
A.(BxC) : {dotProduct {A} {crossProduct {B} {C}}} -> 6 |
|||
Ax(BxC) : {crossProduct {A} {crossProduct {B} {C}}} -> [-267,204,-3] |
|||
</lang> |
|||
=={{header|Liberty BASIC}}== |
=={{header|Liberty BASIC}}== |