mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-29 09:24:36 +00:00
30 lines
494 B
Nim
30 lines
494 B
Nim
discard """
|
|
output: '''XY is Node
|
|
MyGraph is Graph'''
|
|
"""
|
|
# bug #3452
|
|
import math
|
|
|
|
type
|
|
Node* = concept n
|
|
`==`(n, n) is bool
|
|
|
|
Graph* = concept g
|
|
var x: Node
|
|
distance(g, x, x) is float
|
|
|
|
XY* = tuple[x, y: int]
|
|
|
|
MyGraph* = object
|
|
points: seq[XY]
|
|
|
|
if XY is Node:
|
|
echo "XY is Node"
|
|
|
|
proc distance*( g: MyGraph, a, b: XY): float =
|
|
sqrt( pow(float(a.x - b.x), 2) + pow(float(a.y - b.y), 2) )
|
|
|
|
if MyGraph is Graph:
|
|
echo "MyGraph is Graph"
|
|
|