Skip to content

Commit

Permalink
Merge pull request #283 from bahmanm/extend-the-forth-library
Browse files Browse the repository at this point in the history
Extend the forth library
  • Loading branch information
bahmanm authored Dec 27, 2024
2 parents a4f3831 + 3ae1712 commit aa54074
Showing 1 changed file with 81 additions and 0 deletions.
81 changes: 81 additions & 0 deletions bjforth/src/main/forth/bjForth.forth
Original file line number Diff line number Diff line change
Expand Up @@ -535,3 +535,84 @@
.< close()/0 >.
DROP
;

###################################################################################################
# MAX ( x y -- max )
#
# Pushes the larger number onto stack.
#
# ```forth
# 10 20 MAX .
# 20
# ```
###################################################################################################

: MAX ( x y -- max )
2DUP
> IF
NIP
ELSE
SWAP
NIP
THEN
;

###################################################################################################
# MIN ( x y -- mIN )
#
# Pushes the larger number onto stack.
#
# ```forth
# 10 20 MIN .
# 10
# ```
###################################################################################################

: MIN ( x y -- min )
2DUP
< IF
NIP
ELSE
SWAP
NIP
THEN
;

###################################################################################################
# SQRT ( x -- square-root )
#
# ```forth
# 10 SQRT .S
# java.lang.Double: 3.1622776601683795
# ```
###################################################################################################

: SQRT
,< Math/sqrt(Double)/1 >,
;

###################################################################################################
# WITHIN ( c a b -- boolean )
#
# c a b WITHIN returns true if and b > c and a <= c
#
# ```forth
# 20 30 10 WITHIN .
# 1
# ```
###################################################################################################

: WITHIN
-ROT
OVER
<= IF
> IF
TRUE
ELSE
FALSE
THEN
ELSE
2DROP
FALSE
THEN
;

0 comments on commit aa54074

Please sign in to comment.