phino-0.0.157: test-resources/evaluate-packs/joins-a-side-holding-a-datum-a-symbolize-turned-into-a-symbol.yaml
# SPDX-FileCopyrightText: Copyright (c) 2025 Objectionary.com
# SPDX-License-Identifier: MIT
---
# yamllint disable rule:line-length
# The left side is a number written as a literal, so π brings it to a number
# whose bytes hold a datum. The right side is a number some firing computed,
# so its bytes hold a symbol. Both are numbers of one shape and differ in the
# value alone, yet no join makes one term of a datum and a symbol (#1968). A
# 'symbolize' line turns every datum of a term into a fresh symbol, so 'π3'
# holds π4 where 'π1' held the datum, and the protocol writes that π4 stands
# for that datum. The line of 'π4', whose term holds no datum, is commented
# with 'π2' alone. The join takes the metas the 'symbolize' lines bound and
# joins π4 with π2 into one fresh symbol π5.
symbolic: |
- Ξ»: L_fork
dataize:
πΏ1: $.c
morph:
π1: $.a
π2: $.b
symbolize:
π3: π1
π4: π2
join:
on: πΏ1
left: π3
right: π4
location: 'Q.y'
input: 'β¦ number β¦ β¦ Ο β¦ β
β§, bytes β¦ β¦ Ο β¦ β
β§, y β¦ β¦ c β¦ β¦ Ξ» β€ π3 β§, a β¦ β¦ Ο β¦ Ξ¦.number( Ο β¦ Ξ¦.bytes( Ο β¦ β¦ Ξ β€ 3F-F0-00-00-00-00-00-00 β§ ) ) β§, b β¦ β¦ Ο β¦ Ξ¦.number( Ο β¦ Ξ¦.bytes( Ο β¦ β¦ Ξ» β€ π2 β§ ) ) β§, Ξ» β€ L_fork β§.Ο β§'
result: 'Ξ¦.bytes( Ο β¦ π5:Ξ» ):Ο'
protocol: |
π(Ξ¦.y):
πΌ(L_fork):
πΏ1Β·1 := π»(π3:Ξ») # π»(ΞΎ.c)
π1Β·1 := 1:Ο # π(ΞΎ.a)
π2Β·1 := Ξ¦.number( Ο β¦ Ξ¦.bytes( Ο β¦ π2:Ξ» ) ):Ο # π(ΞΎ.b)
symbolized π4 := 3F-F0-00-00-00-00-00-00 # 1.0
π3Β·1 := Ξ¦.number( Ο β¦ Ξ¦.bytes( Ο β¦ π4:Ξ» ) ):Ο # symbolize(π1)
π4Β·1 := π2Β·1 # π2
joined π5 := πΏ1Β·1 ? π4 : π2
πΒ·1Β·1 := Ξ¦.number( Ο β¦ Ξ¦.bytes( Ο β¦ π5:Ξ» ) ):Ο # π3, π4
πΒ·0Β·1 := Ξ¦.number( Ο β¦ Ξ¦.bytes( Ο β¦ π5:Ξ» ) )